From 9e5cf66be7ad897e106f283bee73a165c72e74de Mon Sep 17 00:00:00 2001 From: Chocobozzz Date: Fri, 28 Oct 2022 16:15:04 +0200 Subject: Breaking API: Consistency with role id/label --- client/src/app/core/auth/auth-user.model.ts | 6 +++--- client/src/app/core/users/user-local-storage.service.ts | 11 ++++++++--- client/src/app/core/users/user.model.ts | 10 ++++++---- 3 files changed, 17 insertions(+), 10 deletions(-) (limited to 'client/src/app/core') diff --git a/client/src/app/core/auth/auth-user.model.ts b/client/src/app/core/auth/auth-user.model.ts index a12325421..226075265 100644 --- a/client/src/app/core/auth/auth-user.model.ts +++ b/client/src/app/core/auth/auth-user.model.ts @@ -43,16 +43,16 @@ export class AuthUser extends User implements ServerMyUserModel { } hasRight (right: UserRight) { - return hasUserRight(this.role, right) + return hasUserRight(this.role.id, right) } canManage (user: ServerUserModel) { - const myRole = this.role + const myRole = this.role.id if (myRole === UserRole.ADMINISTRATOR) return true // I'm a moderator: I can only manage users - return user.role === UserRole.USER + return user.role.id === UserRole.USER } computeCanSeeVideosLink (quotaObservable: Observable): Observable { diff --git a/client/src/app/core/users/user-local-storage.service.ts b/client/src/app/core/users/user-local-storage.service.ts index f1588bdd2..a047efe8e 100644 --- a/client/src/app/core/users/user-local-storage.service.ts +++ b/client/src/app/core/users/user-local-storage.service.ts @@ -59,7 +59,10 @@ export class UserLocalStorageService { id: parseInt(this.localStorageService.getItem(UserLocalStorageKeys.ID), 10), username: this.localStorageService.getItem(UserLocalStorageKeys.USERNAME), email: this.localStorageService.getItem(UserLocalStorageKeys.EMAIL), - role: parseInt(this.localStorageService.getItem(UserLocalStorageKeys.ROLE), 10) as UserRole, + role: { + id: parseInt(this.localStorageService.getItem(UserLocalStorageKeys.ROLE), 10) as UserRole, + label: '' + }, ...this.getUserInfo() } @@ -69,12 +72,14 @@ export class UserLocalStorageService { id: number username: string email: string - role: UserRole + role: { + id: UserRole + } }) { this.localStorageService.setItem(UserLocalStorageKeys.ID, user.id.toString()) this.localStorageService.setItem(UserLocalStorageKeys.USERNAME, user.username) this.localStorageService.setItem(UserLocalStorageKeys.EMAIL, user.email) - this.localStorageService.setItem(UserLocalStorageKeys.ROLE, user.role.toString()) + this.localStorageService.setItem(UserLocalStorageKeys.ROLE, user.role.id.toString()) } flushLoggedInUser () { diff --git a/client/src/app/core/users/user.model.ts b/client/src/app/core/users/user.model.ts index 8385a4012..5534bca33 100644 --- a/client/src/app/core/users/user.model.ts +++ b/client/src/app/core/users/user.model.ts @@ -34,8 +34,10 @@ export class User implements UserServerModel { videosHistoryEnabled: boolean videoLanguages: string[] - role: UserRole - roleLabel: string + role: { + id: UserRole + label: string + } videoQuota: number videoQuotaDaily: number @@ -123,7 +125,7 @@ export class User implements UserServerModel { } hasRight (right: UserRight) { - return hasUserRight(this.role, right) + return hasUserRight(this.role.id, right) } patch (obj: UserServerModel) { @@ -148,6 +150,6 @@ export class User implements UserServerModel { isAutoBlocked (serverConfig: HTMLServerConfig) { if (serverConfig.autoBlacklist.videos.ofUsers.enabled !== true) return false - return this.role === UserRole.USER && this.adminFlags !== UserAdminFlag.BYPASS_VIDEO_AUTO_BLACKLIST + return this.role.id === UserRole.USER && this.adminFlags !== UserAdminFlag.BYPASS_VIDEO_AUTO_BLACKLIST } } -- cgit v1.2.3