From a7a6bdedf9b1b53ffbb334f23d003525af6952d6 Mon Sep 17 00:00:00 2001 From: Susmitha Girumala Date: Wed, 2 Jun 2021 22:22:02 -0400 Subject: [PATCH] refactor: API: Add AuthMethodOIDC class to hold static states --- addons/api/addon/classes/auth-method.js | 15 +++++++++++++ addons/api/addon/models/auth-method.js | 2 -- addons/api/app/classes/auth-method.js | 1 + .../tests/unit/classes/auth-method-test.js | 22 +++++++++++++++++++ addons/core/translations/resources/en-us.yaml | 2 +- .../scopes/scope/auth-methods/auth-method.js | 9 ++++++++ .../scopes/scope/auth-methods/auth-method.js | 2 +- .../auth-methods/auth-method/-actions.hbs | 6 ++--- 8 files changed, 52 insertions(+), 7 deletions(-) create mode 100644 addons/api/addon/classes/auth-method.js create mode 100644 addons/api/app/classes/auth-method.js create mode 100644 addons/api/tests/unit/classes/auth-method-test.js diff --git a/addons/api/addon/classes/auth-method.js b/addons/api/addon/classes/auth-method.js new file mode 100644 index 000000000..799afb353 --- /dev/null +++ b/addons/api/addon/classes/auth-method.js @@ -0,0 +1,15 @@ +/** + * Empty auth method definition + */ +export class AuthMethod {} + +/** + * Simple OIDC auth method definition to contain possible oidc states. + * @property states {[string]} states + */ +export class AuthMethodOIDC extends AuthMethod { + /** + * Possible auth-method statuses + */ + static states = ['inactive', 'active-private', 'active-public']; +} diff --git a/addons/api/addon/models/auth-method.js b/addons/api/addon/models/auth-method.js index 1b2cf8182..09b801e0a 100644 --- a/addons/api/addon/models/auth-method.js +++ b/addons/api/addon/models/auth-method.js @@ -28,8 +28,6 @@ export const options = { }; export default class AuthMethodModel extends GeneratedAuthMethodModel { - STATES_ENUM = options.oidc.state; - // =error attributes // These attributes exist solely to capture errors on nested fields. // See the application adapter's error normalization method for diff --git a/addons/api/app/classes/auth-method.js b/addons/api/app/classes/auth-method.js new file mode 100644 index 000000000..5cdd5e1b1 --- /dev/null +++ b/addons/api/app/classes/auth-method.js @@ -0,0 +1 @@ +export { default } from 'api/classes/auth-method'; diff --git a/addons/api/tests/unit/classes/auth-method-test.js b/addons/api/tests/unit/classes/auth-method-test.js new file mode 100644 index 000000000..d2fb5d8c6 --- /dev/null +++ b/addons/api/tests/unit/classes/auth-method-test.js @@ -0,0 +1,22 @@ +import { module, test } from 'qunit'; +import { setupTest } from 'ember-qunit'; +import setupMirage from 'ember-cli-mirage/test-support/setup-mirage'; +import { AuthMethod, AuthMethodOIDC } from 'api/classes/auth-method'; + +module('Unit | Class | auth method', function (hooks) { + setupTest(hooks); + setupMirage(hooks); + + test('it exists', function (assert) { + assert.ok(AuthMethod); + assert.ok(AuthMethodOIDC); + }); + + test('oidc auth method lists states', function (assert) { + assert.deepEqual(AuthMethodOIDC.states, [ + 'inactive', + 'active-private', + 'active-public', + ]); + }); +}); diff --git a/addons/core/translations/resources/en-us.yaml b/addons/core/translations/resources/en-us.yaml index 0cab323c1..0c0eedb57 100644 --- a/addons/core/translations/resources/en-us.yaml +++ b/addons/core/translations/resources/en-us.yaml @@ -45,7 +45,7 @@ auth-method: delete: Delete Auth Method make-primary: Make Primary remove-as-primary: Remove as Primary - change-state: State + status: Status notifications: make-primary-success: Auth method successfully elected to primary. remove-as-primary-success: Auth method successfully removed as primary. diff --git a/ui/admin/app/controllers/scopes/scope/auth-methods/auth-method.js b/ui/admin/app/controllers/scopes/scope/auth-methods/auth-method.js index 1005f0216..a095f6d40 100644 --- a/ui/admin/app/controllers/scopes/scope/auth-methods/auth-method.js +++ b/ui/admin/app/controllers/scopes/scope/auth-methods/auth-method.js @@ -1,4 +1,5 @@ import Controller from '@ember/controller'; +import { AuthMethodOIDC } from 'api/classes/auth-method'; export default class ScopesScopeAuthMethodsAuthMethodController extends Controller { // =attributes @@ -10,4 +11,12 @@ export default class ScopesScopeAuthMethodsAuthMethodController extends Controll get breadCrumb() { return this.model.displayName; } + + /** + * OIDC auth-method states + * @type {[string]} + */ + get oidcStates() { + return AuthMethodOIDC.states; + } } diff --git a/ui/admin/app/routes/scopes/scope/auth-methods/auth-method.js b/ui/admin/app/routes/scopes/scope/auth-methods/auth-method.js index c492fed7b..c0678ed0a 100644 --- a/ui/admin/app/routes/scopes/scope/auth-methods/auth-method.js +++ b/ui/admin/app/routes/scopes/scope/auth-methods/auth-method.js @@ -43,7 +43,7 @@ export default class ScopesScopeAuthMethodsAuthMethodRoute extends Route { /** * Update state of OIDC auth method - * @param {string} state - "inactive", "active-private", "active-public" + * @param {string} state */ @action @notifyError(({ message }) => message) diff --git a/ui/admin/app/templates/scopes/scope/auth-methods/auth-method/-actions.hbs b/ui/admin/app/templates/scopes/scope/auth-methods/auth-method/-actions.hbs index 5ff803bfb..0a7476f53 100644 --- a/ui/admin/app/templates/scopes/scope/auth-methods/auth-method/-actions.hbs +++ b/ui/admin/app/templates/scopes/scope/auth-methods/auth-method/-actions.hbs @@ -1,14 +1,14 @@ {{#if @model.isOIDC}} - + - {{#each @model.STATES_ENUM as |state|}} + {{#each this.oidcStates as |state|}}