X-Git-Url: https://osm.etsi.org/gitweb/?a=blobdiff_plain;f=src%2Fapp%2Fusers%2Fuser-details%2FUserDetailsComponent.ts;h=51047ba6349ec1a43062309d14b85e4f395c8fbc;hb=1b17c432991a95035a1732426f0c11db57e511c9;hp=a4bedd5f28e41728d60738f58d76053f0ffbd2b8;hpb=3b4814aa2d3dec621dadb52f058ba95a3dc3a86a;p=osm%2FNG-UI.git diff --git a/src/app/users/user-details/UserDetailsComponent.ts b/src/app/users/user-details/UserDetailsComponent.ts index a4bedd5..51047ba 100644 --- a/src/app/users/user-details/UserDetailsComponent.ts +++ b/src/app/users/user-details/UserDetailsComponent.ts @@ -15,14 +15,16 @@ Author: KUMARAN M (kumaran.m@tataelxsi.co.in), RAJESH S (rajesh.s@tataelxsi.co.in), BARATH KUMAR R (barath.r@tataelxsi.co.in) */ +/* eslint-disable security/detect-object-injection */ /** * @file users details Component. */ +import { isNullOrUndefined } from 'util'; import { Component, Injector, OnDestroy, OnInit } from '@angular/core'; import { NgbModal, NgbModalRef } from '@ng-bootstrap/ng-bootstrap'; import { TranslateService } from '@ngx-translate/core'; import { AddEditUserComponent } from 'AddEditUserComponent'; -import { ERRORDATA, MODALCLOSERESPONSEDATA } from 'CommonModel'; +import { CONFIGCONSTANT, ERRORDATA, MODALCLOSERESPONSEDATA } from 'CommonModel'; import { DataService } from 'DataService'; import { environment } from 'environment'; import { LocalDataSource } from 'ng2-smart-table'; @@ -64,6 +66,21 @@ export class UserDetailsComponent implements OnInit, OnDestroy { /** Class for empty and present data @public */ public checkDataClass: string; + /** user active data @public */ + public userActive: string = CONFIGCONSTANT.userActive; + + /** user locked data @public */ + public userLocked: string = CONFIGCONSTANT.userLocked; + + /** user expired data @public */ + public userExpired: string = CONFIGCONSTANT.userExpired; + + /** user always-active data @public */ + public userAlwaysActive: string = CONFIGCONSTANT.userAlwaysActive; + + /** Admin Visibility Check @public */ + public isAdminShow: boolean; + /** Instance of the rest service @private */ private restService: RestService; @@ -108,20 +125,61 @@ export class UserDetailsComponent implements OnInit, OnDestroy { this.projectService.getAllProjects().subscribe((projects: {}[]) => { this.projectList = projects; }); + this.isAdminShow = localStorage.getItem('admin_show') === 'true' ? true : false; this.generateColumns(); this.generateSettings(); this.generateData(); + this.hideColumnForUser(); this.generateDataSub = this.sharedService.dataEvent.subscribe(() => { this.generateData(); }); } /** smart table Header Colums @public */ public generateColumns(): void { this.columnLists = { - username: { title: this.translateService.instant('NAME'), width: '20%', sortDirection: 'asc' }, - projects: { title: this.translateService.instant('PAGE.DASHBOARD.PROJECTS'), width: '25%' }, - identifier: { title: this.translateService.instant('IDENTIFIER'), width: '20%' }, - modified: { title: this.translateService.instant('MODIFIED'), width: '15%' }, - created: { title: this.translateService.instant('CREATED'), width: '15%' }, + username: { title: this.translateService.instant('NAME'), width: '10%', sortDirection: 'asc' }, + projects: { title: this.translateService.instant('PAGE.DASHBOARD.PROJECTS'), width: '15%' }, + identifier: { title: this.translateService.instant('IDENTIFIER'), width: '10%' }, + user_status: { + type: 'html', + title: this.translateService.instant('STATUS'), + width: '15%', + filter: { + type: 'list', + config: { + selectText: 'Select', + list: [ + { value: this.userActive, title: this.userActive }, + { value: this.userLocked, title: this.userLocked }, + { value: this.userExpired, title: this.userExpired }, + { value: this.userAlwaysActive, title: this.userAlwaysActive } + ] + } + }, + valuePrepareFunction: (cell: UserData, row: UserData): string => { + if (row.user_status === this.userActive) { + return ` + + `; + } else if (row.user_status === this.userLocked) { + return ` + + `; + } else if (row.user_status === this.userExpired) { + return ` + + `; + } else if (row.user_status === this.userAlwaysActive) { + return ` + + `; + } else { + return `${row.user_status}`; + } + } + }, + account_expire_time: { title: this.translateService.instant('Expires in'), width: '10%' }, + modified: { title: this.translateService.instant('MODIFIED'), width: '10%' }, + created: { title: this.translateService.instant('CREATED'), width: '10%' }, Actions: { name: 'Action', width: '5%', filter: false, sort: false, title: this.translateService.instant('ACTIONS'), type: 'custom', valuePrepareFunction: (cell: UserData, row: UserData): UserData => row, @@ -143,8 +201,25 @@ export class UserDetailsComponent implements OnInit, OnDestroy { }; } + /** To hide coulmns in smart table @public */ + public hideColumnForUser(): void { + if (!this.isAdminShow) { + const userStatus: string = 'user_status'; + const expire: string = 'account_expire_time'; + // eslint-disable-next-line @typescript-eslint/no-dynamic-delete + delete this.columnLists[userStatus]; + // eslint-disable-next-line @typescript-eslint/no-dynamic-delete + delete this.columnLists[expire]; + } else { + const modified: string = 'modified'; + // eslint-disable-next-line @typescript-eslint/no-dynamic-delete + delete this.columnLists[modified]; + } + } + /** on Navigate to Composer Page @public */ public composeUser(): void { + // eslint-disable-next-line security/detect-non-literal-fs-filename const modalRef: NgbModalRef = this.modalService.open(AddEditUserComponent, { backdrop: 'static' }); modalRef.componentInstance.userTitle = this.translateService.instant('PAGE.USERS.NEWUSER'); modalRef.componentInstance.userType = 'add'; @@ -152,7 +227,9 @@ export class UserDetailsComponent implements OnInit, OnDestroy { if (result) { this.sharedService.callData(); } - }).catch(); + }).catch((): void => { + // Catch Navigation Error + }); } /** smart table listing manipulation @private */ @@ -170,10 +247,13 @@ export class UserDetailsComponent implements OnInit, OnDestroy { public setUserDetails(userData: UserDetail): void { const userDataObj: UserData = { username: userData.username, - modified: this.sharedService.convertEpochTime(userData._admin.modified), - created: this.sharedService.convertEpochTime(userData._admin.created), + modified: this.sharedService.convertEpochTime(!isNullOrUndefined(userData._admin) ? userData._admin.modified : null), + created: this.sharedService.convertEpochTime(!isNullOrUndefined(userData._admin) ? userData._admin.created : null), projects: userData.projectListName, - identifier: userData._id + identifier: userData._id, + user_status: userData._admin.user_status, + account_expire_time: this.sharedService.convertEpochTime(!isNullOrUndefined(userData._admin) ? + userData._admin.account_expire_time : null) }; this.userData.push(userDataObj); } @@ -205,7 +285,9 @@ export class UserDetailsComponent implements OnInit, OnDestroy { } this.dataSource.load(this.userData).then((data: {}) => { this.isLoadingResults = false; - }).catch(); + }).catch((): void => { + // Catch Navigation Error + }); }, (error: ERRORDATA) => { this.restService.handleError(error, 'get'); this.isLoadingResults = false;