aboutsummaryrefslogtreecommitdiffhomepage
path: root/client/src/app/core
diff options
context:
space:
mode:
authorChocobozzz <me@florianbigard.com>2018-03-23 14:26:20 +0100
committerChocobozzz <me@florianbigard.com>2018-03-23 14:26:20 +0100
commit0bd78bf30b2ae159791bdc90d17ed18e0327f621 (patch)
treee8f69cef499a99c51deeea39f7197b7ff93a80a2 /client/src/app/core
parent9c673970f66fe91c665e1e3905fa768f57e11a18 (diff)
downloadPeerTube-0bd78bf30b2ae159791bdc90d17ed18e0327f621.tar.gz
PeerTube-0bd78bf30b2ae159791bdc90d17ed18e0327f621.tar.zst
PeerTube-0bd78bf30b2ae159791bdc90d17ed18e0327f621.zip
Proxify local storage and handle if it is unavailable
Diffstat (limited to 'client/src/app/core')
-rw-r--r--client/src/app/core/auth/auth-user.model.ts59
-rw-r--r--client/src/app/core/server/server.service.ts5
2 files changed, 33 insertions, 31 deletions
diff --git a/client/src/app/core/auth/auth-user.model.ts b/client/src/app/core/auth/auth-user.model.ts
index 9ad275392..366eea110 100644
--- a/client/src/app/core/auth/auth-user.model.ts
+++ b/client/src/app/core/auth/auth-user.model.ts
@@ -1,7 +1,8 @@
1import { peertubeLocalStorage } from '@app/shared/misc/peertube-local-storage'
2import { UserRight } from '../../../../../shared/models/users/user-right.enum'
1// Do not use the barrel (dependency loop) 3// Do not use the barrel (dependency loop)
2import { hasUserRight, UserRole } from '../../../../../shared/models/users/user-role' 4import { hasUserRight, UserRole } from '../../../../../shared/models/users/user-role'
3import { User, UserConstructorHash } from '../../shared/users/user.model' 5import { User, UserConstructorHash } from '../../shared/users/user.model'
4import { UserRight } from '../../../../../shared/models/users/user-right.enum'
5 6
6export type TokenOptions = { 7export type TokenOptions = {
7 accessToken: string 8 accessToken: string
@@ -22,9 +23,9 @@ class Tokens {
22 tokenType: string 23 tokenType: string
23 24
24 static load () { 25 static load () {
25 const accessTokenLocalStorage = localStorage.getItem(this.KEYS.ACCESS_TOKEN) 26 const accessTokenLocalStorage = peertubeLocalStorage.getItem(this.KEYS.ACCESS_TOKEN)
26 const refreshTokenLocalStorage = localStorage.getItem(this.KEYS.REFRESH_TOKEN) 27 const refreshTokenLocalStorage = peertubeLocalStorage.getItem(this.KEYS.REFRESH_TOKEN)
27 const tokenTypeLocalStorage = localStorage.getItem(this.KEYS.TOKEN_TYPE) 28 const tokenTypeLocalStorage = peertubeLocalStorage.getItem(this.KEYS.TOKEN_TYPE)
28 29
29 if (accessTokenLocalStorage && refreshTokenLocalStorage && tokenTypeLocalStorage) { 30 if (accessTokenLocalStorage && refreshTokenLocalStorage && tokenTypeLocalStorage) {
30 return new Tokens({ 31 return new Tokens({
@@ -38,9 +39,9 @@ class Tokens {
38 } 39 }
39 40
40 static flush () { 41 static flush () {
41 localStorage.removeItem(this.KEYS.ACCESS_TOKEN) 42 peertubeLocalStorage.removeItem(this.KEYS.ACCESS_TOKEN)
42 localStorage.removeItem(this.KEYS.REFRESH_TOKEN) 43 peertubeLocalStorage.removeItem(this.KEYS.REFRESH_TOKEN)
43 localStorage.removeItem(this.KEYS.TOKEN_TYPE) 44 peertubeLocalStorage.removeItem(this.KEYS.TOKEN_TYPE)
44 } 45 }
45 46
46 constructor (hash?: TokenOptions) { 47 constructor (hash?: TokenOptions) {
@@ -57,9 +58,9 @@ class Tokens {
57 } 58 }
58 59
59 save () { 60 save () {
60 localStorage.setItem(Tokens.KEYS.ACCESS_TOKEN, this.accessToken) 61 peertubeLocalStorage.setItem(Tokens.KEYS.ACCESS_TOKEN, this.accessToken)
61 localStorage.setItem(Tokens.KEYS.REFRESH_TOKEN, this.refreshToken) 62 peertubeLocalStorage.setItem(Tokens.KEYS.REFRESH_TOKEN, this.refreshToken)
62 localStorage.setItem(Tokens.KEYS.TOKEN_TYPE, this.tokenType) 63 peertubeLocalStorage.setItem(Tokens.KEYS.TOKEN_TYPE, this.tokenType)
63 } 64 }
64} 65}
65 66
@@ -76,16 +77,16 @@ export class AuthUser extends User {
76 tokens: Tokens 77 tokens: Tokens
77 78
78 static load () { 79 static load () {
79 const usernameLocalStorage = localStorage.getItem(this.KEYS.USERNAME) 80 const usernameLocalStorage = peertubeLocalStorage.getItem(this.KEYS.USERNAME)
80 if (usernameLocalStorage) { 81 if (usernameLocalStorage) {
81 return new AuthUser( 82 return new AuthUser(
82 { 83 {
83 id: parseInt(localStorage.getItem(this.KEYS.ID), 10), 84 id: parseInt(peertubeLocalStorage.getItem(this.KEYS.ID), 10),
84 username: localStorage.getItem(this.KEYS.USERNAME), 85 username: peertubeLocalStorage.getItem(this.KEYS.USERNAME),
85 email: localStorage.getItem(this.KEYS.EMAIL), 86 email: peertubeLocalStorage.getItem(this.KEYS.EMAIL),
86 role: parseInt(localStorage.getItem(this.KEYS.ROLE), 10) as UserRole, 87 role: parseInt(peertubeLocalStorage.getItem(this.KEYS.ROLE), 10) as UserRole,
87 displayNSFW: localStorage.getItem(this.KEYS.DISPLAY_NSFW) === 'true', 88 displayNSFW: peertubeLocalStorage.getItem(this.KEYS.DISPLAY_NSFW) === 'true',
88 autoPlayVideo: localStorage.getItem(this.KEYS.AUTO_PLAY_VIDEO) === 'true' 89 autoPlayVideo: peertubeLocalStorage.getItem(this.KEYS.AUTO_PLAY_VIDEO) === 'true'
89 }, 90 },
90 Tokens.load() 91 Tokens.load()
91 ) 92 )
@@ -95,12 +96,12 @@ export class AuthUser extends User {
95 } 96 }
96 97
97 static flush () { 98 static flush () {
98 localStorage.removeItem(this.KEYS.USERNAME) 99 peertubeLocalStorage.removeItem(this.KEYS.USERNAME)
99 localStorage.removeItem(this.KEYS.ID) 100 peertubeLocalStorage.removeItem(this.KEYS.ID)
100 localStorage.removeItem(this.KEYS.ROLE) 101 peertubeLocalStorage.removeItem(this.KEYS.ROLE)
101 localStorage.removeItem(this.KEYS.DISPLAY_NSFW) 102 peertubeLocalStorage.removeItem(this.KEYS.DISPLAY_NSFW)
102 localStorage.removeItem(this.KEYS.AUTO_PLAY_VIDEO) 103 peertubeLocalStorage.removeItem(this.KEYS.AUTO_PLAY_VIDEO)
103 localStorage.removeItem(this.KEYS.EMAIL) 104 peertubeLocalStorage.removeItem(this.KEYS.EMAIL)
104 Tokens.flush() 105 Tokens.flush()
105 } 106 }
106 107
@@ -131,12 +132,12 @@ export class AuthUser extends User {
131 } 132 }
132 133
133 save () { 134 save () {
134 localStorage.setItem(AuthUser.KEYS.ID, this.id.toString()) 135 peertubeLocalStorage.setItem(AuthUser.KEYS.ID, this.id.toString())
135 localStorage.setItem(AuthUser.KEYS.USERNAME, this.username) 136 peertubeLocalStorage.setItem(AuthUser.KEYS.USERNAME, this.username)
136 localStorage.setItem(AuthUser.KEYS.EMAIL, this.email) 137 peertubeLocalStorage.setItem(AuthUser.KEYS.EMAIL, this.email)
137 localStorage.setItem(AuthUser.KEYS.ROLE, this.role.toString()) 138 peertubeLocalStorage.setItem(AuthUser.KEYS.ROLE, this.role.toString())
138 localStorage.setItem(AuthUser.KEYS.DISPLAY_NSFW, JSON.stringify(this.displayNSFW)) 139 peertubeLocalStorage.setItem(AuthUser.KEYS.DISPLAY_NSFW, JSON.stringify(this.displayNSFW))
139 localStorage.setItem(AuthUser.KEYS.AUTO_PLAY_VIDEO, JSON.stringify(this.autoPlayVideo)) 140 peertubeLocalStorage.setItem(AuthUser.KEYS.AUTO_PLAY_VIDEO, JSON.stringify(this.autoPlayVideo))
140 this.tokens.save() 141 this.tokens.save()
141 } 142 }
142} 143}
diff --git a/client/src/app/core/server/server.service.ts b/client/src/app/core/server/server.service.ts
index 0b63ef5be..206ec7bcd 100644
--- a/client/src/app/core/server/server.service.ts
+++ b/client/src/app/core/server/server.service.ts
@@ -1,5 +1,6 @@
1import { HttpClient } from '@angular/common/http' 1import { HttpClient } from '@angular/common/http'
2import { Injectable } from '@angular/core' 2import { Injectable } from '@angular/core'
3import { peertubeLocalStorage } from '@app/shared/misc/peertube-local-storage'
3import 'rxjs/add/operator/do' 4import 'rxjs/add/operator/do'
4import { ReplaySubject } from 'rxjs/ReplaySubject' 5import { ReplaySubject } from 'rxjs/ReplaySubject'
5import { ServerConfig } from '../../../../../shared' 6import { ServerConfig } from '../../../../../shared'
@@ -140,11 +141,11 @@ export class ServerService {
140 } 141 }
141 142
142 private saveConfigLocally (config: ServerConfig) { 143 private saveConfigLocally (config: ServerConfig) {
143 localStorage.setItem(ServerService.CONFIG_LOCAL_STORAGE_KEY, JSON.stringify(config)) 144 peertubeLocalStorage.setItem(ServerService.CONFIG_LOCAL_STORAGE_KEY, JSON.stringify(config))
144 } 145 }
145 146
146 private loadConfigLocally () { 147 private loadConfigLocally () {
147 const configString = localStorage.getItem(ServerService.CONFIG_LOCAL_STORAGE_KEY) 148 const configString = peertubeLocalStorage.getItem(ServerService.CONFIG_LOCAL_STORAGE_KEY)
148 149
149 if (configString) { 150 if (configString) {
150 try { 151 try {