mirror of
https://github.com/danny-avila/LibreChat.git
synced 2026-02-05 01:01:51 +01:00
refactor: organize Sharing/Agent components, improve type safety for resource types and access role ids, rename enums to PascalCase refactor: organize Sharing/Agent components, improve type safety for resource types and access role ids chore: move sharing related components to dedicated "Sharing" directory chore: remove PublicSharingToggle component and update index exports chore: move non-sidepanel agent components to `~/components/Agents` chore: move AgentCategoryDisplay component with tests chore: remove commented out code refactor: change PERMISSION_BITS from const to enum for better type safety refactor: reorganize imports in GenericGrantAccessDialog and update index exports for hooks refactor: update type definitions to use ACCESS_ROLE_IDS for improved type safety refactor: remove unused canAccessPromptResource middleware and related code refactor: remove unused prompt access roles from createAccessRoleMethods refactor: update resourceType in AclEntry type definition to remove unused 'prompt' value refactor: introduce ResourceType enum and update resourceType usage across data provider files for improved type safety refactor: update resourceType usage to ResourceType enum across sharing and permissions components for improved type safety refactor: standardize resourceType usage to ResourceType enum across agent and prompt models, permissions controller, and middleware for enhanced type safety refactor: update resourceType references from PROMPT_GROUP to PROMPTGROUP for consistency across models, middleware, and components refactor: standardize access role IDs and resource type usage across agent, file, and prompt models for improved type safety and consistency chore: add typedefs for TUpdateResourcePermissionsRequest and TUpdateResourcePermissionsResponse to enhance type definitions chore: move SearchPicker to PeoplePicker dir refactor: implement debouncing for query changes in SearchPicker for improved performance chore: fix typing, import order for agent admin settings fix: agent admin settings, prevent agent form submission refactor: rename `ACCESS_ROLE_IDS` to `AccessRoleIds` refactor: replace PermissionBits with PERMISSION_BITS refactor: replace PERMISSION_BITS with PermissionBits
43 lines
1.9 KiB
TypeScript
43 lines
1.9 KiB
TypeScript
import { AccessRoleIds, ResourceType } from 'librechat-data-provider';
|
|
|
|
export interface ResourceConfig {
|
|
resourceType: ResourceType;
|
|
defaultViewerRoleId: AccessRoleIds;
|
|
defaultEditorRoleId: AccessRoleIds;
|
|
defaultOwnerRoleId: AccessRoleIds;
|
|
getResourceUrl?: (resourceId: string) => string;
|
|
getResourceName: (resourceName?: string) => string;
|
|
getShareMessage: (resourceName?: string) => string;
|
|
getManageMessage: (resourceName?: string) => string;
|
|
getCopyUrlMessage: () => string;
|
|
}
|
|
|
|
export const RESOURCE_CONFIGS: Record<ResourceType, ResourceConfig> = {
|
|
[ResourceType.AGENT]: {
|
|
resourceType: ResourceType.AGENT,
|
|
defaultViewerRoleId: AccessRoleIds.AGENT_VIEWER,
|
|
defaultEditorRoleId: AccessRoleIds.AGENT_EDITOR,
|
|
defaultOwnerRoleId: AccessRoleIds.AGENT_OWNER,
|
|
getResourceUrl: (agentId: string) => `${window.location.origin}/c/new?agent_id=${agentId}`,
|
|
getResourceName: (name?: string) => (name && name !== '' ? `"${name}"` : 'agent'),
|
|
getShareMessage: (name?: string) => (name && name !== '' ? `"${name}"` : 'agent'),
|
|
getManageMessage: (name?: string) =>
|
|
`Manage permissions for ${name && name !== '' ? `"${name}"` : 'agent'}`,
|
|
getCopyUrlMessage: () => 'Agent URL copied',
|
|
},
|
|
[ResourceType.PROMPTGROUP]: {
|
|
resourceType: ResourceType.PROMPTGROUP,
|
|
defaultViewerRoleId: AccessRoleIds.PROMPTGROUP_VIEWER,
|
|
defaultEditorRoleId: AccessRoleIds.PROMPTGROUP_EDITOR,
|
|
defaultOwnerRoleId: AccessRoleIds.PROMPTGROUP_OWNER,
|
|
getResourceName: (name?: string) => (name && name !== '' ? `"${name}"` : 'prompt'),
|
|
getShareMessage: (name?: string) => (name && name !== '' ? `"${name}"` : 'prompt'),
|
|
getManageMessage: (name?: string) =>
|
|
`Manage permissions for ${name && name !== '' ? `"${name}"` : 'prompt'}`,
|
|
getCopyUrlMessage: () => 'Prompt URL copied',
|
|
},
|
|
};
|
|
|
|
export const getResourceConfig = (resourceType: ResourceType): ResourceConfig | undefined => {
|
|
return RESOURCE_CONFIGS[resourceType];
|
|
};
|