added validation to forget password component

sultan-q3
enadhilal 4 years ago
parent 08ce0228b7
commit c05f5c4725

@ -37,6 +37,39 @@
[(ngModel)]="P_Confirm_NEW_PASSWORD">
</ion-input>
</ion-item>
<ion-item lines='none'>
<img class="item-icon" src="../assets/icon/yellow.svg" item-start />
<ion-label><p>{{recentPasswordNote.text}}</p></ion-label>
</ion-item>
<ion-item lines='none'>
<img class="item-icon" [src]="checkerFuncation(1)" item-start />
<ion-label><p>{{isLowerCase.text}}</p></ion-label>
</ion-item>
<ion-item lines='none'>
<img class="item-icon" [src]="checkerFuncation(2)" item-start />
<ion-label><p>{{isUpperCase.text}}</p></ion-label>
</ion-item>
<ion-item lines='none'>
<img class="item-icon" [src]="checkerFuncation(3)" item-start />
<ion-label><p>{{isHasDigit.text}}</p></ion-label>
</ion-item>
<ion-item lines='none'>
<img class="item-icon" [src]="checkerFuncation(4)" item-start />
<ion-label><p>{{isMinLength.text}}</p></ion-label>
</ion-item>
<ion-item lines='none'>
<img class="item-icon" [src]="checkerFuncation(5)" item-start />
<ion-label><p>{{isRepeatedLetter.text}}</p></ion-label>
</ion-item>
<ion-item lines='none'>
<img class="item-icon" [src]="checkerFuncation(6)" item-start />
<ion-label><p>{{isContainSpecialChar.text}}</p></ion-label>
</ion-item>
<ion-item lines='none'>
<img class="item-icon" [src]="checkerFuncation(7)" item-start />
<ion-label><p>{{confirmMatchNew.text}}</p></ion-label>
</ion-item>
</ion-grid>
<page-trailer [small]="true"></page-trailer>
@ -45,6 +78,8 @@
</ion-content>
<ion-footer>
<div class="centerDiv">
<ion-button class="button-login" ion-button (click)=" forgotpassword()">{{ts.trPK('login','changepassword')}}</ion-button>
<button [disabled]="disabledSubmitBtn()"
[ngClass]=" disabledSubmitBtn() ? 'disabledButton' : '' "
class="button-login" ion-button (click)="forgotpassword()">{{ts.trPK('login','changepassword')}}</button>
</div>
</ion-footer>

@ -9,7 +9,7 @@ import { SmsReaderService } from 'src/app/hmg-common/services/sms/sms-reader.ser
import { ForgetPassword } from '../models/forget.password';
import { LoginModel } from '../models/LoginModel';
import { SharedDataService } from 'src/app/hmg-common/services/shared-data-service/shared-data.service';
import {LoginComponent} from "src/app/authentication/login/login.component";
import { LoginComponent } from "src/app/authentication/login/login.component";
@Component({
selector: 'app-forgot',
templateUrl: './forgot.component.html',
@ -18,10 +18,56 @@ import {LoginComponent} from "src/app/authentication/login/login.component";
export class ForgotComponent implements OnInit {
private loginData = new LoginModel();
public P_NEW_PASSWORD: string;
public P_Confirm_NEW_PASSWORD : string;
public P_USER_NAME : string;
public P_NEW_PASSWORD: string = '';
public P_Confirm_NEW_PASSWORD: string = '';
public P_USER_NAME: string;
public logo = "assets/icon/login/lock.png";
public recentPasswordNote = {
yellowImg: '../assets/icon/yellow.svg',
text: 'Do not user recent password'
};
public isLowerCase = {
blankImg: '../assets/icon/blank.svg',
greenImg: '../assets/icon/green.svg',
text: 'At least one lowercase',
isMatch: false
};
public isUpperCase = {
blankImg: '../assets/icon/blank.svg',
greenImg: '../assets/icon/green.svg',
text: 'At least one uppdercase',
isMatch: false
};
public isHasDigit = {
blankImg: '../assets/icon/blank.svg',
greenImg: '../assets/icon/green.svg',
text: 'At least one nomeric',
isMatch: false
};
public isMinLength = {
blankImg: '../assets/icon/blank.svg',
greenImg: '../assets/icon/green.svg',
text: 'Minimum 8 characters',
isMatch: false
};
public isRepeatedLetter = {
blankImg: '../assets/icon/blank.svg',
greenImg: '../assets/icon/green.svg',
text: 'Do not add repeating letters',
isMatch: false
};
public isContainSpecialChar = {
blankImg: '../assets/icon/blank.svg',
greenImg: '../assets/icon/green.svg',
text: 'It should contain special character',
isMatch: false
};
public confirmMatchNew = {
blankImg: '../assets/icon/blank.svg',
greenImg: '../assets/icon/green.svg',
text: 'Confirm Password does not match.',
isMatch: false
};
constructor(
public cs: CommonService,
@ -35,7 +81,7 @@ export class ForgotComponent implements OnInit {
) {
}
ngOnInit() {}
ngOnInit() { }
public onForgot() {
this.sendSMSForForgotPassword();
@ -56,7 +102,7 @@ export class ForgotComponent implements OnInit {
});
}
public forgotpassword(){
public forgotpassword() {
const data = this.sharedData.getSharedData(AuthenticationService.LOGIN_DATA, false);
const forgetPasswordTokenResult = this.sharedData.getSharedData('checkSMSResponse', false);
let forgetPasswordTokenID = '';
@ -65,11 +111,11 @@ export class ForgotComponent implements OnInit {
}
this.loginData.P_USER_NAME = this.P_USER_NAME;
let request: any = {};
request.P_Confirm_NEW_PASSWORD=this.P_NEW_PASSWORD;
request.P_NEW_PASSWORD=this.P_Confirm_NEW_PASSWORD;
request.P_Confirm_NEW_PASSWORD = this.P_NEW_PASSWORD;
request.P_NEW_PASSWORD = this.P_Confirm_NEW_PASSWORD;
request.P_USER_NAME = data.P_USER_NAME;
request.ForgetPasswordTokenID = forgetPasswordTokenID;
request.ForgetPasswordTokenID = forgetPasswordTokenID;
this.authService.submitForgetPassword(
request,
() => {
@ -78,10 +124,98 @@ export class ForgotComponent implements OnInit {
if (this.cs.validResponse(result)) {
this.checkUserResult = result;
console.log(result);
this.cs.toastPK("changePassword","successChange");
this.cs.toastPK("changePassword", "successChange");
this.cs.openLogin();
}
});
}
checkerFuncation(val) {
if (this.P_NEW_PASSWORD === '') {
switch (val) {
case 1:
return this.isLowerCase.blankImg;
case 2:
return this.isUpperCase.blankImg;
case 3:
return this.isHasDigit.blankImg;
case 4:
return this.isMinLength.blankImg;
case 5:
return this.isRepeatedLetter.blankImg;
case 6:
return this.isContainSpecialChar.blankImg;
case 7:
return this.confirmMatchNew.blankImg;
}
} else {
switch (val) {
case 1:
if (/[a-z]/.test(this.P_NEW_PASSWORD)) {
this.isLowerCase.isMatch = true;
return this.isLowerCase.greenImg;
} else {
this.isLowerCase.isMatch = false;
return this.isLowerCase.blankImg;
}
case 2:
if (/[A-Z]/.test(this.P_NEW_PASSWORD)) {
this.isUpperCase.isMatch = true;
return this.isUpperCase.greenImg;
} else {
this.isUpperCase.isMatch = false;
return this.isUpperCase.blankImg;
}
case 3:
if (/[0-9]/.test(this.P_NEW_PASSWORD)) {
this.isHasDigit.isMatch = true;
return this.isHasDigit.greenImg;
} else {
this.isHasDigit.isMatch = false;
return this.isHasDigit.blankImg;
}
case 4:
if (this.P_NEW_PASSWORD.length >= 8) {
this.isMinLength.isMatch = true;
return this.isMinLength.greenImg;
} else {
this.isMinLength.isMatch = false;
return this.isMinLength.blankImg;
}
case 5:
if (/([a-z])\1/i.test(this.P_NEW_PASSWORD)) {
this.isRepeatedLetter.isMatch = false;
return this.isRepeatedLetter.blankImg;
} else {
this.isRepeatedLetter.isMatch = true;
return this.isRepeatedLetter.greenImg;
}
case 6:
if (/[ `!@#$%^&*()_+\-=\[\]{};':"\\|,.<>\/?~]/.test(this.P_NEW_PASSWORD)) {
this.isContainSpecialChar.isMatch = true;
return this.isContainSpecialChar.greenImg;
} else {
this.isContainSpecialChar.isMatch = false;
return this.isContainSpecialChar.blankImg;
}
case 7:
if (this.P_NEW_PASSWORD !== this.P_Confirm_NEW_PASSWORD) {
this.confirmMatchNew.isMatch = true;
return this.confirmMatchNew.blankImg;
} else {
this.confirmMatchNew.isMatch = false;
return this.confirmMatchNew.greenImg;
}
}
}
}
disabledSubmitBtn() {
if (this.isLowerCase.isMatch && this.isUpperCase.isMatch && this.isHasDigit.isMatch && this.isMinLength.isMatch
&& this.isRepeatedLetter.isMatch && this.P_NEW_PASSWORD !== '' && this.P_NEW_PASSWORD
&& this.P_Confirm_NEW_PASSWORD && this.isContainSpecialChar) {
return false;
} else { return true; }
}
}

@ -27,8 +27,8 @@ export class ConnectorService {
public static retryTimes = 0;
public static timeOut = 120 * 1000;
// public static host = 'https://uat.hmgwebservices.com/';
public static host = 'https://hmgwebservices.com/';
public static host = 'https://uat.hmgwebservices.com/';
// public static host = 'https://hmgwebservices.com/';
constructor(public httpClient: HttpClient,
public cs: CommonService,

@ -37,6 +37,7 @@ export class WorklistMainService {
public static getStampMSNotificationBody = "Services/ERP.svc/REST/GET_STAMP_MS_NOTIFICATION_BODY";
public static getStampNSNotificationBody = "Services/ERP.svc/REST/GET_STAMP_NS_NOTIFICATION_BODY";
public static getAddressNotificationBody = "Services/ERP.svc/REST/GET_ADDRESS_NOTIFICATION_BODY";
public static getCEINotificationBody = "Services/ERP.svc/REST/GET_CEI_NOTIFICATION_BODY";
public static getPOItemHistory = "Services/ERP.svc/REST/GET_PO_ITEM_HISTORY";
public static getMOItemHistory = "Services/ERP.svc/REST/GET_MO_ITEM_HISTORY";
public static getNotificationButtons = "Services/ERP.svc/REST/GET_NOTIFICATION_BUTTONS";
@ -102,6 +103,21 @@ export class WorklistMainService {
);
}
public getCEINotificationBody(
WorkListBodyRequest: any,
onError?: any,
errorLabel?: string
): Observable<MONotificatonBodyResponse> {
const request = WorkListBodyRequest;
this.authService.authenticateRequest(request);
return this.api.post(
WorklistMainService.getCEINotificationBody,
request,
onError,
errorLabel
);
}
public getPRNotificationBody(
WorkListBodyRequest: any,
onError?: any,

@ -294,6 +294,8 @@ export class WorklistMainComponent implements OnInit {
this.getPhoneNotificationDetails(this.WorkListBodyObj);
} else if (this.getPassNotificationDetails.REQUEST_TYPE === 'CONTACT') {
this.getContactNotificationDetails(this.WorkListBodyObj);
} else if (this.getPassNotificationDetails.REQUEST_TYPE === 'CEI') {
this.getCEINotification(this.WorkListBodyObj);
}
}
@ -352,6 +354,14 @@ export class WorklistMainComponent implements OnInit {
});
}
getCEINotification(notificationBodyObj) {
this.worklistMainService
.getCEINotificationBody(notificationBodyObj)
.subscribe((result: MONotificatonBodyResponse) => {
this.handleWorkListBodyResult(result, "CEI");
});
}
getPRNotificationDetails(notificationBodyObj) {
this.worklistMainService
.getPRNotificationBody(notificationBodyObj)
@ -436,6 +446,12 @@ export class WorklistMainComponent implements OnInit {
result.GetBasicDetNtfBodyList;
console.log(result);
}
} else if (Type === "CEI"){
if (result.GetCEICollectionNotificationBodyList) {
this.notificationBodyRes =
result.GetCEICollectionNotificationBodyList;
console.log(result);
}
}
else if (Type === "STAMP_MS"){
if (result.GetStampMsNotificationBodyList) {

Loading…
Cancel
Save