fix(core): Better input validation for the changeRole endpoint (#8189)
also refactored the code to 1. stop passing around `scope === 'global'`, since this code can be used only for changing globalRole. 2. leak less details when input validation fails. ## Review / Merge checklist - [x] PR title and summary are descriptive - [x] Tests included
This commit is contained in:
committed by
GitHub
parent
11cda41214
commit
cfe9525dd4
@@ -1,3 +1,4 @@
|
||||
import type { UpdateGlobalRolePayload } from '@/api/users';
|
||||
import {
|
||||
changePassword,
|
||||
deleteUser,
|
||||
@@ -15,7 +16,7 @@ import {
|
||||
updateOtherUserSettings,
|
||||
validatePasswordToken,
|
||||
validateSignupToken,
|
||||
updateRole,
|
||||
updateGlobalRole,
|
||||
} from '@/api/users';
|
||||
import { PERSONALIZATION_MODAL_KEY, STORES } from '@/constants';
|
||||
import type {
|
||||
@@ -40,7 +41,7 @@ import { useCloudPlanStore } from './cloudPlan.store';
|
||||
import { disableMfa, enableMfa, getMfaQR, verifyMfaToken } from '@/api/mfa';
|
||||
import { confirmEmail, getCloudUserInfo } from '@/api/cloudPlans';
|
||||
import { useRBACStore } from '@/stores/rbac.store';
|
||||
import type { Scope, ScopeLevel } from '@n8n/permissions';
|
||||
import type { Scope } from '@n8n/permissions';
|
||||
import { inviteUsers, acceptInvitation } from '@/api/invitation';
|
||||
|
||||
const isPendingUser = (user: IUserResponse | null) => !!user?.isPending;
|
||||
@@ -379,9 +380,9 @@ export const useUsersStore = defineStore(STORES.USERS, {
|
||||
await confirmEmail(useRootStore().getRestApiContext);
|
||||
},
|
||||
|
||||
async updateRole({ id, role }: { id: string; role: { scope: ScopeLevel; name: IRole } }) {
|
||||
async updateGlobalRole({ id, newRoleName }: UpdateGlobalRolePayload) {
|
||||
const rootStore = useRootStore();
|
||||
await updateRole(rootStore.getRestApiContext, { id, role });
|
||||
await updateGlobalRole(rootStore.getRestApiContext, { id, newRoleName });
|
||||
await this.fetchUsers();
|
||||
},
|
||||
},
|
||||
|
||||
Reference in New Issue
Block a user