feat(password-recovery): Add LDAP password recovery

This commit is contained in:
smizrahi committed 2022-10-16 14:46:19 +02:00
1 parent cddfdb90f9
commit d50080ea5b
5 files changed
+65 -16

No files matched your search

+1 -1
View File
@@ -1,2 +1,2 @@
!function(){"use strict";angular.module("SOGo.MainUI",["SOGo.Common","SOGo.Authentication"]);function e(e,o,s,r,n,a,i,t){var d=this;this.$onInit=function(){this.creds={username:o.cookieUsername,password:null,domain:null,rememberLogin:angular.isDefined(o.cookieUsername)&&0<o.cookieUsername.length},/\blanguage=/.test(o.location.search)&&(this.creds.language=o.language),this.loginState=!1,this.verificationCodePattern="\\d{6}",this.passwords={newPassword:null,newPasswordConfirmation:null,oldPassword:null},this.passwordRecovery={passwordRecoveryEnabled:!1,passwordRecoveryQuestionKey:null,passwordRecoveryQuestion:null,passwordRecoveryMode:null,passwordRecoveryQuestionAnswer:null,passwordRecoveryToken:null,passwordRecoveryLinkTimer:null,passwordRecoverySecondaryEmailText:null,passwordRecoveryMailDomain:null},this.showLogin=!1,s(function(){d.showLogin=!0;var e=window.location.search;let o=new URLSearchParams(e).get("token");0<window.location.pathname.indexOf("passwordRecoveryEmail")&&o?3===(e=(o=o.replace(/\//g,"")).split(".")).length&&(d.passwordRecovery.passwordRecoveryToken=o,e=JSON.parse(atob(e[1])),d.creds.username=e.username,d.creds.domain=e.domain,d.passwordRecovery.passwordRecoveryToken=o,d.passwordRecovery.passwordRecoveryMode="SecondaryEmail",d.passwordRecovery.passwordRecoveryEnabled=!0,d.loginState="passwordchange",d.showLogin=!1,t("loginContent")):d.retrievePasswordRecoveryEnabled()},100)},this.login=function(){return d.loginState="authenticating",a.login(d.creds).then(function(e){e.totpmissingkey?(d.loginState="totpcode",i("totpcode")):e.totpdisabled?(d.loginState="totpdisabled",d.cn=e.cn,d.url=e.url):(d.loginState="logged",d.cn=e.cn,d.url=e.url,s(function(){d.continueLogin()},1e3))},function(e){var o,s;d.loginState="error",e.error?d.errorMessage=e.error:0<e.grace?(d.loginState="passwordwillexpire",d.cn=e.cn,d.url=e.url,d.errorMessage=l("You have %{0} logins remaining before your account is locked. Please change your password in the preference dialog.",e.grace)):0<e.expire?(s=86400<e.expire?(o=Math.round(e.expire/86400),l("days")):3600<e.expire?(o=Math.round(e.expire/3600),l("hours")):60<e.expire?(o=Math.round(e.expire/60),l("minutes")):(o=e.expire,l("seconds")),d.loginState="passwordwillexpire",d.cn=e.cn,d.url=e.url,d.errorMessage=l("Your password is going to expire in %{0} %{1}.",o,s)):e.passwordexpired&&(d.loginState="passwordchange",d.url=e.url)}),!1},this.restoreLogin=function(){d.loginState=!1,delete d.creds.verificationCode,d.isInPasswordRecoveryMode()&&d.passwordRecoveryAbort()},this.continueLogin=function(){o.location.href===d.url?o.location.reload(!0):o.location.href=d.url},this.showAbout=function(e){function o(e){this.closeDialog=function(){e.hide()}}n.show({targetEvent:e,templateUrl:"aboutBox.html",controller:o,controllerAs:"about"}),o.$inject=["$mdDialog"]},this.changeLanguage=function(e){o.location.href=ApplicationBaseURL+"login?language="+this.creds.language},this.hello=function(e){return!1},this.canChangePassword=function(e){return this.passwords.newPasswordConfirmation&&this.passwords.newPasswordConfirmation.length&&this.passwords.newPassword!=this.passwords.newPasswordConfirmation?(e.newPasswordConfirmation.$setValidity("newPasswordMismatch",!1),!1):(e.newPasswordConfirmation.$setValidity("newPasswordMismatch",!0),!!(this.passwords.newPassword&&0<this.passwords.newPassword.length&&this.passwords.newPasswordConfirmation&&this.passwords.newPasswordConfirmation.length&&this.passwords.newPassword==this.passwords.newPasswordConfirmation&&(this.isInPasswordRecoveryMode()||!this.loginState&&this.passwords.oldPassword&&0<this.passwords.oldPassword.length)))},this.changePassword=function(){a.changePassword(this.creds.username,this.creds.domain,this.passwords.newPassword,this.passwords.oldPassword,this.passwordRecovery.passwordRecoveryToken).then(function(e){d.loginState="message",d.url=e.url,d.errorMessage=l("The password was changed successfully.")},function(e){d.loginState="error",d.errorMessage=e})},this.passwordRecoveryInfo=function(){d.loginState="passwordrecovery",a.passwordRecovery(this.creds.username,this.creds.domain).then(function(e){d.passwordRecovery.passwordRecoveryMode=e.mode,"SecretQuestion"===e.mode?(d.passwordRecovery.passwordRecoveryQuestion=e.secretQuestionLabel,d.passwordRecovery.passwordRecoveryQuestionKey=e.secretQuestion):"SecondaryEmail"===e.mode?d.passwordRecovery.passwordRecoverySecondaryEmailText=l("A link will be sent to %{0}",e.obfuscatedRecoveryEmail):"Disabled"===e.mode&&(d.loginState="error",d.errorMessage=l("No password recovery method has been defined for this user"))},function(e){d.loginState="error",d.errorMessage=e})},this.passwordRecoveryEmail=function(){a.passwordRecoveryEmail(this.creds.username,this.creds.domain,this.passwordRecovery.passwordRecoveryMode,this.passwordRecovery.passwordRecoveryMailDomain).then(function(){d.loginState="sendrecoverymail"},function(e){d.loginState="error",d.errorMessage=e})},this.passwordRecoveryCheck=function(){a.passwordLine truncated
!function(){"use strict";angular.module("SOGo.MainUI",["SOGo.Common","SOGo.Authentication"]);function e(e,o,s,r,n,a,i,t){var d=this;this.$onInit=function(){this.creds={username:o.cookieUsername,password:null,domain:null,rememberLogin:angular.isDefined(o.cookieUsername)&&0<o.cookieUsername.length},/\blanguage=/.test(o.location.search)&&(this.creds.language=o.language),this.loginState=!1,this.verificationCodePattern="\\d{6}",this.passwords={newPassword:null,newPasswordConfirmation:null,oldPassword:null},this.passwordRecovery={passwordRecoveryEnabled:!1,passwordRecoveryQuestionKey:null,passwordRecoveryQuestion:null,passwordRecoveryMode:null,passwordRecoveryQuestionAnswer:null,passwordRecoveryToken:null,passwordRecoveryLinkTimer:null,passwordRecoverySecondaryEmailText:null,passwordRecoveryMailDomain:null},this.showLogin=!1,s(function(){d.showLogin=!0;var e=window.location.search;let o=new URLSearchParams(e).get("token");0<window.location.pathname.indexOf("passwordRecoveryEmail")&&o?3===(e=(o=o.replace(/\//g,"")).split(".")).length&&(d.passwordRecovery.passwordRecoveryToken=o,e=JSON.parse(atob(e[1])),d.creds.username=e.username,d.creds.domain=e.domain,d.passwordRecovery.passwordRecoveryToken=o,d.passwordRecovery.passwordRecoveryMode="SecondaryEmail",d.passwordRecovery.passwordRecoveryEnabled=!0,d.loginState="passwordchange",d.showLogin=!1,t("loginContent")):d.retrievePasswordRecoveryEnabled()},100)},this.login=function(){return d.loginState="authenticating",a.login(d.creds).then(function(e){e.totpmissingkey?(d.loginState="totpcode",i("totpcode")):e.totpdisabled?(d.loginState="totpdisabled",d.cn=e.cn,d.url=e.url):(d.loginState="logged",d.cn=e.cn,d.url=e.url,s(function(){d.continueLogin()},1e3))},function(e){var o,s;d.loginState="error",e.error?d.errorMessage=e.error:0<e.grace?(d.loginState="passwordwillexpire",d.cn=e.cn,d.url=e.url,d.errorMessage=l("You have %{0} logins remaining before your account is locked. Please change your password in the preference dialog.",e.grace)):0<e.expire?(s=86400<e.expire?(o=Math.round(e.expire/86400),l("days")):3600<e.expire?(o=Math.round(e.expire/3600),l("hours")):60<e.expire?(o=Math.round(e.expire/60),l("minutes")):(o=e.expire,l("seconds")),d.loginState="passwordwillexpire",d.cn=e.cn,d.url=e.url,d.errorMessage=l("Your password is going to expire in %{0} %{1}.",o,s)):e.passwordexpired&&(d.loginState="passwordchange",d.url=e.url)}),!1},this.restoreLogin=function(){d.loginState=!1,delete d.creds.verificationCode,d.passwordRecoveryAbort()},this.continueLogin=function(){o.location.href===d.url?o.location.reload(!0):o.location.href=d.url},this.showAbout=function(e){function o(e){this.closeDialog=function(){e.hide()}}n.show({targetEvent:e,templateUrl:"aboutBox.html",controller:o,controllerAs:"about"}),o.$inject=["$mdDialog"]},this.changeLanguage=function(e){o.location.href=ApplicationBaseURL+"login?language="+this.creds.language},this.hello=function(e){return!1},this.canChangePassword=function(e){return this.passwords.newPasswordConfirmation&&this.passwords.newPasswordConfirmation.length&&this.passwords.newPassword!=this.passwords.newPasswordConfirmation?(e.newPasswordConfirmation.$setValidity("newPasswordMismatch",!1),!1):(e.newPasswordConfirmation.$setValidity("newPasswordMismatch",!0),!!(this.passwords.newPassword&&0<this.passwords.newPassword.length&&this.passwords.newPasswordConfirmation&&this.passwords.newPasswordConfirmation.length&&this.passwords.newPassword==this.passwords.newPasswordConfirmation&&(this.isInPasswordRecoveryMode()||!this.loginState&&this.passwords.oldPassword&&0<this.passwords.oldPassword.length)))},this.changePassword=function(){a.changePassword(this.creds.username,this.creds.domain,this.passwords.newPassword,this.passwords.oldPassword,this.passwordRecovery.passwordRecoveryToken).then(function(e){d.loginState="message",d.url=e.url,d.errorMessage=l("The password was changed successfully.")},function(e){d.loginState="error",d.errorMessage=e})},this.passwordRecoveryInfo=function(){d.loginState="passwordrecovery",a.passwordRecovery(this.creds.username,this.creds.domain).then(function(e){d.passwordRecovery.passwordRecoveryMode=e.mode,"SecretQuestion"===e.mode?(d.passwordRecovery.passwordRecoveryQuestion=e.secretQuestionLabel,d.passwordRecovery.passwordRecoveryQuestionKey=e.secretQuestion):"SecondaryEmail"===e.mode?d.passwordRecovery.passwordRecoverySecondaryEmailText=l("A link will be sent to %{0}",e.obfuscatedRecoveryEmail):"Disabled"===e.mode&&(d.loginState="error",d.errorMessage=l("No password recovery method has been defined for this user"))},function(e){d.loginState="error",d.errorMessage=e})},this.passwordRecoveryEmail=function(){a.passwordRecoveryEmail(this.creds.username,this.creds.domain,this.passwordRecovery.passwordRecoveryMode,this.passwordRecovery.passwordRecoveryMailDomain).then(function(){d.loginState="sendrecoverymail"},function(e){d.loginState="error",d.errorMessage=e})},this.passwordRecoveryCheck=function(){a.passwordRecoveryCheck(this.creds.usernLine truncated
//# sourceMappingURL=Main.js.map
+1 -1
View File
@@ -1 +1 @@
{"version":3,"file":"Main.js","sources":["Main/Main.app.js"],"names":["angular","module","LoginController","$scope","$window","$timeout","Dialog","$mdDialog","Authentication","focus","rippleDo","vm","this","$onInit","creds","username","cookieUsername","password","domain","rememberLogin","isDefined","length","test","location","search","language","loginState","verificationCodePattern","passwords","newPassword","newPasswordConfirmation","oldPassword","passwordRecovery","passwordRecoveryEnabled","passwordRecoveryQuestionKey","passwordRecoveryQuestion","passwordRecoveryMode","passwordRecoveryQuestionAnswer","passwordRecoveryToken","passwordRecoveryLinkTimer","passwordRecoverySecondaryEmailText","passwordRecoveryMailDomain","showLogin","queryString","window","let","token","URLSearchParams","get","pathname","indexOf","tokenArray","replace","split","info","JSON","parse","atob","retrievePasswordRecoveryEnabled","login","then","data","totpmissingkey","totpdisabled","cn","url","continueLogin","msg","value","string","error","errorMessage","grace","l","expire","Math","round","passwordexpired","restoreLogin","verificationCode","isInPasswordRecoveryMode","passwordRecoveryAbort","href","reload","showAbout","$event","AboutDialogController","closeDialog","hide","show","targetEvent","templateUrl","controller","controllerAs","$inject","changeLanguage","ApplicationBaseURL","hello","form","canChangePassword","$setValidity","changePassword","passwordRecoveryInfo","mode","secretQuestionLabel","secretQuestion","obfuscatedRecoveryEmail","passwordRecoveryEmail","passwordRecoveryCheck","usernameChanged","clearTimeout","setTimeout","mailDomain"],"mappings":"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 truncated
{"version":3,"file":"Main.js","sources":["Main/Main.app.js"],"names":["angular","module","LoginController","$scope","$window","$timeout","Dialog","$mdDialog","Authentication","focus","rippleDo","vm","this","$onInit","creds","username","cookieUsername","password","domain","rememberLogin","isDefined","length","test","location","search","language","loginState","verificationCodePattern","passwords","newPassword","newPasswordConfirmation","oldPassword","passwordRecovery","passwordRecoveryEnabled","passwordRecoveryQuestionKey","passwordRecoveryQuestion","passwordRecoveryMode","passwordRecoveryQuestionAnswer","passwordRecoveryToken","passwordRecoveryLinkTimer","passwordRecoverySecondaryEmailText","passwordRecoveryMailDomain","showLogin","queryString","window","let","token","URLSearchParams","get","pathname","indexOf","tokenArray","replace","split","info","JSON","parse","atob","retrievePasswordRecoveryEnabled","login","then","data","totpmissingkey","totpdisabled","cn","url","continueLogin","msg","value","string","error","errorMessage","grace","l","expire","Math","round","passwordexpired","restoreLogin","verificationCode","passwordRecoveryAbort","href","reload","showAbout","$event","AboutDialogController","closeDialog","hide","show","targetEvent","templateUrl","controller","controllerAs","$inject","changeLanguage","ApplicationBaseURL","hello","form","canChangePassword","$setValidity","isInPasswordRecoveryMode","changePassword","passwordRecoveryInfo","mode","secretQuestionLabel","secretQuestion","obfuscatedRecoveryEmail","passwordRecoveryEmail","passwordRecoveryCheck","usernameChanged","clearTimeout","setTimeout","mailDomain"],"mappings":"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 truncated
+1 -3
View File
@@ -153,9 +153,7 @@
this.restoreLogin = function() {
vm.loginState = false;
delete vm.creds.verificationCode;
if (vm.isInPasswordRecoveryMode()) {
vm.passwordRecoveryAbort();
}
vm.passwordRecoveryAbort();
};
this.continueLogin = function() {