| '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('_', ' '); |
| } |
| } |