-
-
Notifications
You must be signed in to change notification settings - Fork 2.8k
Expand file tree
/
Copy pathuser.model.ts
More file actions
61 lines (51 loc) · 980 Bytes
/
user.model.ts
File metadata and controls
61 lines (51 loc) · 980 Bytes
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
export type Role = 'MANAGER' | 'WRITER' | 'READER' | 'CLIENT';
export interface User {
name: string;
isAdmin: boolean;
roles: Role[];
}
export const admin: User = {
name: 'admin',
isAdmin: true,
roles: [],
};
export const manager: User = {
name: 'manager',
isAdmin: false,
roles: ['MANAGER'],
};
export const writer: User = {
name: 'writer',
isAdmin: false,
roles: ['WRITER'],
};
export const reader: User = {
name: 'reader',
isAdmin: false,
roles: ['READER'],
};
export const readerAndWriter: User = {
name: 'reader and writer',
isAdmin: false,
roles: ['READER', 'WRITER'],
};
export const client: User = {
name: 'client',
isAdmin: false,
roles: ['CLIENT'],
};
export const everyone: User = {
name: 'everyone',
isAdmin: false,
roles: [],
};
export const USERS_MAP: Record<string, User> = {
admin,
manager,
reader,
writer,
readerAndWriter,
client,
everyone,
};
export type UserType = keyof typeof USERS_MAP;