aboutsummaryrefslogtreecommitdiffhomepage
path: root/client/src/app/core/auth/auth-user.model.ts
diff options
context:
space:
mode:
authorChocobozzz <florian.bigard@gmail.com>2017-10-27 16:55:03 +0200
committerChocobozzz <florian.bigard@gmail.com>2017-10-27 16:55:03 +0200
commit954605a804da399317ca62afa2fb9244afa11ebf (patch)
treede6ee69280bfb928bc01c29430e13d5b820e921a /client/src/app/core/auth/auth-user.model.ts
parente02573ad67626210ed279bad321ee139094921a1 (diff)
downloadPeerTube-954605a804da399317ca62afa2fb9244afa11ebf.tar.gz
PeerTube-954605a804da399317ca62afa2fb9244afa11ebf.tar.zst
PeerTube-954605a804da399317ca62afa2fb9244afa11ebf.zip
Support roles with rights and add moderator role
Diffstat (limited to 'client/src/app/core/auth/auth-user.model.ts')
-rw-r--r--client/src/app/core/auth/auth-user.model.ts11
1 files changed, 8 insertions, 3 deletions
diff --git a/client/src/app/core/auth/auth-user.model.ts b/client/src/app/core/auth/auth-user.model.ts
index 81bff99a0..085b763ec 100644
--- a/client/src/app/core/auth/auth-user.model.ts
+++ b/client/src/app/core/auth/auth-user.model.ts
@@ -1,6 +1,7 @@
1// Do not use the barrel (dependency loop) 1// Do not use the barrel (dependency loop)
2import { UserRole } from '../../../../../shared/models/users/user-role.type' 2import { hasUserRight, UserRole } from '../../../../../shared/models/users/user-role'
3import { User, UserConstructorHash } from '../../shared/users/user.model' 3import { User, UserConstructorHash } from '../../shared/users/user.model'
4import { UserRight } from '../../../../../shared/models/users/user-right.enum'
4 5
5export type TokenOptions = { 6export type TokenOptions = {
6 accessToken: string 7 accessToken: string
@@ -81,7 +82,7 @@ export class AuthUser extends User {
81 id: parseInt(localStorage.getItem(this.KEYS.ID), 10), 82 id: parseInt(localStorage.getItem(this.KEYS.ID), 10),
82 username: localStorage.getItem(this.KEYS.USERNAME), 83 username: localStorage.getItem(this.KEYS.USERNAME),
83 email: localStorage.getItem(this.KEYS.EMAIL), 84 email: localStorage.getItem(this.KEYS.EMAIL),
84 role: localStorage.getItem(this.KEYS.ROLE) as UserRole, 85 role: parseInt(localStorage.getItem(this.KEYS.ROLE), 10) as UserRole,
85 displayNSFW: localStorage.getItem(this.KEYS.DISPLAY_NSFW) === 'true' 86 displayNSFW: localStorage.getItem(this.KEYS.DISPLAY_NSFW) === 'true'
86 }, 87 },
87 Tokens.load() 88 Tokens.load()
@@ -122,11 +123,15 @@ export class AuthUser extends User {
122 this.tokens.refreshToken = refreshToken 123 this.tokens.refreshToken = refreshToken
123 } 124 }
124 125
126 hasRight(right: UserRight) {
127 return hasUserRight(this.role, right)
128 }
129
125 save () { 130 save () {
126 localStorage.setItem(AuthUser.KEYS.ID, this.id.toString()) 131 localStorage.setItem(AuthUser.KEYS.ID, this.id.toString())
127 localStorage.setItem(AuthUser.KEYS.USERNAME, this.username) 132 localStorage.setItem(AuthUser.KEYS.USERNAME, this.username)
128 localStorage.setItem(AuthUser.KEYS.EMAIL, this.email) 133 localStorage.setItem(AuthUser.KEYS.EMAIL, this.email)
129 localStorage.setItem(AuthUser.KEYS.ROLE, this.role) 134 localStorage.setItem(AuthUser.KEYS.ROLE, this.role.toString())
130 localStorage.setItem(AuthUser.KEYS.DISPLAY_NSFW, JSON.stringify(this.displayNSFW)) 135 localStorage.setItem(AuthUser.KEYS.DISPLAY_NSFW, JSON.stringify(this.displayNSFW))
131 this.tokens.save() 136 this.tokens.save()
132 } 137 }