diff --git a/src/app/utilities/change-password/ChangePasswordComponent.ts b/src/app/utilities/change-password/ChangePasswordComponent.ts
index 2b32a8b..ad2fa32 100644
--- a/src/app/utilities/change-password/ChangePasswordComponent.ts
+++ b/src/app/utilities/change-password/ChangePasswordComponent.ts
@@ -19,6 +19,7 @@
  * @file change password component
  */
 import { Component, Injector, OnInit } from '@angular/core';
+import { Router } from '@angular/router';
 import { NgbModal, NgbModalRef } from '@ng-bootstrap/ng-bootstrap';
 import { TranslateService } from '@ngx-translate/core';
 import { AddEditUserComponent } from 'AddEditUserComponent';
@@ -50,11 +51,14 @@
     /** Instance of the modal service @private */
     private modalService: NgbModal;
 
+    /** Holds the instance of router class @private */
+    private router: Router;
     constructor(injector: Injector) {
         this.injector = injector;
         this.translateService = this.injector.get(TranslateService);
         this.sharedService = this.injector.get(SharedService);
         this.modalService = this.injector.get(NgbModal);
+        this.router = this.injector.get(Router);
     }
 
     /** Lifecyle Hooks the trigger before component is instantiate @public */
@@ -65,6 +69,14 @@
         if (this.editType === 'changePassword') {
             modalRef.componentInstance.userTitle = this.translateService.instant('PAGE.USERS.EDITCREDENTIALS');
         }
+        if (this.router.url === '/forgotpassword') {
+            this.editType = 'forgotPassword';
+            modalRef.componentInstance.userTitle = this.translateService.instant('PAGE.USERS.FORGOT');
+        }
+        if (this.router.url.startsWith('/forgotpassword/changepassword/')) {
+            this.editType = 'change_password';
+            modalRef.componentInstance.userTitle = this.translateService.instant('PAGE.USERS.EDITCREDENTIALS');
+        }
         modalRef.componentInstance.userType = this.editType;
         modalRef.result.then((result: MODALCLOSERESPONSEDATA): void => {
             if (result) {
diff --git a/src/app/utilities/users-action/UsersActionComponent.html b/src/app/utilities/users-action/UsersActionComponent.html
index 69bf2ab..ca5affe 100644
--- a/src/app/utilities/users-action/UsersActionComponent.html
+++ b/src/app/utilities/users-action/UsersActionComponent.html
@@ -33,6 +33,10 @@
                 placement="left" container="body" ngbTooltip="{{'PAGE.USERS.EDITUSERNAME' | translate}}">
                 <i class="fas fa-user-edit"></i> {{'PAGE.USERS.EDITUSERNAME' | translate}}
             </button>
+            <button type="button" class="btn btn-primary dropdown-item" (click)="editUserModal('editmail')"
+                placement="left" container="body" ngbTooltip="{{'PAGE.USERS.CHANGEMAIL' | translate}}">
+                <i class="fas fa-envelope"></i> {{'PAGE.USERS.CHANGEMAIL' | translate}}
+            </button>
             <button type="button" class="btn btn-primary dropdown-item" (click)="projectRolesModal()" placement="left"
                 container="body" ngbTooltip="{{'PAGE.USERS.PROJECTSROLES' | translate}}">
                 <i class="fas fa-user-check"></i> {{'PAGE.USERS.PROJECTSROLES' | translate}}
diff --git a/src/app/utilities/users-action/UsersActionComponent.ts b/src/app/utilities/users-action/UsersActionComponent.ts
index a7b4c24..4f45f81 100644
--- a/src/app/utilities/users-action/UsersActionComponent.ts
+++ b/src/app/utilities/users-action/UsersActionComponent.ts
@@ -100,11 +100,14 @@
         modalRef.componentInstance.userID = this.value.identifier;
         if (editType === 'editPassword') {
             modalRef.componentInstance.userTitle = this.translateService.instant('PAGE.USERS.EDITCREDENTIALS');
+        } else if (editType === 'editmail') {
+            modalRef.componentInstance.userTitle = this.translateService.instant('PAGE.USERS.CHANGEMAIL');
         } else {
             modalRef.componentInstance.userTitle = this.translateService.instant('PAGE.USERS.EDITUSERNAME');
         }
         modalRef.componentInstance.userType = editType;
         modalRef.componentInstance.userName = this.value.username;
+        modalRef.componentInstance.email = this.value.email_id;
         modalRef.result.then((result: MODALCLOSERESPONSEDATA) => {
             if (result) {
                 this.sharedService.callData();
