X-Git-Url: https://osm.etsi.org/gitweb/?a=blobdiff_plain;f=src%2Fapp%2Fusers%2Fuser-details%2FUserDetailsComponent.ts;h=12c37feb44fa759970c598b5ffacc05233f95120;hb=refs%2Ftags%2Frelease-v14.0-start;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..12c37fe 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 = sessionStorage.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;