From 92fb909c9b4a92a00b0d0da7629e6fb003de281b Mon Sep 17 00:00:00 2001 From: Chocobozzz Date: Tue, 4 Apr 2017 21:37:03 +0200 Subject: Client: Handle NSFW video --- client/src/app/core/auth/auth-user.model.ts | 15 +++++++++--- client/src/app/core/config/config.service.ts | 36 ++++++++++++++++++++++++++++ client/src/app/core/config/index.ts | 1 + client/src/app/core/core.module.ts | 4 +++- client/src/app/core/index.ts | 1 + 5 files changed, 53 insertions(+), 4 deletions(-) create mode 100644 client/src/app/core/config/config.service.ts create mode 100644 client/src/app/core/config/index.ts (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 5d61954d6..cb7e88d19 100644 --- a/client/src/app/core/auth/auth-user.model.ts +++ b/client/src/app/core/auth/auth-user.model.ts @@ -5,7 +5,8 @@ export class AuthUser extends User { private static KEYS = { ID: 'id', ROLE: 'role', - USERNAME: 'username' + USERNAME: 'username', + DISPLAY_NSFW: 'display_nsfw' }; tokens: Tokens; @@ -17,7 +18,8 @@ export class AuthUser extends User { { id: parseInt(localStorage.getItem(this.KEYS.ID)), username: localStorage.getItem(this.KEYS.USERNAME), - role: localStorage.getItem(this.KEYS.ROLE) + role: localStorage.getItem(this.KEYS.ROLE), + displayNSFW: localStorage.getItem(this.KEYS.DISPLAY_NSFW) === 'true' }, Tokens.load() ); @@ -30,10 +32,16 @@ export class AuthUser extends User { localStorage.removeItem(this.KEYS.USERNAME); localStorage.removeItem(this.KEYS.ID); localStorage.removeItem(this.KEYS.ROLE); + localStorage.removeItem(this.KEYS.DISPLAY_NSFW); Tokens.flush(); } - constructor(userHash: { id: number, username: string, role: string }, hashTokens: any) { + constructor(userHash: { + id: number, + username: string, + role: string, + displayNSFW: boolean + }, hashTokens: any) { super(userHash); this.tokens = new Tokens(hashTokens); } @@ -59,6 +67,7 @@ export class AuthUser extends User { 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.DISPLAY_NSFW, JSON.stringify(this.displayNSFW); this.tokens.save(); } } diff --git a/client/src/app/core/config/config.service.ts b/client/src/app/core/config/config.service.ts new file mode 100644 index 000000000..295e68c36 --- /dev/null +++ b/client/src/app/core/config/config.service.ts @@ -0,0 +1,36 @@ +import { Injectable } from '@angular/core'; +import { Http } from '@angular/http'; + +import { RestExtractor } from '../../shared/rest'; + +@Injectable() +export class ConfigService { + private static BASE_CONFIG_URL = '/api/v1/config/'; + + private config: { + signup: { + enabled: boolean + } + } = { + signup: { + enabled: false + } + }; + + constructor( + private http: Http, + private restExtractor: RestExtractor, + ) {} + + loadConfig() { + this.http.get(ConfigService.BASE_CONFIG_URL) + .map(this.restExtractor.extractDataGet) + .subscribe(data => { + this.config = data; + }); + } + + getConfig() { + return this.config; + } +} diff --git a/client/src/app/core/config/index.ts b/client/src/app/core/config/index.ts new file mode 100644 index 000000000..90392254a --- /dev/null +++ b/client/src/app/core/config/index.ts @@ -0,0 +1 @@ +export * from './config.service'; diff --git a/client/src/app/core/core.module.ts b/client/src/app/core/core.module.ts index ae2930552..9a5ee5221 100644 --- a/client/src/app/core/core.module.ts +++ b/client/src/app/core/core.module.ts @@ -7,6 +7,7 @@ import { SimpleNotificationsModule } from 'angular2-notifications'; import { ModalModule } from 'ng2-bootstrap/modal'; import { AuthService } from './auth'; +import { ConfigService } from './config'; import { ConfirmComponent, ConfirmService } from './confirm'; import { MenuComponent, MenuAdminComponent } from './menu'; import { throwIfAlreadyLoaded } from './module-import-guard'; @@ -37,7 +38,8 @@ import { throwIfAlreadyLoaded } from './module-import-guard'; providers: [ AuthService, - ConfirmService + ConfirmService, + ConfigService ] }) export class CoreModule { diff --git a/client/src/app/core/index.ts b/client/src/app/core/index.ts index 9b4dd1999..96b28658b 100644 --- a/client/src/app/core/index.ts +++ b/client/src/app/core/index.ts @@ -1,4 +1,5 @@ export * from './auth'; +export * from './config'; export * from './confirm'; export * from './menu'; export * from './core.module' -- cgit v1.2.3