diff --git a/maxkey-web-frontend/maxkey-web-app/src/app/routes/config/password/password.component.ts b/maxkey-web-frontend/maxkey-web-app/src/app/routes/config/password/password.component.ts index 4df1afce9..4f4be5490 100644 --- a/maxkey-web-frontend/maxkey-web-app/src/app/routes/config/password/password.component.ts +++ b/maxkey-web-frontend/maxkey-web-app/src/app/routes/config/password/password.component.ts @@ -16,14 +16,14 @@ import { ChangeDetectionStrategy, ChangeDetectorRef, Component, OnInit, Inject } from '@angular/core'; import { FormBuilder, FormGroup, Validators } from '@angular/forms'; +import { Router, ActivatedRoute } from '@angular/router'; import { I18NService } from '@core'; import { SettingsService, User, ALAIN_I18N_TOKEN } from '@delon/theme'; import { NzMessageService } from 'ng-zorro-antd/message'; -import { Router, ActivatedRoute } from '@angular/router'; + import { ChangePassword } from '../../../entity/ChangePassword'; import { PasswordService } from '../../../service/password.service'; - @Component({ selector: 'app-password', templateUrl: './password.component.html', @@ -39,10 +39,10 @@ export class PasswordComponent implements OnInit { }; validateForm!: FormGroup; oldPasswordVisible = false; - policy:any = {}; + policy: any = {}; passwordVisible = false; - policyMessage:any[] =[]; - dynamicallyCheckPasswordErrorMsg = ""; + policyMessage: any[] = []; + dynamicallyCheckPasswordErrorMsg = ''; constructor( private router: Router, private fb: FormBuilder, @@ -51,14 +51,14 @@ export class PasswordComponent implements OnInit { private msg: NzMessageService, @Inject(ALAIN_I18N_TOKEN) private i18n: I18NService, private cdr: ChangeDetectorRef - ) { } + ) {} ngOnInit(): void { this.loadPolicy(); this.validateForm = this.fb.group({ oldPassword: [null, [Validators.required]], confirmPassword: [null, [Validators.required]], - password: [null, [Validators.required]], + password: [null, [Validators.required]] }); let user: any = this.settingsService.user; @@ -69,27 +69,26 @@ export class PasswordComponent implements OnInit { this.cdr.detectChanges(); } - - loadPolicy():void { - this.policyMessage=[]; + loadPolicy(): void { + this.policyMessage = []; this.passwordService.passwordpolicy().subscribe(res => { - if(res.code == 0) { + if (res.code == 0) { let data = res.data; this.policy = data; - this.policyMessage=res.data.policMessageList; + this.policyMessage = res.data.policMessageList; } }); } - dynamicallyCheckConfirm(value:any):void { + dynamicallyCheckConfirm(value: any): void { if (value != this.form.model.password) { - this.dynamicallyCheckPasswordErrorMsg = this.i18n.fanyi('validation.password.twice') + this.dynamicallyCheckPasswordErrorMsg = this.i18n.fanyi('validation.password.twice'); } else { this.dynamicallyCheckPasswordErrorMsg = ''; } } - dynamicallyCheckPassword(value:any):void { + dynamicallyCheckPassword(value: any): void { if (value == '') { this.dynamicallyCheckPasswordErrorMsg = ''; return; @@ -99,78 +98,76 @@ export class PasswordComponent implements OnInit { let inputLength = value.length; if (inputLength < data.minLength || inputLength > data.maxLength) { //this.dynamicallyCheckPasswordErrorMsg = "限定新密码长度为"+data.minLength+"-"+data.maxLength+"位" - this.dynamicallyCheckPasswordErrorMsg = this.i18n.fanyi('validation.password.non-conformance-strength') + this.dynamicallyCheckPasswordErrorMsg = this.i18n.fanyi('validation.password.non-conformance-strength'); return; } } if (data.lowerCase > 0) { - let strArr = Array.from(value) - let abc:any = []; - strArr.forEach(function (value:any, index, array) { - let code = value.charCodeAt() + let strArr = Array.from(value); + let abc: any = []; + strArr.forEach(function (value: any, index, array) { + let code = value.charCodeAt(); if (code >= 'a'.charCodeAt(0) && code <= 'z'.charCodeAt(0)) { - abc.push(value) + abc.push(value); } - }) - if(abc.length < data.lowerCase) { + }); + if (abc.length < data.lowerCase) { //this.dynamicallyCheckPasswordErrorMsg = "限定新密码至少需要包含"+data.lowerCase+"位【a-z】小写字母" - this.dynamicallyCheckPasswordErrorMsg = this.i18n.fanyi('validation.password.non-conformance-strength') + this.dynamicallyCheckPasswordErrorMsg = this.i18n.fanyi('validation.password.non-conformance-strength'); return; } } - - if(data.upperCase > 0) { - let strArr = Array.from(value) - let ABC:any = []; - strArr.forEach(function (value:any, index, array) { - let code = value.charCodeAt() + if (data.upperCase > 0) { + let strArr = Array.from(value); + let ABC: any = []; + strArr.forEach(function (value: any, index, array) { + let code = value.charCodeAt(); if (code >= 'A'.charCodeAt(0) && code <= 'Z'.charCodeAt(0)) { - ABC.push(value) + ABC.push(value); } - }) - if(ABC.length < data.upperCase) { - this.dynamicallyCheckPasswordErrorMsg = this.i18n.fanyi('validation.password.non-conformance-strength') + }); + if (ABC.length < data.upperCase) { + this.dynamicallyCheckPasswordErrorMsg = this.i18n.fanyi('validation.password.non-conformance-strength'); //this.dynamicallyCheckPasswordErrorMsg = "限定新密码至少需要包含"+data.lowerCase+"位【A-Z】大写字母" return; } } if (data.digits > 0) { - let strArr = Array.from(value) - let number:any = []; - strArr.forEach(function (value:any, index, array) { + let strArr = Array.from(value); + let number: any = []; + strArr.forEach(function (value: any, index, array) { var regPos = /^[0-9]+.?[0-9]*/; //判断是否是数字。 - if(regPos.test(value) ){ - number.push(value) + if (regPos.test(value)) { + number.push(value); } - }) - if(number.length < data.digits) { + }); + if (number.length < data.digits) { //this.dynamicallyCheckPasswordErrorMsg = "限定新密码至少需要包含"+data.digits+"位【0-9】阿拉伯数字"; - this.dynamicallyCheckPasswordErrorMsg = this.i18n.fanyi('validation.password.non-conformance-strength') + this.dynamicallyCheckPasswordErrorMsg = this.i18n.fanyi('validation.password.non-conformance-strength'); return; } } - - if(data.specialChar > 0) { - var AllNumIsSame = new Array("’","”","!","@","#","$","%","^","&","*","."); - let strArr = Array.from(value) - let number:any = []; - strArr.forEach(function (value:any, index, array) { - if(AllNumIsSame.indexOf(value) != -1){//$.type 是jquery的函数,用来判断对象类型 - number.push(value) + if (data.specialChar > 0) { + var AllNumIsSame = new Array('’', '”', '!', '@', '#', '$', '%', '^', '&', '*', '.'); + let strArr = Array.from(value); + let number: any = []; + strArr.forEach(function (value: any, index, array) { + if (AllNumIsSame.indexOf(value) != -1) { + //$.type 是jquery的函数,用来判断对象类型 + number.push(value); } - }) - if(number.length < data.specialChar) { + }); + if (number.length < data.specialChar) { //this.dynamicallyCheckPasswordErrorMsg = "限定新密码至少需要包含"+data.specialChar+"位特殊字符"; - this.dynamicallyCheckPasswordErrorMsg = this.i18n.fanyi('validation.password.non-conformance-strength') + this.dynamicallyCheckPasswordErrorMsg = this.i18n.fanyi('validation.password.non-conformance-strength'); return; } } this.dynamicallyCheckPasswordErrorMsg = ''; - } onSubmit(): void { @@ -182,18 +179,15 @@ export class PasswordComponent implements OnInit { if (res.code == 0) { this.form.model.init(res.data); this.msg.success(this.i18n.fanyi('mxk.alert.operate.success')); - this.form.model.password = ''; - this.form.model.oldPassword = ''; - this.form.model.confirmPassword = ''; //设置密码正常,路由不进行拦截 let user = this.settingsService.user; user['passwordSetType'] = 0; - this.settingsService.setUser(user) - this.router.navigateByUrl('/'); + this.settingsService.setUser(user); + //this.router.navigateByUrl('/'); } else { if (res.message) { this.msg.error(res.message); - return + return; } this.msg.error(this.i18n.fanyi('mxk.alert.operate.error')); } @@ -210,7 +204,4 @@ export class PasswordComponent implements OnInit { }); } } - - - } diff --git a/maxkey-webs/maxkey-web-maxkey/src/main/java/org/dromara/maxkey/web/contorller/ChangePasswodController.java b/maxkey-webs/maxkey-web-maxkey/src/main/java/org/dromara/maxkey/web/contorller/ChangePasswodController.java index 72bda640d..7c05eff17 100644 --- a/maxkey-webs/maxkey-web-maxkey/src/main/java/org/dromara/maxkey/web/contorller/ChangePasswodController.java +++ b/maxkey-webs/maxkey-web-maxkey/src/main/java/org/dromara/maxkey/web/contorller/ChangePasswodController.java @@ -58,7 +58,7 @@ public class ChangePasswodController { return new Message<>(passwordPolicy); } - @PostMapping(value = { "/changePassword" }) + @PutMapping(value = { "/changePassword" }) public Message changePasswod( @RequestBody ChangePassword changePassword, @CurrentUser UserInfo currentUser) {