Files
2026-06-13 00:51:52 +08:00

32 lines
876 B
JavaScript

export const permissions = {
settingsManage: "settings.manage",
usersManage: "users.manage",
projectsManage: "projects.manage",
contentEdit: "content.edit",
contentPublish: "content.publish",
contentView: "content.view",
};
const rolePermissions = {
system_admin: Object.values(permissions),
admin: [
permissions.usersManage,
permissions.projectsManage,
permissions.contentEdit,
permissions.contentPublish,
permissions.contentView,
],
editor: [permissions.contentEdit, permissions.contentPublish, permissions.contentView],
viewer: [permissions.contentView],
user: [permissions.contentView],
};
export function hasPermission(user, permission) {
if (!user) return false;
return Boolean(rolePermissions[user.role]?.includes(permission));
}
export function publicPermissions(user) {
return rolePermissions[user?.role] ?? [];
}