@@ -28,55 +20,68 @@ document.observe('xwiki:dom:loaded', function() {
#set($errorMessage = "")
#set($password = $request.password)
#set($password2 = $request.password2)
+ ## Server-side checking
#if($isCurrentUsersProfile || !$hasAdmin)
#set($user = $xwiki.getUser())
#set($isOriginalPasswordValid = $user.checkPassword($request.originalpassword))
#if(!$isOriginalPasswordValid)
- #set($errorMessage = $services.localization.render('platform.core.profile.passwd.invalidOriginalPassword'))
+ #set($discard = $errorMessage.add($services.localization.render('platform.core.profile.passwd.invalidOriginalPassword')))
#set($isValidPassword = false)
#end
#end
- #if($password != $password2)
- #set($errorMessage = $services.localization.render('platform.core.profile.passwd.passwordMissmatch'))
- #set($isValidPassword = false)
- #elseif($password == '')
- #set($errorMessage = $services.localization.render('platform.core.profile.passwd.passwordCannotBeEmpty'))
- #set($isValidPassword = false)
- #elseif($password.length() < 6)
- #set($errorMessage = $services.localization.render('platform.core.profile.passwd.passwordTooShort'))
- #set($isValidPassword = false)
- #end
- #if($isValidPassword)
+ #validateFields($fields, $request)
+ #set ($isValidPassword = $isValidPassword && $allFieldsValid)
+ #if(!$isValidPassword)
+ #set ($discard = $errorMessage.addAll($allFieldsErrors))
+ #else
+ #set ($isValidPassword = true)
$doc.set('password', $password, $userObject)
$doc.save("$services.localization.render('platform.core.profile.passwd.passwordChanged')", true)
#end
#end
- #if($request.password)
- #if($isValidPassword)
-
$services.localization.render('platform.core.profile.passwd.success')
-
$services.localization.render('platform.core.profile.passwd.return')
- #else
-
$errorMessage
- #end
+ #if($request.password && $isValidPassword)
+
$services.localization.render('platform.core.profile.passwd.success')
+
$services.localization.render('platform.core.profile.passwd.return')
#end
#if(!$isValidPassword)
- #set($discard = $xwiki.jsfx.use('uicomponents/widgets/validation/livevalidation_prototype.js'))
- #set($discard = $xwiki.ssfx.use('uicomponents/widgets/validation/livevalidation.css', true))
$services.localization.render('platform.core.profile.passwd.instructions')
-
-