forgot password changes : ps

This commit is contained in:
VE10-Sanjeev 2022-08-16 10:57:26 +05:30
parent db17a8c93c
commit 9415e50f04
6 changed files with 271 additions and 94 deletions

View File

@ -40,7 +40,7 @@ import { AuthLayoutComponent } from './layouts/auth/auth-layout.component';
import { SharedModule } from './shared/shared.module'; import { SharedModule } from './shared/shared.module';
import { AwsService } from './AwsService/aws.service'; import { AwsService } from './AwsService/aws.service';
import { TokenInterceptor } from './_guard/token.interceptor'; import { TokenInterceptor } from './_guard/token.interceptor';
import { NewPasswordDialog, ForgotPass } from './session/login/login.component'; import { NewPasswordDialog, ForgotPass } from './session/otp/otp.component';
import { AuthGuard } from './_guard/auth.guard'; import { AuthGuard } from './_guard/auth.guard';
import { RoleMenuItemsPipe } from './layouts/role-menu-items.pipe'; import { RoleMenuItemsPipe } from './layouts/role-menu-items.pipe';
import { ResizableModule } from 'angular-resizable-element'; import { ResizableModule } from 'angular-resizable-element';

View File

@ -106,7 +106,7 @@ export class LoginComponent implements OnInit{
this.loaderService.closeMatSpinnerDialog(); this.loaderService.closeMatSpinnerDialog();
}, err => { }, err => {
if (err.message == "New password is required.") { if (err.message == "New password is required.") {
this.newpassopen(); // this.newpassopen();
} else { } else {
} }
@ -114,27 +114,27 @@ export class LoginComponent implements OnInit{
//alert(err.message); //alert(err.message);
}) })
} }
/** // /**
* New password set // * New password set
* Defalut aws function // * Defalut aws function
* @param email password,newpassword // * @param email password,newpassword
*/ // */
newpassopen() { // newpassopen() {
const mailid = this.email.split(/\s/).join(''); // const mailid = this.email.split(/\s/).join('');
const password = this.password.split(/\s/).join(''); // const password = this.password.split(/\s/).join('');
let dialogRef = this.dialog.open(NewPasswordDialog, this.config); // let dialogRef = this.dialog.open(NewPasswordDialog, this.config);
dialogRef.afterClosed().subscribe(result => { // dialogRef.afterClosed().subscribe(result => {
if (result !== undefined) { // if (result !== undefined) {
let auth = { 'Username': mailid, 'Password': password, 'newpassword': result }; // let auth = { 'Username': mailid, 'Password': password, 'newpassword': result };
this.aws.dologin(auth).subscribe(res => { // this.aws.dologin(auth).subscribe(res => {
this.getCommonSettings(); // this.getCommonSettings();
this.router.navigate(['/']); // this.router.navigate(['/']);
}, err => { // }, err => {
// alert(err.message); // // alert(err.message);
}) // })
} // }
}); // });
} // }
forgotopen() { forgotopen() {
this.status = true; this.status = true;
@ -184,79 +184,79 @@ export class LoginComponent implements OnInit{
* New password Dialog * New password Dialog
*/ */
const newpassword = new FormControl('', Validators.required); // const newpassword = new FormControl('', Validators.required);
const confirmPassword = new FormControl('', CustomValidators.equalTo(newpassword)); // const confirmPassword = new FormControl('', CustomValidators.equalTo(newpassword));
@Component({ // @Component({
selector: 'app-jazz-dialog', // selector: 'app-jazz-dialog',
template: ` // template: `
<h5 class="mt-0">New Password Change.</h5> // <h5 class="mt-0">New Password Change.</h5>
<mat-form-field> // <mat-form-field>
<input matInput placeholder="New Password" #newpassword type="password" style="width: 100%;"> // <input matInput placeholder="New Password" #newpassword type="password" style="width: 100%;">
</mat-form-field> // </mat-form-field>
<br/> // <br/>
<mat-form-field> // <mat-form-field>
<input matInput placeholder="ConfirmPassword" #confirmPassword type="password" style="width: 100%;"> // <input matInput placeholder="ConfirmPassword" #confirmPassword type="password" style="width: 100%;">
</mat-form-field> // </mat-form-field>
<small *ngIf="confirmPassword.value !='' && newpassword.value != confirmPassword.value" class="mat-text-warn">Passwords do not match.</small> // <small *ngIf="confirmPassword.value !='' && newpassword.value != confirmPassword.value" class="mat-text-warn">Passwords do not match.</small>
<br> // <br>
<button mat-raised-button class="mat-green" type="submit" (click)="dialogRef.close(newpassword.value)">Submit</button> // <button mat-raised-button class="mat-green" type="submit" (click)="dialogRef.close(newpassword.value)">Submit</button>
` // `
}) // })
export class NewPasswordDialog { // export class NewPasswordDialog {
newpassword: any = newpassword; // newpassword: any = newpassword;
confirmPassword: any = confirmPassword; // confirmPassword: any = confirmPassword;
jazzMessage = 'Jazzy jazz jazz'; // jazzMessage = 'Jazzy jazz jazz';
constructor(public dialogRef: MatDialogRef<NewPasswordDialog>) { // constructor(public dialogRef: MatDialogRef<NewPasswordDialog>) {
} // }
} // }
@Component({ // @Component({
selector: 'app-jazz-dialog', // selector: 'app-jazz-dialog',
template: ` // template: `
<h5 class="mt-0">Forgot Password</h5> // <h5 class="mt-0">Forgot Password</h5>
<mat-form-field> // <mat-form-field>
<input matInput placeholder="Email Id" #newpassword type="Email" style="width: 100%;"> // <input matInput placeholder="Email Id" #newpassword type="Email" style="width: 100%;">
</mat-form-field> // </mat-form-field>
<br> // <br>
<button mat-raised-button class="mat-green" type="submit" (click)="dialogRef.close(newpassword.value)">Submit</button> // <button mat-raised-button class="mat-green" type="submit" (click)="dialogRef.close(newpassword.value)">Submit</button>
` // `
}) // })
export class ForgotPass { // export class ForgotPass {
newpassword: any = newpassword; // newpassword: any = newpassword;
confirmPassword: any = confirmPassword; // confirmPassword: any = confirmPassword;
jazzMessage = 'Jazzy jazz jazz'; // jazzMessage = 'Jazzy jazz jazz';
constructor(public dialogRef: MatDialogRef<ForgotPass>) { // constructor(public dialogRef: MatDialogRef<ForgotPass>) {
} // }
} // }

View File

@ -12,17 +12,20 @@
</div> </div>
</h2> </h2>
<mat-dialog-content> <mat-dialog-content>
<mat-form-field style="width: 80%"> <mat-form-field style="width: 75%">
<input matInput placeholder="Enter OTP" #otp <input matInput placeholder="Enter OTP" #otp
type="text" maxlength="6"> type="text" maxlength="6">
</mat-form-field> </mat-form-field>
<span style="width: 25%">
<button mat-button color="primary" (click)="resendOTP()" >{{timeLeft == 0 ? 'Resend OTP' : timeLeft+' Seconds Left....' }} </button>
</span>
</mat-dialog-content> </mat-dialog-content>
<mat-dialog-actions> <mat-dialog-actions>
<div fxFlex="100" align="right"> <div fxFlex="100" align="right">
<!--<button mat-raised-button mat-icon-button class="mr-1 mb-1 hover-icon" type="button" mat-dialog-close matTooltip="Close" matTooltipPosition="below"><mat-icon>close</mat-icon></button>--> <!--<button mat-raised-button mat-icon-button class="mr-1 mb-1 hover-icon" type="button" mat-dialog-close matTooltip="Close" matTooltipPosition="below"><mat-icon>close</mat-icon></button>-->
<button mat-raised-button (click)="updatepassword(otp.value)" class="mr-1 mb-1 hover-icon" type="button" matTooltip="Update Password" matTooltipPosition="below" style="background-color: red;color:#fff;">verify</button> <button mat-raised-button (click)="updatepassword(otp.value)" class="mr-1 mb-1 hover-icon" type="button" matTooltip="VERIFY" matTooltipPosition="below" style="background-color: red;color:#fff;">VERIFY</button>
</div> </div>
</mat-dialog-actions> </mat-dialog-actions>

View File

@ -1,6 +1,11 @@
import { Component, OnInit, Inject } from '@angular/core'; import { Component, OnInit, Inject } from '@angular/core';
import { MatDialogRef, MatDialog, MAT_DIALOG_DATA } from '@angular/material'; import { MatDialogRef, MatDialog, MAT_DIALOG_DATA, MatDialogConfig } from '@angular/material';
import { DashboardService } from 'app/dashboard/dashboard.service'; import { DashboardService } from 'app/dashboard/dashboard.service';
import { FormBuilder, FormGroup, Validators, FormControl } from '@angular/forms';
import { CustomValidators } from 'ng2-validation';
import { Router } from "@angular/router";
import { AwsService } from '../../AwsService/aws.service';
import { LoaderService } from 'app/shared/loaderService/loader.service';
@Component({ @Component({
selector: 'app-otp', selector: 'app-otp',
@ -8,30 +13,199 @@ import { DashboardService } from 'app/dashboard/dashboard.service';
styleUrls: ['./otp.component.scss'] styleUrls: ['./otp.component.scss']
}) })
export class OtpComponent implements OnInit { export class OtpComponent implements OnInit {
timeLeft: number = 0;
constructor(private dialogRef: MatDialogRef<OtpComponent>,private dialog: MatDialog, @Inject(MAT_DIALOG_DATA) public data: any,private dashBoardService:DashboardService) { } loggedEmailID:any="";
interval;
ngOnInit() { config: MatDialogConfig = {
disableClose: false,
width: '',
height: '',
position: {
top: '',
bottom: '',
left: '',
right: ''
}
};
constructor(private dialogRef: MatDialogRef<OtpComponent>,private dialog: MatDialog, @Inject(MAT_DIALOG_DATA) public data: any,private dashBoardService:DashboardService,private loaderService:LoaderService,private router: Router,public aws: AwsService) {
this.loggedEmailID = this.data;
this.timeLeft = 60;
this.interval = setInterval(() => {
if(this.timeLeft > 0) {
this.timeLeft--;
} else {
clearInterval(this.interval);
}
},1000)
} }
updatepassword(otp)
{ ngOnInit() {}
console.log('data');
console.log(this.data); resendOTP() {
this.dashBoardService.resetpassword(this.data,otp).subscribe( this.timeLeft = 60;
data => { this.dashBoardService.generateotp(this.loggedEmailID.split(/\s/).join('')).subscribe(
console.log('data'); response => {
console.log(data) // if(response.status == 200)
if (data.status == 200) { this.interval = setInterval(() => {
alert('Password Reset Successfully'); if(this.timeLeft > 0) {
this.dialogRef.close(); this.timeLeft--;
} } else {
else clearInterval(this.interval);
{ // alert(response.msg);//comment this.
alert('OTP is invalid. Plesae enter correct OTP.!'); }
},1000)
} });
}
})
} // updatepassword(otp)
// {
// console.log('data');
// console.log(this.data);
// this.dashBoardService.resetpassword(this.data,otp).subscribe(
// data => {
// console.log('data');
// console.log(data)
// if (data.status == 200) {
// alert('Password Reset Successfully');
// this.dialogRef.close();
// }
// else
// {
// alert('OTP is invalid. Plesae enter correct OTP.!');
// }
// })
// }
updatepassword(otp)
{
this.dashBoardService.resetpassword(this.loggedEmailID,otp).subscribe(
data => {
console.log('resetpassword api res data',data);
if (data.status == 200) {
this.dialogRef.close();
this.loggedEmailID = this.data;
// alert('Password Reset Successfully');
this.loaderService.showMatSpinnerDialog('');
this.newpassopen(this.loggedEmailID);
}
else{ alert('OTP is invalid. Plesae enter correct OTP.!'); }
});
}
/**
* New password set
* Defalut aws function
* @param email password,newpassword
*/
newpassopen(email) {
let dialogRef = this.dialog.open(NewPasswordDialog, this.config);
dialogRef.afterClosed().subscribe(result => {
if (result !== undefined) {
console.log(result);
let auth = { 'Username': email, 'Password': 'temp1234', 'newpassword': result };
this.aws.dologin(auth).subscribe(res => {
this.getCommonSettings();
// this.router.navigate(['/']);
this.router.navigate(['personal_discussion/pdlist']);
localStorage.setItem('user_role',res.idToken.payload["custom:role_id"]);
this.loaderService.closeMatSpinnerDialog();
if(res.idToken.payload["custom:role_id"]=='30' || res.idToken.payload["custom:role_id"]=='10' || res.idToken.payload["custom:role_id"]=='11' || res.idToken.payload["custom:role_id"]=='13' || res.idToken.payload["custom:role_id"]=='15' || res.idToken.payload["custom:role_id"]=='17' || res.idToken.payload["custom:role_id"]=='19')
{
this.router.navigate(['/sales-pd-list']);
} else if(res.idToken.payload ["custom:role_id"] == '20'){
this.router.navigate(['/fly-hi'])
}
else
{
alert('Sales User Roles only allowed');
this.aws.logout().subscribe(res=>{
this.router.navigate(['/authentication/login']);
})
}
}, err => {
this.loaderService.closeMatSpinnerDialog();
// alert(err.message);
})
}
});
}
commonDetails: any;
getCommonSettings(){
this.dashBoardService.getCommonSettingsConfig().subscribe(res=>{
this.commonDetails = res;
if(this.commonDetails.dataStatus == true){
localStorage.setItem("commonSettings",JSON.stringify(this.commonDetails.records));
}
})
}
} }
/** ======================= OtpComponent Ends Here ============================== */
/** ==================== New password Dialog Starts Here ======================== */
const newpassword = new FormControl('', Validators.required);
const confirmPassword = new FormControl('', CustomValidators.equalTo(newpassword));
@Component({
selector: 'app-jazz-dialog',
template: `
<h5 class="mt-0">New Password Change.</h5>
<mat-form-field>
<input matInput placeholder="New Password" #newpassword [type]="hide1 ? 'password' : 'text'" style="width: 100%;">
<mat-icon class="passwordIcon" matSuffix (click)="hide1 = !hide1">{{hide1 ? 'visibility_off' : 'visibility'}}</mat-icon>
</mat-form-field>
<br/>
<mat-form-field>
<input matInput placeholder="ConfirmPassword" #confirmPassword [type]="hide2 ? 'password' : 'text'" style="width: 100%;">
<mat-icon class="passwordIcon" matSuffix (click)="hide2 = !hide2">{{hide2 ? 'visibility_off' : 'visibility'}}</mat-icon>
</mat-form-field>
<small *ngIf="confirmPassword.value !='' && newpassword.value != confirmPassword.value" class="mat-text-warn">Passwords do not match.</small>
<br>
<button mat-raised-button class="mat-green" type="submit" (click)="dialogRef.close(newpassword.value)">Submit</button>
`
})
export class NewPasswordDialog {
newpassword: any = newpassword;
confirmPassword: any = confirmPassword;
hide1: boolean = true;
hide2: boolean = true;
jazzMessage = 'Jazzy jazz jazz';
constructor(public dialogRef: MatDialogRef<NewPasswordDialog>) { }
}
/** ==================== New password Dialog Ends Here ======================== */
/** ==================== Forgot Password Dialog Starts Here =================== */
@Component({
selector: 'app-jazz-dialog',
template: `
<h5 class="mt-0">Forgot Password</h5>
<mat-form-field>
<input matInput placeholder="Email Id" #newpassword type="Email" style="width: 100%;">
</mat-form-field>
<br>
<button mat-raised-button class="mat-green" type="submit" (click)="dialogRef.close(newpassword.value)">Submit</button>
` })
export class ForgotPass {
newpassword: any = newpassword;
confirmPassword: any = confirmPassword;
jazzMessage = 'Jazzy jazz jazz';
constructor(public dialogRef: MatDialogRef<ForgotPass>) {}
}
/** ==================== Forgot Password Dialog Ends Here =================== */

View File

@ -21,7 +21,7 @@ import { RouterModule } from '@angular/router';
import { UserRoutes} from './users.routing'; import { UserRoutes} from './users.routing';
import { UserProfileComponent, ChangePasswordDialog } from './user-profile/user-profile.component'; import { UserProfileComponent, ChangePasswordDialog } from './user-profile/user-profile.component';
import { UserService } from './../service/user.service'; import { UserService } from './../service/user.service';
import { NewPasswordDialog, ForgotPass } from '../../session/login/login.component'; import { NewPasswordDialog, ForgotPass } from '../../session/otp/otp.component';
// import { HttpClientModule } from '@angular/common/http'; // import { HttpClientModule } from '@angular/common/http';
@NgModule({ @NgModule({
imports: [ imports: [