260707_4_대시보드 완료

This commit is contained in:
2026-07-08 20:51:20 +09:00
parent 76d91efcb8
commit bbda38a013
12 changed files with 935 additions and 361 deletions
+35
View File
@@ -0,0 +1,35 @@
import type { DashboardUser, ProjectItem, Member } from "./B01_Dashboard_Api_Fetch";
export function canEditProject(user: DashboardUser, project: ProjectItem): boolean {
if (user.role === "SYSTEM_ADMIN") return true;
if (user.role === "ADMIN") return user.company_id !== null;
return false; // USER는 수정 불가
}
export function canDeleteProject(user: DashboardUser): boolean {
// SYSTEM_ADMIN만 가능 (ADMIN 프로젝트 삭제는 나중을 위해 주석 처리)
return user.role === "SYSTEM_ADMIN";
// return user.role === "SYSTEM_ADMIN" || user.role === "ADMIN";
}
export function canAddUser(user: DashboardUser): boolean {
return user.role === "SYSTEM_ADMIN" || user.role === "ADMIN";
}
export function canChangeRole(user: DashboardUser, targetUser: Member | DashboardUser): boolean {
// 역할 변경은 오직 SYSTEM_ADMIN만 가능
return user.role === "SYSTEM_ADMIN";
}
export function canDeleteUser(user: DashboardUser, targetUser: Member | DashboardUser): boolean {
if (user.role === "SYSTEM_ADMIN") return true;
// ADMIN은 본인 회사의 멤버만 삭제 가능
return user.role === "ADMIN" && user.company_id !== null;
}
export function canManageAutomation(
user: DashboardUser,
projectOrAutomation: ProjectItem | { company_id?: number | null },
): boolean {
return user.role === "SYSTEM_ADMIN" || (user.role === "ADMIN" && user.company_id !== null);
}