mirror of
https://github.com/Dokploy/dokploy.git
synced 2026-06-26 17:45:49 +02:00
refactor(roles): streamline role permissions handling
- Refactored role permissions management by importing specific permissions directly instead of querying the database. - Updated the `getDefaultRoles` method to return predefined permissions for owner, admin, and member roles. - Simplified the permissions structure in the RBAC schema for better clarity and maintainability.
This commit is contained in:
@@ -6,7 +6,14 @@ import {
|
||||
role,
|
||||
updateRoleSchema,
|
||||
} from "@/server/db/schema";
|
||||
import { createRole, removeRoleById, updateRoleById } from "@dokploy/server";
|
||||
import {
|
||||
adminPermissions,
|
||||
createRole,
|
||||
memberPermissions,
|
||||
ownerPermissions,
|
||||
removeRoleById,
|
||||
updateRoleById,
|
||||
} from "@dokploy/server";
|
||||
import { TRPCError } from "@trpc/server";
|
||||
import { and, eq } from "drizzle-orm";
|
||||
|
||||
@@ -59,17 +66,10 @@ export const roleRouter = createTRPCRouter({
|
||||
return await updateRoleById(input.roleId, input);
|
||||
}),
|
||||
getDefaultRoles: protectedProcedure.query(async ({ ctx }) => {
|
||||
const result = await db.query.role.findMany({
|
||||
where: and(
|
||||
eq(role.organizationId, ctx.session.activeOrganizationId),
|
||||
eq(role.isSystem, true),
|
||||
),
|
||||
});
|
||||
|
||||
return {
|
||||
owner: result.find((r) => r.name === "owner"),
|
||||
admin: result.find((r) => r.name === "admin"),
|
||||
member: result.find((r) => r.name === "member"),
|
||||
owner: ownerPermissions,
|
||||
admin: adminPermissions,
|
||||
member: memberPermissions,
|
||||
};
|
||||
}),
|
||||
});
|
||||
|
||||
@@ -54,13 +54,15 @@ export const PERMISSIONS = {
|
||||
},
|
||||
} as const;
|
||||
|
||||
const getAllPermissionNames = () => {
|
||||
return Object.values(PERMISSIONS).flatMap((category) =>
|
||||
Object.values(category).map((permission) => permission.name),
|
||||
);
|
||||
};
|
||||
|
||||
export const ownerPermissions = getAllPermissionNames();
|
||||
export const ownerPermissions = [
|
||||
PERMISSIONS.PROJECT.VIEW.name,
|
||||
PERMISSIONS.PROJECT.CREATE.name,
|
||||
PERMISSIONS.PROJECT.DELETE.name,
|
||||
PERMISSIONS.SERVICE.VIEW.name,
|
||||
PERMISSIONS.SERVICE.CREATE.name,
|
||||
PERMISSIONS.SERVICE.DELETE.name,
|
||||
PERMISSIONS.TRAEFIK.ACCESS.name,
|
||||
];
|
||||
|
||||
export const adminPermissions = [
|
||||
PERMISSIONS.PROJECT.VIEW.name,
|
||||
|
||||
Reference in New Issue
Block a user