diff --git a/packages/backend/src/graphql/mutation-resolvers.js b/packages/backend/src/graphql/mutation-resolvers.js index 8483637a..15e15beb 100644 --- a/packages/backend/src/graphql/mutation-resolvers.js +++ b/packages/backend/src/graphql/mutation-resolvers.js @@ -2,7 +2,6 @@ import createConnection from './mutations/create-connection.js'; import createStep from './mutations/create-step.js'; import createUser from './mutations/create-user.ee.js'; import deleteFlow from './mutations/delete-flow.js'; -import deleteRole from './mutations/delete-role.ee.js'; import duplicateFlow from './mutations/duplicate-flow.js'; import generateAuthUrl from './mutations/generate-auth-url.js'; import registerUser from './mutations/register-user.ee.js'; @@ -28,7 +27,6 @@ const mutationResolvers = { createUser, deleteCurrentUser, deleteFlow, - deleteRole, deleteStep, duplicateFlow, executeFlow, diff --git a/packages/backend/src/graphql/mutations/delete-role.ee.js b/packages/backend/src/graphql/mutations/delete-role.ee.js deleted file mode 100644 index 9b0249a2..00000000 --- a/packages/backend/src/graphql/mutations/delete-role.ee.js +++ /dev/null @@ -1,36 +0,0 @@ -import Role from '../../models/role.js'; -import SamlAuthProvider from '../../models/saml-auth-provider.ee.js'; - -const deleteRole = async (_parent, params, context) => { - context.currentUser.can('delete', 'Role'); - - const role = await Role.query().findById(params.input.id).throwIfNotFound(); - const count = await role.$relatedQuery('users').resultSize(); - - if (count > 0) { - throw new Error('All users must be migrated away from the role!'); - } - - if (role.isAdmin) { - throw new Error('Admin role cannot be deleted!'); - } - - const samlAuthProviderUsingDefaultRole = await SamlAuthProvider.query() - .where({ default_role_id: role.id }) - .limit(1) - .first(); - - if (samlAuthProviderUsingDefaultRole) { - throw new Error( - 'You need to change the default role in the SAML configuration before deleting this role.' - ); - } - - // delete permissions first - await role.$relatedQuery('permissions').delete(); - await role.$query().delete(); - - return true; -}; - -export default deleteRole; diff --git a/packages/backend/src/graphql/schema.graphql b/packages/backend/src/graphql/schema.graphql index 5598f59a..4657302c 100644 --- a/packages/backend/src/graphql/schema.graphql +++ b/packages/backend/src/graphql/schema.graphql @@ -8,7 +8,6 @@ type Mutation { createUser(input: CreateUserInput): UserWithAcceptInvitationUrl deleteCurrentUser: Boolean deleteFlow(input: DeleteFlowInput): Boolean - deleteRole(input: DeleteRoleInput): Boolean deleteStep(input: DeleteStepInput): Step duplicateFlow(input: DuplicateFlowInput): Flow executeFlow(input: ExecuteFlowInput): executeFlowType @@ -334,10 +333,6 @@ input UpdateCurrentUserInput { fullName: String } -input DeleteRoleInput { - id: String! -} - """ The `JSONObject` scalar type represents JSON objects as specified by [ECMA-404](http://www.ecma-international.org/publications/files/ECMA-ST/ECMA-404.pdf). """ diff --git a/packages/web/src/graphql/mutations/delete-role.ee.js b/packages/web/src/graphql/mutations/delete-role.ee.js deleted file mode 100644 index 709f3b55..00000000 --- a/packages/web/src/graphql/mutations/delete-role.ee.js +++ /dev/null @@ -1,6 +0,0 @@ -import { gql } from '@apollo/client'; -export const DELETE_ROLE = gql` - mutation DeleteRole($input: DeleteRoleInput) { - deleteRole(input: $input) - } -`;