diff --git a/packages/backend/src/graphql/queries/get-saml-auth-provider-role-mappings.ee.ts b/packages/backend/src/graphql/queries/get-saml-auth-provider-role-mappings.ee.ts new file mode 100644 index 00000000..ea1e407e --- /dev/null +++ b/packages/backend/src/graphql/queries/get-saml-auth-provider-role-mappings.ee.ts @@ -0,0 +1,23 @@ +import Context from '../../types/express/context'; +import SamlAuthProvider from '../../models/saml-auth-provider.ee'; + +type Params = { + id: string; +} + +const getSamlAuthProviderRoleMappings = async (_parent: unknown, params: Params, context: Context) => { + context.currentUser.can('read', 'SamlAuthProvider'); + + const samlAuthProvider = await SamlAuthProvider + .query() + .findById(params.id) + .throwIfNotFound(); + + const roleMappings = await samlAuthProvider + .$relatedQuery('samlAuthProvidersRoleMappings') + .orderBy('remote_role_name', 'asc') + + return roleMappings; +}; + +export default getSamlAuthProviderRoleMappings; diff --git a/packages/backend/src/graphql/query-resolvers.ts b/packages/backend/src/graphql/query-resolvers.ts index f691735c..1d484230 100644 --- a/packages/backend/src/graphql/query-resolvers.ts +++ b/packages/backend/src/graphql/query-resolvers.ts @@ -22,6 +22,7 @@ import getPermissionCatalog from './queries/get-permission-catalog.ee'; import getRole from './queries/get-role.ee'; import getRoles from './queries/get-roles.ee'; import getSamlAuthProvider from './queries/get-saml-auth-provider.ee'; +import getSamlAuthProviderRoleMappings from './queries/get-saml-auth-provider-role-mappings.ee'; import getStepWithTestExecutions from './queries/get-step-with-test-executions'; import getSubscriptionStatus from './queries/get-subscription-status.ee'; import getTrialStatus from './queries/get-trial-status.ee'; @@ -56,6 +57,7 @@ const queryResolvers = { getRole, getRoles, getSamlAuthProvider, + getSamlAuthProviderRoleMappings, getStepWithTestExecutions, getSubscriptionStatus, getTrialStatus, diff --git a/packages/backend/src/graphql/schema.graphql b/packages/backend/src/graphql/schema.graphql index fa08d89b..62deff38 100644 --- a/packages/backend/src/graphql/schema.graphql +++ b/packages/backend/src/graphql/schema.graphql @@ -47,6 +47,7 @@ type Query { getRole(id: String!): Role getRoles: [Role] getSamlAuthProvider: SamlAuthProvider + getSamlAuthProviderRoleMappings(id: String!): [SamlAuthProvidersRoleMapping] getSubscriptionStatus: GetSubscriptionStatus getTrialStatus: GetTrialStatus getUser(id: String!): User