diff options
Diffstat (limited to 'catalog-ui/src/app/models/user.ts')
-rw-r--r-- | catalog-ui/src/app/models/user.ts | 96 |
1 files changed, 96 insertions, 0 deletions
diff --git a/catalog-ui/src/app/models/user.ts b/catalog-ui/src/app/models/user.ts new file mode 100644 index 0000000000..8ef800acb7 --- /dev/null +++ b/catalog-ui/src/app/models/user.ts @@ -0,0 +1,96 @@ +'use strict'; +import {IUserResource} from "../services/user-resource-service"; + +export enum UserRole { + ADMIN, + DESIGNER, + TESTER, + GOVERNOR, + OPS, + PRODUCT_MANAGER, + PRODUCT_STRATEGIST +} + +export interface IUserManager { + isInEditMode:boolean; + filterTerm:string; +} + +export interface IUserProperties extends IUserManager { + firstName:string; + lastName:string; + userId:string; + email:string; + role:string; + tempRole:string; + lastLoginTime:string; + status:string; +} + +export interface IUser { + resource:IUserResource; + getRole():UserRole; + getRoleToView():string; + getName():string; + getFirstName():string; + getLastName():string; +} + +export class User implements IUser { + + constructor(public resource:IUserResource) { + } + + public getLastName = () => { + return this.resource.lastName; + } + + public getFirstName = () => { + return this.resource.firstName; + } + + public getName = () => { + return this.resource.firstName + ' ' + this.resource.lastName; + } + + public getLastLogin = () => { + if (!this.resource.lastLoginTime || this.resource.lastLoginTime === "0") { + return ""; + } else { + return this.resource.lastLoginTime; + } + } + + public getRole = ():UserRole => { + let role:UserRole; + switch (UserRole[this.resource.role.toUpperCase()]) { + case UserRole.ADMIN: + role = UserRole.ADMIN; + break; + case UserRole.DESIGNER: + role = UserRole.DESIGNER; + break; + case UserRole.TESTER: + role = UserRole.TESTER; + break; + case UserRole.GOVERNOR: + role = UserRole.GOVERNOR; + break; + case UserRole.OPS: + role = UserRole.OPS; + break; + case UserRole.PRODUCT_MANAGER: + role = UserRole.PRODUCT_MANAGER; + break; + case UserRole.PRODUCT_STRATEGIST: + role = UserRole.PRODUCT_STRATEGIST; + break; + } + return role; + } + + public getRoleToView = ():string => { + let role:string = this.resource.role.toLowerCase().replace('governor', 'governance_Rep'); + return role.charAt(0).toUpperCase() + role.slice(1).replace('_', ' '); + } +} |