Allow specifying a custom reset-password-url

This commit is contained in:
Joas Schilling 2015-12-07 15:37:26 +01:00
parent f8f3c9ecf9
commit 87bc02c6cd
4 changed files with 22 additions and 7 deletions

View file

@ -213,6 +213,14 @@ $CONFIG = array(
)
),
/**
* If your user backend does not allow to reset the password (e.g. when it's a
* read-only user backend like LDAP), you can specify a custom link, where the
* user is redirected to, when clicking the "reset password" link after a failed
* login-attempt.
*/
'lost_password_link' => 'https://example.org/link/to/password/reset',
/**
* Mail Parameters
*

View file

@ -141,6 +141,7 @@ $array = array(
'version' => implode('.', OC_Util::getVersion()),
'versionstring' => OC_Util::getVersionString(),
'enable_avatars' => \OC::$server->getConfig()->getSystemValue('enable_avatars', true),
'lost_password_link'=> \OC::$server->getConfig()->getSystemValue('lost_password_link', null),
'modRewriteWorking' => (getenv('front_controller_active') === 'true'),
)
),

View file

@ -13,22 +13,26 @@ OC.Lostpassword = {
resetErrorMsg : t('core', 'Password can not be changed. Please contact your administrator.'),
init : function() {
$('#lost-password').click(OC.Lostpassword.sendLink);
$('#lost-password').click(OC.Lostpassword.resetLink);
$('#reset-password #submit').click(OC.Lostpassword.resetPassword);
},
sendLink : function(event){
resetLink : function(event){
event.preventDefault();
if (!$('#user').val().length){
$('#submit').trigger('click');
} else {
$.post(
if (OC.config['lost_password_link']) {
window.location = OC.config['lost_password_link'];
} else {
$.post(
OC.generateUrl('/lostpassword/email'),
{
user : $('#user').val()
},
OC.Lostpassword.sendLinkDone
);
);
}
}
},

View file

@ -948,9 +948,11 @@ class OC_Util {
}
$parameters['canResetPassword'] = true;
$user = \OC::$server->getUserManager()->get($_REQUEST['user']);
if ($user instanceof IUser) {
$parameters['canResetPassword'] = $user->canChangePassword();
if (!\OC::$server->getSystemConfig()->getValue('lost_password_link')) {
$user = \OC::$server->getUserManager()->get($_REQUEST['user']);
if ($user instanceof IUser) {
$parameters['canResetPassword'] = $user->canChangePassword();
}
}
$parameters['alt_login'] = OC_App::getAlternativeLogIns();