Изменения документа Registration

Редактировал(а) Dmitriy Rybakov 20.06.2025

От версии 1.1
отредактировано Полина Герасимова
на 20.09.2024
Изменить комментарий: Install extension [org.xwiki.platform:xwiki-platform-administration-ui/11.8.1]
К версии 2.1
отредактировано Dmitriy Rybakov
на 04.10.2024
Изменить комментарий: Install extension [org.xwiki.platform:xwiki-platform-administration-ui/15.10.12]

Сводка

Подробности

Свойства страницы
Автор документа
... ... @@ -1,1 +1,1 @@
1 -xwiki:XWiki.gerasimovapd
1 +xwiki:XWiki.rybakovds
Содержимое
... ... @@ -1,3 +1,5 @@
1 +{{template name="register_macros.vm"/}}
2 +
1 1  {{velocity}}
2 2  ## The registration is enabled:
3 3  ## - on the main wiki
... ... @@ -11,24 +11,14 @@
11 11   #set($loginAction = 'loginsubmit')
12 12   ##
13 13   #set($documentName = 'XWiki.Registration')
14 - #set($configurationClassName = 'XWiki.Registration')
15 15   ##
16 16   ## Security measure:
17 17   ## If this document is changed such that it must have programming permission in order to run, change this to false.
18 18   #set($sandbox = true)
19 19   ##
20 - ## Load the configuration from a seperate document.
21 - #loadConfig('XWiki.RegistrationConfig')
21 + #set ($registrationConfig = $NULL)
22 + #_loadConfig($registrationConfig)
22 22   ##
23 - ## Defines what server generated error messages should look like
24 - ## The error message when a field is entered incorrectly
25 - #set($failureMessageParams = { 'class' : 'LV_validation_message LV_invalid'})
26 - ## 'LV_validation_message LV_invalid' depends on this:
27 - $xwiki.get('ssfx').use('uicomponents/widgets/validation/livevalidation.css', true)
28 - ##
29 - ## The * next to the fields to denote they are mandatory.
30 - #set($fieldMandatoryStar = { 'class' : 'xRequired'})
31 - ##
32 32   #*
33 33   * You may include this document in other documents using {{include reference="XWiki.Registration"/}}
34 34   * To specify that the user is invited and should be allowed to register even if Guest does not have permission to
... ... @@ -133,7 +133,8 @@
133 133   'label' : $services.localization.render('core.register.firstName'),
134 134   'params' : {
135 135   'type' : 'text',
136 - 'size' : '60'
128 + 'size' : '60',
129 + 'autocomplete' : 'given-name'
137 137   }
138 138   })
139 139   #set($discard = $fields.add($field))
... ... @@ -144,7 +144,8 @@
144 144   'label' : $services.localization.render('core.register.lastName'),
145 145   'params' : {
146 146   'type' : 'text',
147 - 'size' : '60'
140 + 'size' : '60',
141 + 'autocomplete' : 'family-name'
148 148   }
149 149   })
150 150   #set($discard = $fields.add($field))
... ... @@ -156,7 +156,8 @@
156 156   'params' : {
157 157   'type' : 'text',
158 158   'onfocus' : 'prepareName(document.forms.register);',
159 - 'size' : '60'
153 + 'size' : '60',
154 + 'autocomplete' : 'username'
160 160   },
161 161   'validate' : {
162 162   'mandatory' : {
... ... @@ -171,57 +171,15 @@
171 171   #set($discard = $fields.add($field))
172 172   ## Make sure the chosen user name is not already taken
173 173   ## This macro is called by programmaticValidation for xwikiname (above)
174 - #macro(nameAvailable, $name)
175 - #if($xwiki.exists("$userSpace$name"))
169 + #macro (nameAvailable, $name)
170 + #if ($xwiki.exists("$userSpace$name"))
176 176   failed
177 177   #end
178 178   #end
179 179   ##
180 180   ##The password field, mandatory and must be at least 6 characters long.
181 - #set($field =
182 - {'name' : 'register_password',
183 - 'label' : $services.localization.render('core.register.password'),
184 - 'params' : {
185 - 'type' : 'password',
186 - 'autocomplete' : 'off',
187 - 'size' : '60'
188 - },
189 - 'validate' : {
190 - 'mandatory' : {
191 - 'failureMessage' : $services.localization.render('core.validation.required.message')
192 - },
193 - 'regex' : {
194 - 'pattern' : '/.{6,}/',
195 - 'failureMessage' : $services.localization.render('xe.admin.registration.passwordTooShort')
196 - }
197 - }
198 - })
199 - #set($discard = $fields.add($field))
200 - ##
201 201   ##The confirm password field, mandatory, must match password field, and must also be 6+ characters long.
202 - #set($field =
203 - {'name' : 'register2_password',
204 - 'label' : $services.localization.render('core.register.passwordRepeat'),
205 - 'params' : {
206 - 'type' : 'password',
207 - 'autocomplete' : 'off',
208 - 'size' : '60'
209 - },
210 - 'validate' : {
211 - 'mandatory' : {
212 - 'failureMessage' : $services.localization.render('core.validation.required.message')
213 - },
214 - 'mustMatch' : {
215 - 'name' : 'register_password',
216 - 'failureMessage' : $services.localization.render('xe.admin.registration.passwordMismatch')
217 - },
218 - 'regex' : {
219 - 'pattern' : '/.{6,}/',
220 - 'failureMessage' : $services.localization.render('xe.admin.registration.passwordTooShort')
221 - }
222 - }
223 - })
224 - #set($discard = $fields.add($field))
177 + #definePasswordFields($fields, 'register_password', 'register2_password', $registrationConfig.passwordOptions)
225 225   ##
226 226   ## The email address field, regex checked with an email pattern. Mandatory if registration uses email verification
227 227   #set($field =
... ... @@ -229,7 +229,8 @@
229 229   'label' : $services.localization.render('core.register.email'),
230 230   'params' : {
231 231   'type' : 'text',
232 - 'size' : '60'
185 + 'size' : '60',
186 + 'autocomplete' : 'email'
233 233   },
234 234   'validate' : {
235 235   'regex' : {
... ... @@ -238,7 +238,7 @@
238 238   }
239 239   }
240 240   })
241 - #if($xwiki.getXWikiPreferenceAsInt('use_email_verification', 0) == 1)
195 + #if($registrationConfig.useEmailVerification)
242 242   #set($field.validate.mandatory = {'failureMessage' : $services.localization.render('core.validation.required.message')})
243 243   #end
244 244   #set($discard = $fields.add($field))
... ... @@ -284,7 +284,7 @@
284 284   #if($services.captcha
285 285   && !$invited
286 286   && $xcontext.getUser() == "XWiki.XWikiGuest"
287 - && $requireCaptcha)
241 + && $registrationConfig.requireCaptcha)
288 288   ## The CAPTCHA field, programmatically checked to make sure the CAPTCHA is right.
289 289   ## Not checked by javascript because javascript can't check the CAPTCHA and the Ok message because it passes the
290 290   ## mandatory test is misleading.
... ... @@ -305,17 +305,6 @@
305 305   })
306 306   #set($discard = $fields.add($field))
307 307   #end
308 - ##
309 - ## Pass the name of the template to $xwiki.createUser so any contained information will be passed in.
310 - #set($field =
311 - {'name' : 'template',
312 - 'params' : {
313 - 'type' : 'hidden',
314 - 'value' : 'XWiki.XWikiUserTemplate'
315 - }
316 - })
317 - #set($discard = $fields.add($field))
318 - ##
319 319   ## Pass the redirect parameter on so that the login page may redirect to the right place.
320 320   ## Not necessary in Firefox 3.0.10 or Opera 9.64, I don't know about IE or Safari.
321 321   #set($field =
... ... @@ -330,10 +330,6 @@
330 330   ## The Code.
331 331   #######################################################################
332 332   ##
333 - #if($useLiveValidation)
334 - $xwiki.get('jsfx').use('uicomponents/widgets/validation/livevalidation_prototype.js')
335 - $xwiki.get('ssfx').use('uicomponents/widgets/validation/livevalidation.css', true)
336 - #end
337 337   ## This application's HTML is dynamically generated and editing in WYSIWYG would not work
338 338   #if($xcontext.getAction() == 'edit')
339 339   $response.sendRedirect("$xwiki.getURL($doc.getFullName(), 'edit')?editor=wiki")
... ... @@ -360,7 +360,7 @@
360 360   #end
361 361   ##
362 362   ## Display the heading
363 - $heading
302 + $registrationConfig.heading
364 364   ## If the submit button has been pressed, then we test the input and maybe create the user.
365 365   #if($request.getParameter('xwikiname'))
366 366   ## Do server side validation of input fields.
... ... @@ -367,7 +367,7 @@
367 367   ## This must not be in a #set directive as it will output messages if something goes wrong.
368 368   #validateFields($fields, $request)
369 369   ## If server side validation was successfull, create the user
370 - #if(!$registrationFailed)
309 + #if($allFieldsValid)
371 371   #createUser($fields, $request, $response, $doAfterRegistration)
372 372   #end
373 373   #end
... ... @@ -374,7 +374,7 @@
374 374   ## If the registration was not successful or if the user hasn't submitted the info yet
375 375   ## Then we display the registration form.
376 376   #if(!$registrationDone)
377 - $welcomeMessage
316 + $registrationConfig.welcomeMessage
378 378  
379 379   {{html clean="false"}}
380 380   <form id="register" action="$xwiki.relativeRequestURL" method="post" class="xform half">
... ... @@ -382,21 +382,18 @@
382 382   #if ($request.xpage == 'registerinline')
383 383   #skinExtensionHooks
384 384   #end
385 - <input type="hidden" name="form_token" value="$!{services.csrf.getToken()}" />
386 386   #set ($userDirectoryReference = $services.model.createDocumentReference('', 'Main', 'UserDirectory'))
387 387   #if ($xwiki.exists($userDirectoryReference))
388 388   <input type="hidden" name="parent" value="$!{services.model.serialize($userDirectoryReference, 'default')}" />
389 389   #end
390 390   </div>
391 - #generateHtml($fields, $fieldMandatoryStar, $failureMessageParams)
329 + ## Note that the macro inject the form_token field.
330 + #generateHtml($fields, $request)
392 392   <p class="buttons">
393 393   <span class="buttonwrapper">
394 394   <input type="submit" value="$services.localization.render('core.register.submit')" class="button"/>
395 395   </span>
396 396   </p>
397 - #if ($useLiveValidation)
398 - #generateJavascript($fields)
399 - #end
400 400   </form>
401 401   {{/html}}
402 402  
... ... @@ -414,93 +414,7 @@
414 414   #set($temp = $response.sendRedirect($xwiki.getURL($mainWikiRegisterPageReference, 'register', $request.queryString)))
415 415  #end
416 416  ##
417 -####### The Macros (nothing below this point is run directly) #########
418 418  #*
419 - * Server side validation, this is necessary for security and because not everyone has Javascript
420 - *
421 - * @param $fields The array of fields to validate.
422 - * @param $request An XWikiRequest object which made the register request, used to get parameters.
423 - *###
424 -#macro(validateFields, $fields, $request)
425 - #foreach($field in $fields)
426 - #if($field.get('validate') && $field.get('name'))
427 - #set($fieldName = $field.get('name'))
428 - #set($validate = $field.get('validate'))
429 - #set($error = '')
430 - #set($value = $request.get($fieldName))
431 - #if("$!value" != '' || $field.get('type') == 'html')
432 - ##
433 - ## mustMatch validation
434 - #if($error == '' && $validate.get('mustMatch'))
435 - #set($mustMatch = $validate.get('mustMatch'))
436 - #if($mustMatch.get('name') && $mustMatch.get('failureMessage'))
437 - #if($request.get($fieldName) != $request.get($mustMatch.get('name')))
438 - #set($error = $mustMatch.get('failureMessage'))
439 - #end
440 - #else
441 - ERROR: In field: ${fieldName}: mustMatch validation required both name
442 - (of field which this field must match) and failureMessage.
443 - #end
444 - #end
445 - ##
446 - ## Regex validation
447 - ## We won't bother with regex validation if there is no entry, that would defeat the purpose of 'mandatory'
448 - #if($error == '' && $validate.get('regex') && $value && $value != '')
449 - #set($regex = $validate.get('regex'))
450 - #if($regex.get('pattern') && $regex.get('failureMessage'))
451 - ## Make Java regexes more compatible with Perl/js style regexes by removing leading and trailing /
452 - #if($regex.get('pattern').length() > 1)
453 - #set($pattern = $regex.get('pattern'))
454 - #if($pattern.lastIndexOf('/') < $pattern.length() - 1)
455 - ERROR: In field: ${fieldName}: regex validation does not allow flags after the /, please fix [${pattern}].
456 - #end
457 - #set($pattern = $pattern.substring($mathtool.add(1, $pattern.indexOf('/')), $pattern.lastIndexOf('/')))
458 - #else
459 - ## I don't expect this but want to maintain compatibility.
460 - #set($pattern = $regex.get('pattern'))
461 - #end
462 - #if($regextool.find($value, $pattern).isEmpty())
463 - #set($error = $regex.get('failureMessage'))
464 - #end
465 - #elseif($regex.get('pattern'))
466 - ERROR: In field: ${fieldName}: regex validation must include failureMessage.
467 - #end
468 - #end
469 - ##
470 - ## If regex and mustMatch validation passed, try programmatic validation
471 - #if($error == '' && $validate.get('programmaticValidation'))
472 - #set($pv = $validate.get('programmaticValidation'))
473 - #if($pv.get('code') && $pv.get('failureMessage'))
474 - #set($pvReturn = "#evaluate($pv.get('code'))")
475 - #if($pvReturn.indexOf('failed') != -1)
476 - #set($error = $pv.get('failureMessage'))
477 - #end
478 - #else
479 - ERROR: In field: ${fieldName}: programmaticValidation requires code and failureMessage
480 - #end
481 - #end
482 - #else
483 - ##
484 - ## If no content, check if content is mandatory
485 - #if($validate.get('mandatory'))
486 - #set($mandatory = $validate.get('mandatory'))
487 - #if($mandatory.get('failureMessage'))
488 - #set($error = $mandatory.get('failureMessage'))
489 - #else
490 - ERROR: In field: ${fieldName}: mandatory validation requires a failureMessage
491 - #end
492 - #end
493 - #end
494 - #if($error != '')
495 - #set($discard = $field.put('error', $error))
496 - #set($registrationFailed = true)
497 - #end
498 - #elseif(!$field.get('name'))
499 - ERROR: Field with no name.
500 - #end##if(validate)
501 - #end##loop
502 -#end##macro
503 -#*
504 504   * Create the user.
505 505   * Calls $xwiki.createUser to create a new user.
506 506   *
... ... @@ -531,6 +531,9 @@
531 531   {{translation key="core.register.userAlreadyExists"/}}
532 532   #elseif($reg == -4)
533 533   {{translation key="core.register.invalidUsername"/}}
384 + #elseif ($reg == -9)
385 + {{translation key="core.register.invalidCaptcha"/}}
386 + ## Note that -10 is reserved already (see api.XWiki#createUser)
534 534   #elseif($reg == -11)
535 535   {{translation key="core.register.mailSenderWronglyConfigured"/}}
536 536   #else
... ... @@ -558,16 +558,16 @@
558 558   #if("$!request.getParameter($redirectParam)" != '')
559 559   #set($redirect = $request.getParameter($redirectParam))
560 560   #else
561 - #set($redirect = $defaultRedirect)
414 + #set($redirect = $registrationConfig.defaultRedirect)
562 562   #end
563 563   ## Display a "registration successful" message
564 564  
565 - #evaluate($registrationSuccessMessage)
418 + #evaluate($registrationConfig.registrationSuccessMessage)
566 566  
567 567   ## Empty line prevents message from being forced into a <p> block.
568 568  
569 569   ## Give the user a login button which posts their username and password to loginsubmit
570 - #if($loginButton)
423 + #if($registrationConfig.loginButton)
571 571  
572 572   {{html clean=false wiki=false}}
573 573   <form id="loginForm" action="$loginURL" method="post">
... ... @@ -582,8 +582,8 @@
582 582   </div>
583 583   </form>
584 584   ## We don't want autoLogin if we are administrators adding users...
585 - #if ($autoLogin && $request.xpage != 'registerinline')
586 - <script type='text/javascript'>
438 + #if ($registrationConfig.autoLogin && $request.xpage != 'registerinline')
439 + <script>
587 587   document.observe('xwiki:dom:loaded', function() {
588 588   document.forms['loginForm'].submit();
589 589   });
... ... @@ -595,207 +595,4 @@
595 595   #end
596 596   ##
597 597  #end## createUser Macro
598 -#*
599 - * Generate HTML form, this is the only place where HTML is written.
600 - *
601 - * @param $fields The array of fields to use for generating html code.
602 - * @param $fieldMandatoryStar The tag parameters for a * indicating a mandatory field.
603 - * @param $failureMessageParams The tag parameters for a failure message.
604 - *###
605 -#macro(generateHtml, $fields, $fieldMandatoryStar, $failureMessageParams)
606 - ## Put the same values back into the fields.
607 - #getParams($fields)
608 - ##
609 - <dl>
610 - #foreach($field in $fields)
611 - #if($field.get('name'))
612 - #set($fieldName = $field.get('name'))
613 - #if($field.get('label'))
614 - #set($label = $field.get('label'))
615 - <dt><label #if (!$field.get('skipLabelFor'))for="$fieldName"#end>$label
616 - #if($field.get('validate').get('mandatory'))
617 - <span ##
618 - #foreach($entry in $fieldMandatoryStar.entrySet())
619 - $entry.getKey()="$entry.getValue()" ##
620 - #end
621 - >$services.localization.render('core.validation.required')</span>
622 - #end
623 - </label>
624 - </dt>
625 - #end
626 - <dd>
627 - #if ($field.get('type') == 'html')
628 - $field.get('html')
629 - #elseif ($field.get('type') == 'tag' || "$!{field.get('type')}" == '')
630 - ## If no tag then default tag is <input>
631 - #if($field.get('tag'))
632 - #set($tag = $field.get('tag'))
633 - #else
634 - #set($tag = 'input')
635 - #end
636 - <$tag id="$fieldName" ##
637 - #set($params = $field.get('params'))
638 - ## If no name parameter is spacified, then we use the field name
639 - #if(!$params.get('name'))
640 - #set($discard = $params.put('name', $fieldName))
641 - #end
642 - #foreach($entry in $params.entrySet())
643 - ## If a parameter is specified as '' then we don't include it.
644 - #if($entry.getValue() != '')
645 - $entry.getKey()="$escapetool.xml($entry.getValue())" ##
646 - #end
647 - #end
648 - ## Close the opened tag in a way that is valid for its type (i.e. with "/>" or with "></tag>").
649 - #if ($tag == 'input')
650 - #set ($voidTag = true)
651 - #end
652 - #if ($voidTag)/#end>#if (!$voidTag)</$tag>#end
653 - #end
654 - #if($field.get('error'))
655 - <span ##
656 - #foreach($entry in $failureMessageParams.entrySet())
657 - $entry.getKey()="$entry.getValue()" ##
658 - #end
659 - >$field.get('error')</span>
660 - #end
661 - </dd>
662 - #else
663 - ERROR: Field with no name.
664 - #end##if fieldName exists
665 - #end
666 - </dl>
667 -#end
668 -#*
669 - * Generate the Javascript for interacting with LiveValidation.
670 - *
671 - * @param $fields The array of fields which to validate.
672 - *###
673 -#macro(generateJavascript, $fields)
674 - <script type='text/javascript'>
675 - /* <![CDATA[ */
676 - var initRegistrationFormValidation = function() {
677 - ##
678 - #foreach($field in $fields)
679 - #if($field.get('validate') && $field.get('name'))
680 - #set($validate = $field.get('validate'))
681 - #if(($validate.get('mandatory') && !$validate.get('mandatory').get('noscript'))
682 - || ($validate.get('regex') && !$validate.get('regex').get('noscript'))
683 - || ($validate.get('mustMatch') && !$validate.get('mustMatch').get('noscript')))
684 - #set($fieldName = $field.get('name'))
685 - #if($validate.get('fieldOkayMessage'))
686 - #set($okayMessage = $validate.get('fieldOkayMessage'))
687 - #else
688 - #set($okayMessage = $defaultFieldOkayMessage)
689 - #end
690 - var ${fieldName}Validator = new LiveValidation("$fieldName", { validMessage: "$okayMessage", wait: 500} );
691 - ##
692 - #if($validate.get('mandatory'))
693 - #set($mandatory = $validate.get('mandatory'))
694 - #if($mandatory.get('failureMessage') && !$mandatory.get('noscript'))
695 - ${fieldName}Validator.add( Validate.Presence, { failureMessage: "$!mandatory.get('failureMessage')"} );
696 - #end
697 - #end
698 - ##
699 - #if($validate.get('mustMatch'))
700 - #set($mustMatch = $validate.get('mustMatch'))
701 - #if($mustMatch.get('name') && $mustMatch.get('failureMessage') && !$mustMatch.get('noscript'))
702 - ${fieldName}Validator.add( Validate.Confirmation, { match: $$("input[name=$!mustMatch.get('name')]")[0], failureMessage: "$!mustMatch.get('failureMessage')"} );
703 - #end
704 - #end
705 - ##
706 - #if($validate.get('regex'))
707 - #set($regex = $validate.get('regex'))
708 - #set($pattern = "")
709 - #if($regex.get('jsPattern'))
710 - #set($pattern = $regex.get('jsPattern'))
711 - #elseif($regex.get('pattern'))
712 - #set($pattern = $regex.get('pattern'))
713 - #end
714 - #set($failMessage = "")
715 - #if($regex.get('jsFailureMessage'))
716 - #set($failMessage = $regex.get('jsFailureMessage'))
717 - #elseif($regex.get('failureMessage'))
718 - #set($failMessage = $regex.get('failureMessage'))
719 - #end
720 - #if($pattern != '' && $failMessage != '' && !$regex.get('noscript'))
721 - ${fieldName}Validator.add( Validate.Format, { pattern: $pattern, failureMessage: "$failMessage"} );
722 - #end
723 - #end##if regex
724 - #end##if contains js validateable fields.
725 - #end##if validate
726 - #end##loop
727 - };
728 - document.observe('xwiki:dom:loaded', initRegistrationFormValidation);
729 - document.observe('xwiki:dom:updated', function(event) {
730 - var container = (event && event.memo && event.memo.elements && event.memo.elements[0]) || $('body');
731 - if (container.down('form#register')) {
732 - initRegistrationFormValidation();
733 - }
734 - });// ]]>
735 - </script>
736 -#end##macro
737 -#*
738 - * Get parameters from request so that values will be filled in if there is a mistake
739 - * in one of the entries. Entries will be returned to fields[n].params.value
740 - * Fields will not be returned if they have either noReturn or error specified.
741 - *
742 - * @param $fields The array of fields to get parameters for.
743 - *###
744 -#macro(getParams $fields)
745 - #foreach($field in $fields)
746 - #if($field.get('name') && $request.get($field.get('name')))
747 - #if(!$field.get('noReturn') && !$field.get('error'))
748 - #if(!$field.get('params'))
749 - #set($params = {})
750 - #set($discard = $field.put('params', $params))
751 - #else
752 - #set($params = $field.get('params'))
753 - #end
754 - #set($discard = $params.put('value', $request.get($field.get('name'))))
755 - #end
756 - #end
757 - #end
758 -#end
759 -#*
760 - * Get the configuration from the configuration object.
761 - *
762 - * @param $configDocumentName The name of the document to get the configuration from.
763 - *###
764 -#macro(loadConfig, $configDocumentName)
765 - #set($configDocument = $xwiki.getDocument($configDocumentName))
766 - #if(!$configDocument || !$configDocument.getObject($configurationClassName))
767 - ## No config document, load defaults.
768 - #set($heading = "$services.localization.render('core.register.title')")
769 - #set($welcomeMessage = "$services.localization.render('core.register.welcome')")
770 - #set($useLiveValidation = true)
771 - #set($defaultFieldOkayMessage = "$services.localization.render('core.validation.valid.message')")
772 - #set($loginButton = true)
773 - #set($defaultRedirect = "$xwiki.getURL($services.model.resolveDocument('', 'default', $doc.documentReference.extractReference('WIKI')))")
774 - #set($userFullName = "$request.get('register_first_name') $request.get('register_last_name')")
775 - #set($registrationSuccessMessage = '{{info}}$services.localization.render("core.register.successful", ["[[${userFullName}>>${userSpace}${userName}]]", ${userName}]){{/info}}')
776 - #else
777 - #set($configObject = $configDocument.getObject($configurationClassName))
778 - #if ($xcontext.action == 'register')
779 - #set ($heading = "(% id='document-title'%)((( = #evaluate($configObject.getProperty('heading').getValue()) = )))(%%)")
780 - #else
781 - #set ($heading = "= #evaluate($configObject.getProperty('heading').getValue()) =")
782 - #end
783 - #set($welcomeMessage = "#evaluate($configObject.getProperty('welcomeMessage').getValue())")
784 - #if($configObject.getProperty('liveValidation_enabled').getValue() == 1)
785 - #set($useLiveValidation = true)
786 - #end
787 - #set($defaultFieldOkayMessage = "#evaluate($configObject.getProperty('liveValidation_defaultFieldOkMessage').getValue())")
788 - #if($configObject.getProperty('loginButton_enabled').getValue() == 1)
789 - #set($loginButton = true)
790 - #end
791 - #if($configObject.getProperty('loginButton_autoLogin_enabled').getValue() == 1)
792 - #set($autoLogin = true)
793 - #end
794 - #set($defaultRedirect = "#evaluate($configObject.getProperty('defaultRedirect').getValue())")
795 - #set($registrationSuccessMessage = "$configObject.getProperty('registrationSuccessMessage').getValue()")
796 - #if($configObject.getProperty('requireCaptcha').getValue() == 1)
797 - #set($requireCaptcha = true)
798 - #end
799 - #end
800 -#end
801 801  {{/velocity}}
defaultRedirect
passwordLength
Name
... ... @@ -1,0 +1,1 @@
1 +passwordLength
Pretty Name
... ... @@ -1,0 +1,1 @@
1 +Require a password with the given length
Size
... ... @@ -1,0 +1,1 @@
1 +10
Number Type
... ... @@ -1,0 +1,1 @@
1 +integer
Number
... ... @@ -1,0 +1,1 @@
1 +10
passwordRuleOneLowerCaseEnabled
Name
... ... @@ -1,0 +1,1 @@
1 +passwordRuleOneLowerCaseEnabled
Pretty Name
... ... @@ -1,0 +1,1 @@
1 +Require at least one lower case character in the password
Display Form Type
... ... @@ -1,0 +1,1 @@
1 +checkbox
Number
... ... @@ -1,0 +1,1 @@
1 +11
passwordRuleOneNumberEnabled
Name
... ... @@ -1,0 +1,1 @@
1 +passwordRuleOneNumberEnabled
Pretty Name
... ... @@ -1,0 +1,1 @@
1 +Require at least one number in the password
Display Form Type
... ... @@ -1,0 +1,1 @@
1 +checkbox
Number
... ... @@ -1,0 +1,1 @@
1 +13
passwordRuleOneSymbolEnabled
Name
... ... @@ -1,0 +1,1 @@
1 +passwordRuleOneSymbolEnabled
Pretty Name
... ... @@ -1,0 +1,1 @@
1 +Require at least one symbol character in the password
Display Form Type
... ... @@ -1,0 +1,1 @@
1 +checkbox
Number
... ... @@ -1,0 +1,1 @@
1 +14
passwordRuleOneUpperCaseEnabled
Name
... ... @@ -1,0 +1,1 @@
1 +passwordRuleOneUpperCaseEnabled
Pretty Name
... ... @@ -1,0 +1,1 @@
1 +Require at least one upper case character in the password
Display Form Type
... ... @@ -1,0 +1,1 @@
1 +checkbox
Number
... ... @@ -1,0 +1,1 @@
1 +12
registrationSuccessMessage
Ограниченный
... ... @@ -1,0 +1,1 @@
1 +0
welcomeMessage
Ограниченный
... ... @@ -1,0 +1,1 @@
1 +0
liveValidation_defaultFieldOkMessage
Name
... ... @@ -1,1 +1,0 @@
1 -liveValidation_defaultFieldOkMessage
Pretty Name
... ... @@ -1,1 +1,0 @@
1 -Default field okay message
Size
... ... @@ -1,1 +1,0 @@
1 -30
Number
... ... @@ -1,1 +1,0 @@
1 -4
Use Suggest
... ... @@ -1,1 +1,0 @@
1 -0
liveValidation_enabled
Name
... ... @@ -1,1 +1,0 @@
1 -liveValidation_enabled
Pretty Name
... ... @@ -1,1 +1,0 @@
1 -Enable Javascript field validation
Display Form Type
... ... @@ -1,1 +1,0 @@
1 -checkbox
Number
... ... @@ -1,1 +1,0 @@
1 -3