X-Git-Url: https://git.immae.eu/?a=blobdiff_plain;f=client%2Fsrc%2Fapp%2Fcore%2Fauth%2Fauth-user.model.ts;h=7b6c8816fdd3d75675a98f0a4a47987ef27bd3b4;hb=fada8d75550dc7365f7e18ee1569b9406251d660;hp=9cb2019072df8fdf68b00847a354641585685f80;hpb=4771e0008dd26eadbb7eaff64255a6ec914fdadb;p=github%2FChocobozzz%2FPeerTube.git diff --git a/client/src/app/core/auth/auth-user.model.ts b/client/src/app/core/auth/auth-user.model.ts index 9cb201907..7b6c8816f 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 @@ // Do not use the barrel (dependency loop) -import { UserRole } from '../../../../../shared/models/users/user-role.type' -import { User } from '../../shared/users/user.model' +import { hasUserRight, UserRole } from '../../../../../shared/models/users/user-role' +import { User, UserConstructorHash } from '../../shared/users/user.model' +import { UserRight } from '../../../../../shared/models/users/user-right.enum' export type TokenOptions = { accessToken: string @@ -81,7 +82,7 @@ export class AuthUser extends User { id: parseInt(localStorage.getItem(this.KEYS.ID), 10), username: localStorage.getItem(this.KEYS.USERNAME), email: localStorage.getItem(this.KEYS.EMAIL), - role: localStorage.getItem(this.KEYS.ROLE) as UserRole, + role: parseInt(localStorage.getItem(this.KEYS.ROLE), 10) as UserRole, displayNSFW: localStorage.getItem(this.KEYS.DISPLAY_NSFW) === 'true' }, Tokens.load() @@ -96,16 +97,11 @@ export class AuthUser extends User { localStorage.removeItem(this.KEYS.ID) localStorage.removeItem(this.KEYS.ROLE) localStorage.removeItem(this.KEYS.DISPLAY_NSFW) + localStorage.removeItem(this.KEYS.EMAIL) Tokens.flush() } - constructor (userHash: { - id: number, - username: string, - role: UserRole, - email: string, - displayNSFW: boolean - }, hashTokens: TokenOptions) { + constructor (userHash: UserConstructorHash, hashTokens: TokenOptions) { super(userHash) this.tokens = new Tokens(hashTokens) } @@ -127,10 +123,15 @@ export class AuthUser extends User { this.tokens.refreshToken = refreshToken } + hasRight (right: UserRight) { + return hasUserRight(this.role, right) + } + save () { localStorage.setItem(AuthUser.KEYS.ID, this.id.toString()) localStorage.setItem(AuthUser.KEYS.USERNAME, this.username) - localStorage.setItem(AuthUser.KEYS.ROLE, this.role) + localStorage.setItem(AuthUser.KEYS.EMAIL, this.email) + localStorage.setItem(AuthUser.KEYS.ROLE, this.role.toString()) localStorage.setItem(AuthUser.KEYS.DISPLAY_NSFW, JSON.stringify(this.displayNSFW)) this.tokens.save() }