mirror of
https://github.com/Dokploy/dokploy.git
synced 2026-07-24 23:35:24 +02:00
feat(permissions): update role-based access checks across dashboard components
- Refactored user role checks in various dashboard pages to utilize the new permissions structure. - Replaced direct role comparisons with permission checks for enhanced security and maintainability. - Updated the `validateRequest` function to streamline user role handling and ensure proper access control. - Improved consistency in permission checks across components, ensuring only authorized users can access specific features.
This commit is contained in:
@@ -16,6 +16,7 @@ import {
|
||||
findWebServer,
|
||||
updateWebServer,
|
||||
} from "@dokploy/server/services/web-server";
|
||||
import type { Role } from "../db/schema/rbac";
|
||||
|
||||
const { handler, api } = betterAuth({
|
||||
database: drizzleAdapter(db, {
|
||||
@@ -409,15 +410,7 @@ export const validateRequest = async (request: IncomingMessage) => {
|
||||
};
|
||||
}
|
||||
|
||||
const mockSession = {
|
||||
session: {
|
||||
...session.session,
|
||||
},
|
||||
user: {
|
||||
...session.user,
|
||||
ownerId: session.user.ownerId,
|
||||
},
|
||||
};
|
||||
let role: Role | null = null;
|
||||
if (session?.user) {
|
||||
const member = await db.query.member.findFirst({
|
||||
where: and(
|
||||
@@ -432,17 +425,22 @@ export const validateRequest = async (request: IncomingMessage) => {
|
||||
organization: true,
|
||||
},
|
||||
});
|
||||
|
||||
if (member?.role) {
|
||||
mockSession.user.role = member.role;
|
||||
}
|
||||
|
||||
role = member?.role || null;
|
||||
if (member) {
|
||||
mockSession.user.ownerId = member.organization.ownerId;
|
||||
session.user.ownerId = member.organization.ownerId;
|
||||
} else {
|
||||
mockSession.user.ownerId = session.user.id;
|
||||
session.user.ownerId = session.user.id;
|
||||
}
|
||||
}
|
||||
|
||||
const mockSession = {
|
||||
session: {
|
||||
...session.session,
|
||||
},
|
||||
user: {
|
||||
...session.user,
|
||||
role,
|
||||
ownerId: session.user.ownerId,
|
||||
},
|
||||
};
|
||||
return mockSession;
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user