diff --git a/addons/api/addon/models/role.js b/addons/api/addon/models/role.js index 83caa27d9..d660591c6 100644 --- a/addons/api/addon/models/role.js +++ b/addons/api/addon/models/role.js @@ -7,7 +7,10 @@ import GeneratedRoleModel from '../generated/models/role'; import { attr } from '@ember-data/model'; import { inject as service } from '@ember/service'; import { all, resolve } from 'rsvp'; -import { TYPE_AUTH_METHOD_OIDC } from 'api/models/auth-method'; +import { + TYPE_AUTH_METHOD_OIDC, + TYPE_AUTH_METHOD_LDAP, +} from 'api/models/auth-method'; export default class RoleModel extends GeneratedRoleModel { // =services @@ -134,7 +137,7 @@ export default class RoleModel extends GeneratedRoleModel { // Collect all auth methods. const authMethods = this.resourceFilterStore.queryBy( 'auth-method', - { type: TYPE_AUTH_METHOD_OIDC }, + { type: [TYPE_AUTH_METHOD_OIDC, TYPE_AUTH_METHOD_LDAP] }, { scope_id: 'global', recursive: true } ); @@ -153,7 +156,6 @@ export default class RoleModel extends GeneratedRoleModel { // The result is an array of arrays of model instances (grouped by // auth methods), so these must be flattened. .then((grouped) => grouped.flat()); - return managedGroups; } diff --git a/ui/admin/app/routes/scopes/scope/roles/role/add-principals.js b/ui/admin/app/routes/scopes/scope/roles/role/add-principals.js index 7a0f7c6b4..6f960fd32 100644 --- a/ui/admin/app/routes/scopes/scope/roles/role/add-principals.js +++ b/ui/admin/app/routes/scopes/scope/roles/role/add-principals.js @@ -10,7 +10,10 @@ import { hash, all } from 'rsvp'; import { loading } from 'ember-loading'; import { notifySuccess, notifyError } from 'core/decorators/notify'; import { resourceFilter } from 'core/decorators/resource-filter'; -import { TYPE_AUTH_METHOD_OIDC } from 'api/models/auth-method'; +import { + TYPE_AUTH_METHOD_OIDC, + TYPE_AUTH_METHOD_LDAP, +} from 'api/models/auth-method'; export default class ScopesScopeRolesRoleAddPrincipalsRoute extends Route { // =services @@ -73,22 +76,25 @@ export default class ScopesScopeRolesRoleAddPrincipalsRoute extends Route { ) : this.store.query('group', { scope_id: 'global', recursive: true }); //query authmethods from all the scopes - const oidcAuthMethods = scopeIDs?.length + const authMethods = scopeIDs?.length ? await this.resourceFilterStore.queryBy( 'auth-method', - { scope_id: scopeIDs, type: TYPE_AUTH_METHOD_OIDC }, + { + scope_id: scopeIDs, + type: [TYPE_AUTH_METHOD_OIDC, TYPE_AUTH_METHOD_LDAP], + }, { scope_id: 'global', recursive: true } ) : await this.resourceFilterStore.queryBy( 'auth-method', - { type: TYPE_AUTH_METHOD_OIDC }, + { type: [TYPE_AUTH_METHOD_OIDC, TYPE_AUTH_METHOD_LDAP] }, { scope_id: 'global', recursive: true } ); - //extract oidc authMethod IDs - const oidcAuthMethodIDs = oidcAuthMethods.map(({ id }) => id); + //extract oidc and ldap authMethod IDs + const authMethodIDs = authMethods.map(({ id }) => id); //query all the managed groups for each auth method id const managedGroups = await all( - oidcAuthMethodIDs.map((auth_method_id) => + authMethodIDs.map((auth_method_id) => this.store.query('managed-group', { auth_method_id }) ) );