diff --git a/apps/dokploy/components/dashboard/settings/users/add-permissions.tsx b/apps/dokploy/components/dashboard/settings/users/add-permissions.tsx index ee2d1d44c..01efdd788 100644 --- a/apps/dokploy/components/dashboard/settings/users/add-permissions.tsx +++ b/apps/dokploy/components/dashboard/settings/users/add-permissions.tsx @@ -172,6 +172,7 @@ const addPermissions = z.object({ accessedEnvironments: z.array(z.string()).optional(), accessedServices: z.array(z.string()).optional(), accessedGitProviders: z.array(z.string()).optional(), + accessedServers: z.array(z.string()).optional(), canCreateProjects: z.boolean().optional().default(false), canCreateServices: z.boolean().optional().default(false), canDeleteProjects: z.boolean().optional().default(false), @@ -208,6 +209,13 @@ export const AddUserPermissions = ({ userId, role }: Props) => { }, ); + const { data: servers } = api.server.allForPermissions.useQuery( + undefined, + { + enabled: isOpen && !!haveValidLicense, + }, + ); + const { data, refetch } = api.user.one.useQuery( { userId, @@ -226,6 +234,7 @@ export const AddUserPermissions = ({ userId, role }: Props) => { accessedEnvironments: [], accessedServices: [], accessedGitProviders: [], + accessedServers: [], canDeleteEnvironments: false, canCreateProjects: false, canCreateServices: false, @@ -248,6 +257,7 @@ export const AddUserPermissions = ({ userId, role }: Props) => { accessedEnvironments: data.accessedEnvironments || [], accessedServices: data.accessedServices || [], accessedGitProviders: data.accessedGitProviders || [], + accessedServers: data.accessedServers || [], canCreateProjects: data.canCreateProjects, canCreateServices: data.canCreateServices, canDeleteProjects: data.canDeleteProjects, @@ -276,6 +286,7 @@ export const AddUserPermissions = ({ userId, role }: Props) => { accessedEnvironments: data.accessedEnvironments || [], accessedServices: data.accessedServices || [], accessedGitProviders: data.accessedGitProviders || [], + accessedServers: data.accessedServers || [], canAccessToDocker: data.canAccessToDocker, canAccessToAPI: data.canAccessToAPI, canAccessToSSHKeys: data.canAccessToSSHKeys, @@ -956,6 +967,81 @@ export const AddUserPermissions = ({ userId, role }: Props) => { /> )} + {haveValidLicense ? ( + ( + +
+ Servers + + Select the Servers that the user can access + +
+ {servers?.length === 0 && ( +

+ No servers found +

+ )} +
+ {servers?.map((s) => ( + ( + + + { + if (checked) { + field.onChange([ + ...(field.value || []), + s.serverId, + ]); + } else { + field.onChange( + field.value?.filter( + (v) => v !== s.serverId, + ), + ); + } + }} + /> + +
+ + {s.name} + + + ({s.ipAddress}) + + + {s.serverType} + +
+
+ )} + /> + ))} +
+ +
+ )} + /> + ) : ( +
+ +
+ )}