Files
dokploy/apps/dokploy/server/api/utils/audit.ts
Mauricio Siu 8127dc4536 feat: add comprehensive permission tests and enhance permission checks in components
- Introduced new test files for permission checks, including `check-permission.test.ts`, `enterprise-only-resources.test.ts`, `resolve-permissions.test.ts`, and `service-access.test.ts`.
- Implemented permission checks in various components to ensure actions are gated by user permissions, including `ShowTraefikConfig`, `UpdateTraefikConfig`, `ShowVolumes`, `ShowDomains`, and others.
- Enhanced the logic for displaying UI elements based on user permissions, ensuring that only authorized users can access or modify resources.
2026-03-15 16:42:48 -06:00

32 lines
913 B
TypeScript

import { createAuditLog } from "@dokploy/server/services/proprietary/audit-log";
import type { AuditAction, AuditResourceType } from "@dokploy/server/db/schema";
interface AuditCtx {
user: { id: string; email: string; role: string };
session: { activeOrganizationId: string };
}
interface AuditEvent {
action: AuditAction;
resourceType: AuditResourceType;
resourceId?: string;
resourceName?: string;
metadata?: Record<string, unknown>;
}
/**
* Creates an audit log entry from a tRPC context.
* Extracts userId, userEmail, userRole and organizationId automatically.
*
* Usage:
* await audit(ctx, { action: "create", resourceType: "project", resourceName: "my-app" });
*/
export const audit = (ctx: AuditCtx, event: AuditEvent) =>
createAuditLog({
organizationId: ctx.session.activeOrganizationId,
userId: ctx.user.id,
userEmail: ctx.user.email,
userRole: ctx.user.role,
...event,
});