From 9efee04c504f7ff41134b3b15100a88c2073124e Mon Sep 17 00:00:00 2001 From: Thomas <4159106+dtslvr@users.noreply.github.com> Date: Sun, 18 Jul 2021 08:22:39 +0200 Subject: [PATCH] Add feature flag --- apps/api/src/app/info/info.service.ts | 4 ++++ apps/api/src/services/configuration.service.ts | 1 + apps/api/src/services/interfaces/environment.interface.ts | 1 + apps/client/src/app/pages/about/about-page.component.ts | 7 +++++++ apps/client/src/app/pages/about/about-page.html | 2 +- libs/common/src/lib/permissions.ts | 1 + 6 files changed, 15 insertions(+), 1 deletion(-) diff --git a/apps/api/src/app/info/info.service.ts b/apps/api/src/app/info/info.service.ts index b41ea6be4..17a720001 100644 --- a/apps/api/src/app/info/info.service.ts +++ b/apps/api/src/app/info/info.service.ts @@ -28,6 +28,10 @@ export class InfoService { const globalPermissions: string[] = []; + if (this.configurationService.get('ENABLE_FEATURE_BLOG')) { + globalPermissions.push(permissions.enableBlog); + } + if (this.configurationService.get('ENABLE_FEATURE_IMPORT')) { globalPermissions.push(permissions.enableImport); } diff --git a/apps/api/src/services/configuration.service.ts b/apps/api/src/services/configuration.service.ts index 909d5657d..677e97c80 100644 --- a/apps/api/src/services/configuration.service.ts +++ b/apps/api/src/services/configuration.service.ts @@ -15,6 +15,7 @@ export class ConfigurationService { ALPHA_VANTAGE_API_KEY: str({ default: '' }), CACHE_TTL: num({ default: 1 }), DATA_SOURCES: json({ default: JSON.stringify([DataSource.YAHOO]) }), + ENABLE_FEATURE_BLOG: bool({ default: false }), ENABLE_FEATURE_CUSTOM_SYMBOLS: bool({ default: false }), ENABLE_FEATURE_FEAR_AND_GREED_INDEX: bool({ default: false }), ENABLE_FEATURE_IMPORT: bool({ default: !environment.production }), diff --git a/apps/api/src/services/interfaces/environment.interface.ts b/apps/api/src/services/interfaces/environment.interface.ts index c5d075caa..5439093a6 100644 --- a/apps/api/src/services/interfaces/environment.interface.ts +++ b/apps/api/src/services/interfaces/environment.interface.ts @@ -5,6 +5,7 @@ export interface Environment extends CleanedEnvAccessors { ALPHA_VANTAGE_API_KEY: string; CACHE_TTL: number; DATA_SOURCES: string | string[]; // string is not correct, error in envalid? + ENABLE_FEATURE_BLOG: boolean; ENABLE_FEATURE_CUSTOM_SYMBOLS: boolean; ENABLE_FEATURE_FEAR_AND_GREED_INDEX: boolean; ENABLE_FEATURE_IMPORT: boolean; diff --git a/apps/client/src/app/pages/about/about-page.component.ts b/apps/client/src/app/pages/about/about-page.component.ts index 5d8aa52aa..4a7cb6071 100644 --- a/apps/client/src/app/pages/about/about-page.component.ts +++ b/apps/client/src/app/pages/about/about-page.component.ts @@ -17,6 +17,7 @@ import { environment } from '../../../environments/environment'; }) export class AboutPageComponent implements OnDestroy, OnInit { public baseCurrency = baseCurrency; + public hasPermissionForBlog: boolean; public hasPermissionForStatistics: boolean; public hasPermissionForSubscription: boolean; public isLoggedIn: boolean; @@ -41,6 +42,12 @@ export class AboutPageComponent implements OnDestroy, OnInit { */ public ngOnInit() { const { globalPermissions, statistics } = this.dataService.fetchInfo(); + + this.hasPermissionForBlog = hasPermission( + globalPermissions, + permissions.enableBlog + ); + this.hasPermissionForStatistics = hasPermission( globalPermissions, permissions.enableStatistics diff --git a/apps/client/src/app/pages/about/about-page.html b/apps/client/src/app/pages/about/about-page.html index 6c7d991f2..05d97f953 100644 --- a/apps/client/src/app/pages/about/about-page.html +++ b/apps/client/src/app/pages/about/about-page.html @@ -104,7 +104,7 @@ -