diff --git a/api/server/routes/agents/v1.js b/api/server/routes/agents/v1.js index 682a9c795f..ed989bcf44 100644 --- a/api/server/routes/agents/v1.js +++ b/api/server/routes/agents/v1.js @@ -117,7 +117,7 @@ router.post( '/:id/duplicate', checkAgentCreate, canAccessAgentResource({ - requiredPermission: PermissionBits.VIEW, + requiredPermission: PermissionBits.EDIT, resourceIdParam: 'id', }), v1.duplicateAgent, diff --git a/client/src/components/SidePanel/Agents/AgentFooter.tsx b/client/src/components/SidePanel/Agents/AgentFooter.tsx index b2fa996596..ff98f7c48b 100644 --- a/client/src/components/SidePanel/Agents/AgentFooter.tsx +++ b/client/src/components/SidePanel/Agents/AgentFooter.tsx @@ -57,6 +57,7 @@ export default function AgentFooter({ useResourcePermissions(ResourceType.REMOTE_AGENT, agent?._id || ''); const canShareThisAgent = hasPermission(PermissionBits.SHARE); + const canEditThisAgent = hasPermission(PermissionBits.EDIT); const canDeleteThisAgent = hasPermission(PermissionBits.DELETE); const canShareRemoteAgent = hasRemoteAgentPermission(PermissionBits.SHARE); const isSaving = createMutation.isLoading || updateMutation.isLoading || isAvatarUploading; @@ -118,7 +119,8 @@ export default function AgentFooter({ )} - {agent && agent.author === user?.id && } + {(agent?.author === user?.id || user?.role === SystemRoles.ADMIN || canEditThisAgent) && + !permissionsLoading && } {/* Submit Button */}