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') {