36 lines
1.4 KiB
TypeScript
36 lines
1.4 KiB
TypeScript
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);
|
|
}
|