diff options
Diffstat (limited to 'client/src/app/shared/auth/user.model.ts')
-rw-r--r-- | client/src/app/shared/auth/user.model.ts | 23 |
1 files changed, 19 insertions, 4 deletions
diff --git a/client/src/app/shared/auth/user.model.ts b/client/src/app/shared/auth/user.model.ts index 98852f835..e486873ab 100644 --- a/client/src/app/shared/auth/user.model.ts +++ b/client/src/app/shared/auth/user.model.ts | |||
@@ -1,15 +1,24 @@ | |||
1 | export class User { | 1 | export class User { |
2 | private static KEYS = { | 2 | private static KEYS = { |
3 | ID: 'id', | ||
4 | ROLE: 'role', | ||
3 | USERNAME: 'username' | 5 | USERNAME: 'username' |
4 | }; | 6 | }; |
5 | 7 | ||
8 | id: string; | ||
9 | role: string; | ||
6 | username: string; | 10 | username: string; |
7 | tokens: Tokens; | 11 | tokens: Tokens; |
8 | 12 | ||
9 | static load() { | 13 | static load() { |
10 | const usernameLocalStorage = localStorage.getItem(this.KEYS.USERNAME); | 14 | const usernameLocalStorage = localStorage.getItem(this.KEYS.USERNAME); |
11 | if (usernameLocalStorage) { | 15 | if (usernameLocalStorage) { |
12 | return new User(localStorage.getItem(this.KEYS.USERNAME), Tokens.load()); | 16 | return new User( |
17 | localStorage.getItem(this.KEYS.ID), | ||
18 | localStorage.getItem(this.KEYS.USERNAME), | ||
19 | localStorage.getItem(this.KEYS.ROLE), | ||
20 | Tokens.load() | ||
21 | ); | ||
13 | } | 22 | } |
14 | 23 | ||
15 | return null; | 24 | return null; |
@@ -17,11 +26,15 @@ export class User { | |||
17 | 26 | ||
18 | static flush() { | 27 | static flush() { |
19 | localStorage.removeItem(this.KEYS.USERNAME); | 28 | localStorage.removeItem(this.KEYS.USERNAME); |
29 | localStorage.removeItem(this.KEYS.ID); | ||
30 | localStorage.removeItem(this.KEYS.ROLE); | ||
20 | Tokens.flush(); | 31 | Tokens.flush(); |
21 | } | 32 | } |
22 | 33 | ||
23 | constructor(username: string, hash_tokens: any) { | 34 | constructor(id: string, username: string, role: string, hash_tokens: any) { |
35 | this.id = id; | ||
24 | this.username = username; | 36 | this.username = username; |
37 | this.role = role; | ||
25 | this.tokens = new Tokens(hash_tokens); | 38 | this.tokens = new Tokens(hash_tokens); |
26 | } | 39 | } |
27 | 40 | ||
@@ -43,12 +56,14 @@ export class User { | |||
43 | } | 56 | } |
44 | 57 | ||
45 | save() { | 58 | save() { |
46 | localStorage.setItem('username', this.username); | 59 | localStorage.setItem(User.KEYS.ID, this.id); |
60 | localStorage.setItem(User.KEYS.USERNAME, this.username); | ||
61 | localStorage.setItem(User.KEYS.ROLE, this.role); | ||
47 | this.tokens.save(); | 62 | this.tokens.save(); |
48 | } | 63 | } |
49 | } | 64 | } |
50 | 65 | ||
51 | // Private class used only by User | 66 | // Private class only used by User |
52 | class Tokens { | 67 | class Tokens { |
53 | private static KEYS = { | 68 | private static KEYS = { |
54 | ACCESS_TOKEN: 'access_token', | 69 | ACCESS_TOKEN: 'access_token', |