From 7993422b0d6c945c9ce22e325cd838a08d973685 Mon Sep 17 00:00:00 2001 From: Dharini Jeeva Date: Mon, 2 Oct 2023 13:52:35 -0700 Subject: [PATCH] =?UTF-8?q?fix:=20=F0=9F=90=9B=20allow=20ldap=20managed=20?= =?UTF-8?q?groups=20in=20role/principals=20route=20(#1938)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- addons/api/addon/models/role.js | 8 +++++--- .../scopes/scope/roles/role/add-principals.js | 20 ++++++++++++------- 2 files changed, 18 insertions(+), 10 deletions(-) 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 }) ) );