diff --git a/components/dashboard/settings/users/add-permissions.tsx b/components/dashboard/settings/users/add-permissions.tsx index cf80803d..b17f2004 100644 --- a/components/dashboard/settings/users/add-permissions.tsx +++ b/components/dashboard/settings/users/add-permissions.tsx @@ -38,6 +38,7 @@ const addPermissions = z.object({ canDeleteServices: z.boolean().optional().default(false), canAccessToTraefikFiles: z.boolean().optional().default(false), canAccessToDocker: z.boolean().optional().default(false), + canAccessToAPI: z.boolean().optional().default(false), }); type AddPermissions = z.infer; @@ -80,6 +81,7 @@ export const AddUserPermissions = ({ userId }: Props) => { canDeleteServices: data.canDeleteServices, canAccessToTraefikFiles: data.canAccessToTraefikFiles, canAccessToDocker: data.canAccessToDocker, + canAccessToAPI: data.canAccessToAPI, }); } }, [form, form.formState.isSubmitSuccessful, form.reset, data]); @@ -95,6 +97,7 @@ export const AddUserPermissions = ({ userId }: Props) => { accesedProjects: data.accesedProjects || [], accesedServices: data.accesedServices || [], canAccessToDocker: data.canAccessToDocker, + canAccessToAPI: data.canAccessToAPI, }) .then(async () => { toast.success("Permissions updated"); @@ -247,6 +250,26 @@ export const AddUserPermissions = ({ userId }: Props) => { )} /> + ( + +
+ Access to API/CLI + + Allow the user to access to the API/CLI + +
+ + + +
+ )} + /> { - const { sshPrivateKey, ...rest } = await findAdmin(); - return { - haveSSH: !!sshPrivateKey, - ...rest, - }; - }), + one: adminProcedure.query(async () => { + const { sshPrivateKey, ...rest } = await findAdmin(); + return { + haveSSH: !!sshPrivateKey, + ...rest, + }; + }), createUserInvitation: adminProcedure .input(apiCreateUserInvitation) .mutation(async ({ input }) => { diff --git a/server/db/schema/user.ts b/server/db/schema/user.ts index 915ff75e..9a8d49db 100644 --- a/server/db/schema/user.ts +++ b/server/db/schema/user.ts @@ -32,6 +32,7 @@ export const users = pgTable("user", { canDeleteProjects: boolean("canDeleteProjects").notNull().default(false), canDeleteServices: boolean("canDeleteServices").notNull().default(false), canAccessToDocker: boolean("canAccessToDocker").notNull().default(false), + canAccessToAPI: boolean("canAccessToAPI").notNull().default(false), canAccessToTraefikFiles: boolean("canAccessToTraefikFiles") .notNull() .default(false), @@ -105,6 +106,7 @@ export const apiAssignPermissions = createSchema accesedServices: true, canAccessToTraefikFiles: true, canAccessToDocker: true, + canAccessToAPI: true, }) .required();