From 9f6cfe4edb4ac20346292e28ebcb96b484b6be49 Mon Sep 17 00:00:00 2001 From: Randall Morey Date: Thu, 12 Aug 2021 16:24:16 -0400 Subject: [PATCH] =?UTF-8?q?chore:=20=F0=9F=A4=96=20abilities=20should=20ch?= =?UTF-8?q?eck=20the=20capabilities=20feature=20flag?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ui/admin/app/abilities/model.js | 19 +++++++++++++++++++ ui/admin/config/environment.js | 4 ++-- ui/desktop/app/abilities/model.js | 19 +++++++++++++++++++ ui/desktop/config/environment.js | 5 ++++- 4 files changed, 44 insertions(+), 3 deletions(-) create mode 100644 ui/admin/app/abilities/model.js create mode 100644 ui/desktop/app/abilities/model.js diff --git a/ui/admin/app/abilities/model.js b/ui/admin/app/abilities/model.js new file mode 100644 index 000000000..0081f7d57 --- /dev/null +++ b/ui/admin/app/abilities/model.js @@ -0,0 +1,19 @@ +import ModelAbility from 'api/abilities/model'; +import { inject as service } from '@ember/service'; + +export default class OverrideModelAbility extends ModelAbility { + // =services + + @service features; + + // =methods + + /** + * If the capabilities feature flag is disabled, actions are always + * authorized. This mimics pre-capabilities behavior. + */ + hasAuthorizedAction() { + if (!this.features.isEnabled('capabilities')) return true; + return super.hasAuthorizedAction(...arguments); + } +} diff --git a/ui/admin/config/environment.js b/ui/admin/config/environment.js index d20097dff..5e363c78a 100644 --- a/ui/admin/config/environment.js +++ b/ui/admin/config/environment.js @@ -131,7 +131,7 @@ module.exports = function (environment) { if (API_HOST) ENV.contentSecurityPolicy['connect-src'].push(API_HOST); // Enable features in development - // ENV.featureFlags['credential-store'] = true; + ENV.featureFlags['capabilities'] = true; } if (environment === 'test') { @@ -156,7 +156,7 @@ module.exports = function (environment) { ENV.enableConfirmService = false; // Enable tests for development features - // ENV.featureFlags['credential-store'] = true; + ENV.featureFlags['capabilities'] = true; } if (environment === 'production') { diff --git a/ui/desktop/app/abilities/model.js b/ui/desktop/app/abilities/model.js new file mode 100644 index 000000000..0081f7d57 --- /dev/null +++ b/ui/desktop/app/abilities/model.js @@ -0,0 +1,19 @@ +import ModelAbility from 'api/abilities/model'; +import { inject as service } from '@ember/service'; + +export default class OverrideModelAbility extends ModelAbility { + // =services + + @service features; + + // =methods + + /** + * If the capabilities feature flag is disabled, actions are always + * authorized. This mimics pre-capabilities behavior. + */ + hasAuthorizedAction() { + if (!this.features.isEnabled('capabilities')) return true; + return super.hasAuthorizedAction(...arguments); + } +} diff --git a/ui/desktop/config/environment.js b/ui/desktop/config/environment.js index 3895fea79..986e50b0a 100644 --- a/ui/desktop/config/environment.js +++ b/ui/desktop/config/environment.js @@ -80,7 +80,7 @@ module.exports = function (environment) { ENV.autoOrigin = true; // Enable features in development - ENV.featureFlags['oidc'] = true; + ENV.featureFlags['capabilities'] = true; } if (environment === 'test') { @@ -103,6 +103,9 @@ module.exports = function (environment) { ENV.storage = { memory: true, }; + + // Enable tests for development features + ENV.featureFlags['capabilities'] = true; } if (environment === 'production') {