From a9bfa85d2cdf13670aaced740da5b493fbeddfce Mon Sep 17 00:00:00 2001 From: Chocobozzz Date: Wed, 15 Dec 2021 15:58:10 +0100 Subject: Add ability for admins to set default p2p policy --- client/src/root-helpers/users/user-tokens.ts | 69 +++++++++++----------------- 1 file changed, 27 insertions(+), 42 deletions(-) (limited to 'client/src/root-helpers/users/user-tokens.ts') diff --git a/client/src/root-helpers/users/user-tokens.ts b/client/src/root-helpers/users/user-tokens.ts index d42e1c8f3..a6d614cb7 100644 --- a/client/src/root-helpers/users/user-tokens.ts +++ b/client/src/root-helpers/users/user-tokens.ts @@ -1,46 +1,11 @@ -import { peertubeLocalStorage } from '../peertube-web-storage' - -export type TokenOptions = { - accessToken: string - refreshToken: string - tokenType: string -} - -// Private class only used by User -export class Tokens { - private static KEYS = { - ACCESS_TOKEN: 'access_token', - REFRESH_TOKEN: 'refresh_token', - TOKEN_TYPE: 'token_type' - } +import { UserTokenLocalStorageKeys } from './user-local-storage-keys' +export class UserTokens { accessToken: string refreshToken: string tokenType: string - static load () { - const accessTokenLocalStorage = peertubeLocalStorage.getItem(this.KEYS.ACCESS_TOKEN) - const refreshTokenLocalStorage = peertubeLocalStorage.getItem(this.KEYS.REFRESH_TOKEN) - const tokenTypeLocalStorage = peertubeLocalStorage.getItem(this.KEYS.TOKEN_TYPE) - - if (accessTokenLocalStorage && refreshTokenLocalStorage && tokenTypeLocalStorage) { - return new Tokens({ - accessToken: accessTokenLocalStorage, - refreshToken: refreshTokenLocalStorage, - tokenType: tokenTypeLocalStorage - }) - } - - return null - } - - static flush () { - peertubeLocalStorage.removeItem(this.KEYS.ACCESS_TOKEN) - peertubeLocalStorage.removeItem(this.KEYS.REFRESH_TOKEN) - peertubeLocalStorage.removeItem(this.KEYS.TOKEN_TYPE) - } - - constructor (hash?: TokenOptions) { + constructor (hash?: Partial) { if (hash) { this.accessToken = hash.accessToken this.refreshToken = hash.refreshToken @@ -53,9 +18,29 @@ export class Tokens { } } - save () { - peertubeLocalStorage.setItem(Tokens.KEYS.ACCESS_TOKEN, this.accessToken) - peertubeLocalStorage.setItem(Tokens.KEYS.REFRESH_TOKEN, this.refreshToken) - peertubeLocalStorage.setItem(Tokens.KEYS.TOKEN_TYPE, this.tokenType) + static getUserTokens (localStorage: Pick) { + const accessTokenLocalStorage = localStorage.getItem(UserTokenLocalStorageKeys.ACCESS_TOKEN) + const refreshTokenLocalStorage = localStorage.getItem(UserTokenLocalStorageKeys.REFRESH_TOKEN) + const tokenTypeLocalStorage = localStorage.getItem(UserTokenLocalStorageKeys.TOKEN_TYPE) + + if (!accessTokenLocalStorage || !refreshTokenLocalStorage || !tokenTypeLocalStorage) return null + + return new UserTokens({ + accessToken: accessTokenLocalStorage, + refreshToken: refreshTokenLocalStorage, + tokenType: tokenTypeLocalStorage + }) + } + + static saveToLocalStorage (localStorage: Pick, tokens: UserTokens) { + localStorage.setItem(UserTokenLocalStorageKeys.ACCESS_TOKEN, tokens.accessToken) + localStorage.setItem(UserTokenLocalStorageKeys.REFRESH_TOKEN, tokens.refreshToken) + localStorage.setItem(UserTokenLocalStorageKeys.TOKEN_TYPE, tokens.tokenType) + } + + static flushLocalStorage (localStorage: Pick) { + localStorage.removeItem(UserTokenLocalStorageKeys.ACCESS_TOKEN) + localStorage.removeItem(UserTokenLocalStorageKeys.REFRESH_TOKEN) + localStorage.removeItem(UserTokenLocalStorageKeys.TOKEN_TYPE) } } -- cgit v1.2.3