unserver-unify
Version:
122 lines (117 loc) • 4.36 kB
JavaScript
angular.module('bamboo.common').service('loginDlgSvs', function(loginService, $state, $uibModal, CommonService, $timeout, ApiService, $filter, $localStorage, deviceDetector, $translate) {
// body...
var self = this;
self.login = {
domain: loginService.subDomain
};
var resetPwdOpts = {
size: "md-lg vertical-align-center",
animation: true,
backdrop: 'static',
component: 'resetPwdComponent',
keyboard: false,
resolve: {
reason: function() {
return self.changePwdReason;
}
}
}
this.openLoginDialog = function() {
var options = {
templateUrl: 'app/login/login.dlg.html',
controller: 'LoginDlgCtrl',
controllerAs: 'ctrl',
size: "md-lg vertical-align-center",
backdrop: 'static'
}
if (loginService.school.loginTheme) {
switch (loginService.school.loginTheme) {
case 't1':
options.templateUrl = "app/login/login.dlg1.html";
break;
case 't2':
options.templateUrl = "app/login/login.dlg2.html";
break;
}
}
$uibModal.open(options).result.then(function(login) {
if (!login) {} else if (login.forgotPassword) {
$state.go('index.request-reset-pwd');
} else if (login.showagreement) {
$timeout(function() {
$state.go('index.agreement');
}, 500)
} else if (login.enviroment) {
$timeout(function() {
$state.go('index.enviroment');
}, 500)
} else {
self.login = login;
self.loginMe();
}
});
};
self.showWelcomeDlg = function() {
if (loginService.school.welcomedoc) {
ApiService.get("/schooldoc/" + loginService.school.welcomedoc).then(function(result) {
// console.log(result);
if (result.data.success) {
var content = result.data.data.detail;
if (content && content.length > 10) {
CommonService.showHTML('Welcome Message', content);
}
}
})
}
}
self.loginMe = function() {
self.login.domain = loginService.subDomain;
self.login.ownername = loginService.school.name;
self.login.url = ApiService.HOST + "#/active_account";
loginService.login(self.login).then(function(user) {
console.info(user);
if (!user) {
return;
} else if ((!user.loginCounter || user.loginCounter < 2) && loginService.school.welcomedoc) {
}
var now = new Date();
var expireDate = new Date(loginService.school.expire);
var oneDay = 24 * 60 * 60 * 1000; // hours*minutes*seconds*milliseconds
var diffDays = Math.round(Math.abs((expireDate.getTime() - now.getTime()) / (oneDay)));
if (diffDays <= 14 && user.role == "admin") CommonService.showNoBlockErr('Your account will expire after ' + diffDays + ' days !');
$state.reload();
console.info($state.current.name);
if ($state.current.name == 'index.reset-pwd') {
$state.go('index.home');
}
if ($state.current.name == '403') {
$state.go('index.home');
}
if (deviceDetector.isMobile() && !deviceDetector.isTablet()) {
$state.go('index.home', {}, {
reload: true
});
}
if (user && ( user.loginCounter < 2 || !user.loginCounter)) {
self.changePwdReason = $translate.instant('ChangePwdReason1');
$uibModal.open(resetPwdOpts);
$localStorage.FORCE_RESET_PWD = true;
$localStorage.FORCE_RESET_PWD_REASON = self.changePwdReason;
} else if (user && user.passNeedToUpdate) {
self.changePwdReason = $translate.instant('ChangePwdReason2');
$uibModal.open(resetPwdOpts);
$localStorage.FORCE_RESET_PWD = true;
$localStorage.FORCE_RESET_PWD_REASON = self.changePwdReason;
//console.info(pwdService.FORCE_RESET_PWD);
}
}, function(reason) {
if (reason.data.errorcode && reason.data.errorcode == 1001) {
CommonService.showError($filter('trans')({
eng: 'The account is not actived, please check email ' + reason.data.email,
chn: '账户还未激活,请检查邮箱 ' + reason.data.email
}));
}
CommonService.showError(reason);
});
};
});