X-Git-Url: https://osm.etsi.org/gitweb/?a=blobdiff_plain;f=src%2Fapp%2Fusers%2Fuser-details%2FUserDetailsComponent.ts;h=51047ba6349ec1a43062309d14b85e4f395c8fbc;hb=1b17c432991a95035a1732426f0c11db57e511c9;hp=ba244541feb2e6c9a7ec80806463bdc94a9fffbc;hpb=50e53afdfc376c2055284bda4be1664acfe4fcee;p=osm%2FNG-UI.git diff --git a/src/app/users/user-details/UserDetailsComponent.ts b/src/app/users/user-details/UserDetailsComponent.ts index ba24454..51047ba 100644 --- a/src/app/users/user-details/UserDetailsComponent.ts +++ b/src/app/users/user-details/UserDetailsComponent.ts @@ -15,6 +15,7 @@ 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. */ @@ -23,7 +24,7 @@ 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'; @@ -65,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; @@ -109,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, @@ -144,6 +201,22 @@ 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 @@ -177,7 +250,10 @@ export class UserDetailsComponent implements OnInit, OnDestroy { 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); }