diff --git a/packages/frontend/@n8n/i18n/src/locales/en.json b/packages/frontend/@n8n/i18n/src/locales/en.json index 6e5e818a6a..6187e5fc58 100644 --- a/packages/frontend/@n8n/i18n/src/locales/en.json +++ b/packages/frontend/@n8n/i18n/src/locales/en.json @@ -1965,6 +1965,7 @@ "settings.users.inviteUrlCreated.message": "Send the invite link to your invitee for activation", "settings.users.passwordResetUrlCreated": "Password reset link copied to clipboard", "settings.users.passwordResetUrlCreated.message": "Send the reset link to your user for them to reset their password", + "settings.users.passwordResetLinkError": "Could not retrieve password reset link", "settings.users.allowSSOManualLogin": "Manual Login Allowed", "settings.users.allowSSOManualLogin.message": "User can now login manually and through SSO", "settings.users.disallowSSOManualLogin": "Manual Login Disallowed", @@ -1996,6 +1997,7 @@ "settings.users.userRoleUpdated": "Changes saved", "settings.users.userRoleUpdated.message": "{user} has been successfully updated to a {role}", "settings.users.userRoleUpdatedError": "Unable to updated role", + "settings.users.table.update.error": "Failed to update table", "settings.users.table.header.user": "@:_reusableBaseText.user", "settings.users.table.header.accountType": "Account Type", "settings.users.table.header.2fa": "2FA", diff --git a/packages/frontend/editor-ui/src/components/SettingsUsers/SettingsUsersTable.test.ts b/packages/frontend/editor-ui/src/components/SettingsUsers/SettingsUsersTable.test.ts index cf0fef4b44..3d97c23c7e 100644 --- a/packages/frontend/editor-ui/src/components/SettingsUsers/SettingsUsersTable.test.ts +++ b/packages/frontend/editor-ui/src/components/SettingsUsers/SettingsUsersTable.test.ts @@ -8,22 +8,14 @@ import SettingsUsersTable from '@/components/SettingsUsers/SettingsUsersTable.vu import { createComponentRenderer } from '@/__tests__/render'; import { useEmitters } from '@/__tests__/utils'; import type { IUser } from '@/Interface'; -import type { PermissionType, PermissionTypeOptions } from '@/types/rbac'; const { emitters, addEmitter } = useEmitters< 'settingsUsersRoleCell' | 'settingsUsersActionsCell' | 'n8nDataTableServer' >(); -// Mock child components and composables -const hasPermission = vi.fn( - (permissionNames: PermissionType[], options?: Partial) => - !!(permissionNames || options || []), -); +const hasPermission = vi.fn(() => true); vi.mock('@/utils/rbac/permissions', () => ({ - hasPermission: ( - permissionNames: PermissionType[], - options?: Partial, - ): boolean => hasPermission(permissionNames, options), + hasPermission: () => hasPermission(), })); vi.mock('@/components/SettingsUsers/SettingsUsersRoleCell.vue', () => ({ diff --git a/packages/frontend/editor-ui/src/components/SettingsUsers/SettingsUsersTable.vue b/packages/frontend/editor-ui/src/components/SettingsUsers/SettingsUsersTable.vue index e2fcda9efe..c60982455b 100644 --- a/packages/frontend/editor-ui/src/components/SettingsUsers/SettingsUsersTable.vue +++ b/packages/frontend/editor-ui/src/components/SettingsUsers/SettingsUsersTable.vue @@ -32,6 +32,10 @@ const emit = defineEmits<{ action: [value: { action: string; userId: string }]; }>(); +const tableOptions = defineModel('tableOptions', { + default: () => ({}), +}); + const rows = computed(() => props.data.items); const headers = ref>>([ { @@ -133,6 +137,9 @@ const onRoleChange = ({ role, userId }: { role: string; userId: string }) => {