mirror of
https://github.com/danny-avila/LibreChat.git
synced 2026-04-03 14:27:20 +02:00
fix: rename createRole/deleteRole to avoid AccessRole name collision
The existing accessRole.ts already exports createRole/deleteRole for the AccessRole model. In createMethods index.ts, these are spread after roleMethods, overwriting them. Renamed our Role methods to createRoleByName/deleteRoleByName to match the existing pattern (getRoleByName, updateRoleByName) and avoid the collision.
This commit is contained in:
parent
69093a5d99
commit
f947546fea
3 changed files with 12 additions and 12 deletions
|
|
@ -14,10 +14,10 @@ const requireManageRoles = requireCapability(SystemCapabilities.MANAGE_ROLES);
|
|||
const handlers = createAdminRolesHandlers({
|
||||
listRoles: db.listRoles,
|
||||
getRoleByName: db.getRoleByName,
|
||||
createRole: db.createRole,
|
||||
createRoleByName: db.createRoleByName,
|
||||
updateRoleByName: db.updateRoleByName,
|
||||
updateAccessPermissions: db.updateAccessPermissions,
|
||||
deleteRole: db.deleteRole,
|
||||
deleteRoleByName: db.deleteRoleByName,
|
||||
findUser: db.findUser,
|
||||
updateUser: db.updateUser,
|
||||
listUsersByRole: db.listUsersByRole,
|
||||
|
|
|
|||
|
|
@ -24,14 +24,14 @@ interface AdminMember {
|
|||
export interface AdminRolesDeps {
|
||||
listRoles: () => Promise<IRole[]>;
|
||||
getRoleByName: (name: string, fields?: string | string[] | null) => Promise<IRole | null>;
|
||||
createRole: (roleData: Partial<IRole>) => Promise<IRole>;
|
||||
createRoleByName: (roleData: Partial<IRole>) => Promise<IRole>;
|
||||
updateRoleByName: (name: string, updates: Partial<IRole>) => Promise<IRole | null>;
|
||||
updateAccessPermissions: (
|
||||
name: string,
|
||||
perms: Record<string, Record<string, boolean>>,
|
||||
roleData?: IRole,
|
||||
) => Promise<void>;
|
||||
deleteRole: (name: string) => Promise<IRole | null>;
|
||||
deleteRoleByName: (name: string) => Promise<IRole | null>;
|
||||
findUser: (
|
||||
criteria: FilterQuery<IUser>,
|
||||
fields?: string | string[] | null,
|
||||
|
|
@ -44,10 +44,10 @@ export function createAdminRolesHandlers(deps: AdminRolesDeps) {
|
|||
const {
|
||||
listRoles,
|
||||
getRoleByName,
|
||||
createRole,
|
||||
createRoleByName,
|
||||
updateRoleByName,
|
||||
updateAccessPermissions,
|
||||
deleteRole,
|
||||
deleteRoleByName,
|
||||
findUser,
|
||||
updateUser,
|
||||
listUsersByRole,
|
||||
|
|
@ -86,7 +86,7 @@ export function createAdminRolesHandlers(deps: AdminRolesDeps) {
|
|||
if (!name || typeof name !== 'string' || !name.trim()) {
|
||||
return res.status(400).json({ error: 'name is required' });
|
||||
}
|
||||
const role = await createRole({
|
||||
const role = await createRoleByName({
|
||||
name: name.trim(),
|
||||
permissions: permissions || {},
|
||||
});
|
||||
|
|
@ -159,7 +159,7 @@ export function createAdminRolesHandlers(deps: AdminRolesDeps) {
|
|||
return res.status(404).json({ error: 'Role not found' });
|
||||
}
|
||||
|
||||
await deleteRole(name);
|
||||
await deleteRoleByName(name);
|
||||
return res.status(200).json({ success: true });
|
||||
} catch (error) {
|
||||
logger.error('[adminRoles] deleteRole error:', error);
|
||||
|
|
|
|||
|
|
@ -343,7 +343,7 @@ export function createRoleMethods(mongoose: typeof import('mongoose'), deps: Rol
|
|||
}
|
||||
|
||||
/** Rejects names that match system roles. */
|
||||
async function createRole(roleData: Partial<IRole>): Promise<IRole> {
|
||||
async function createRoleByName(roleData: Partial<IRole>): Promise<IRole> {
|
||||
const { name } = roleData;
|
||||
if (!name || typeof name !== 'string' || !name.trim()) {
|
||||
throw new Error('Role name is required');
|
||||
|
|
@ -368,7 +368,7 @@ export function createRoleMethods(mongoose: typeof import('mongoose'), deps: Rol
|
|||
}
|
||||
|
||||
/** Guards against deleting system roles. Reassigns affected users back to USER. */
|
||||
async function deleteRole(roleName: string): Promise<IRole | null> {
|
||||
async function deleteRoleByName(roleName: string): Promise<IRole | null> {
|
||||
if (SystemRoles[roleName as keyof typeof SystemRoles]) {
|
||||
throw new Error(`Cannot delete system role: ${roleName}`);
|
||||
}
|
||||
|
|
@ -399,8 +399,8 @@ export function createRoleMethods(mongoose: typeof import('mongoose'), deps: Rol
|
|||
updateRoleByName,
|
||||
updateAccessPermissions,
|
||||
migrateRoleSchema,
|
||||
createRole,
|
||||
deleteRole,
|
||||
createRoleByName,
|
||||
deleteRoleByName,
|
||||
listUsersByRole,
|
||||
};
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue