-// Do not use the barrel (dependency loop)
-import { UserRole } from '../../../../../shared/models/user.model'
-import { User } from '../../shared/users/user.model';
-
-export class AuthUser extends User {
- private static KEYS = {
- ID: 'id',
- ROLE: 'role',
- EMAIL: 'email',
- USERNAME: 'username',
- DISPLAY_NSFW: 'display_nsfw'
- };
-
- tokens: Tokens;
-
- static load() {
- const usernameLocalStorage = localStorage.getItem(this.KEYS.USERNAME);
- if (usernameLocalStorage) {
- return new AuthUser(
- {
- id: parseInt(localStorage.getItem(this.KEYS.ID)),
- username: localStorage.getItem(this.KEYS.USERNAME),
- email: localStorage.getItem(this.KEYS.EMAIL),
- role: localStorage.getItem(this.KEYS.ROLE) as UserRole,
- displayNSFW: localStorage.getItem(this.KEYS.DISPLAY_NSFW) === 'true'
- },
- Tokens.load()
- );
- }
-
- return null;
+import { Observable, of } from 'rxjs'
+import { map } from 'rxjs/operators'
+import { User } from '@app/core/users/user.model'
+import { OAuthUserTokens } from '@root-helpers/users'
+import { hasUserRight } from '@shared/core-utils/users'
+import {
+ MyUser as ServerMyUserModel,
+ MyUserSpecialPlaylist,
+ User as ServerUserModel,
+ UserRight,
+ UserRole,
+ UserVideoQuota
+} from '@shared/models'
+
+export class AuthUser extends User implements ServerMyUserModel {
+ oauthTokens: OAuthUserTokens
+ specialPlaylists: MyUserSpecialPlaylist[]
+
+ canSeeVideosLink = true
+
+ constructor (userHash: Partial<ServerMyUserModel>, hashTokens: Partial<OAuthUserTokens>) {
+ super(userHash)
+
+ this.oauthTokens = new OAuthUserTokens(hashTokens)
+ this.specialPlaylists = userHash.specialPlaylists