Files
solidtime/resources/js/utils/permissions.ts
T
2025-03-10 14:06:02 +01:00

125 lines
2.9 KiB
TypeScript

import { usePage } from '@inertiajs/vue3';
const page = usePage<{
auth: {
permissions: string[];
};
}>();
function currentUserHasPermission(permission: string) {
if (Array.isArray(page.props.auth.permissions)) {
return page.props.auth.permissions.includes(permission);
}
return false;
}
export function canUpdateOrganization() {
return currentUserHasPermission('organizations:update');
}
export function canViewProjects() {
return currentUserHasPermission('projects:view');
}
export function canCreateProjects() {
return currentUserHasPermission('projects:create');
}
export function canUpdateProjects() {
return currentUserHasPermission('projects:update');
}
export function canDeleteProjects() {
return currentUserHasPermission('projects:delete');
}
export function canViewProjectMembers() {
return currentUserHasPermission('project-members:view');
}
export function canCreateTasks() {
return currentUserHasPermission('tasks:create');
}
export function canUpdateTasks() {
return currentUserHasPermission('tasks:update');
}
export function canDeleteTasks() {
return currentUserHasPermission('tasks:delete');
}
export function canCreateClients() {
return currentUserHasPermission('clients:create');
}
export function canUpdateClients() {
return currentUserHasPermission('clients:update');
}
export function canDeleteClients() {
return currentUserHasPermission('clients:delete');
}
export function canViewClients() {
return currentUserHasPermission('clients:view');
}
export function canViewMembers() {
return currentUserHasPermission('members:view');
}
export function canUpdateMembers() {
return currentUserHasPermission('members:update');
}
export function canDeleteMembers() {
return currentUserHasPermission('members:delete');
}
export function canMergeMembers() {
return currentUserHasPermission('members:merge-into');
}
export function canMakeMembersPlaceholders() {
return currentUserHasPermission('members:make-placeholder');
}
export function canInvitePlaceholderMembers() {
return currentUserHasPermission('members:invite-placeholder');
}
export function canCreateInvitations() {
return currentUserHasPermission('invitations:create');
}
export function canViewTags() {
return currentUserHasPermission('tags:view');
}
export function canCreateTags() {
return currentUserHasPermission('tags:create');
}
export function canDeleteTags() {
return currentUserHasPermission('tags:delete');
}
export function canManageBilling() {
return currentUserHasPermission('billing');
}
export function canViewReport() {
return currentUserHasPermission('reports:view');
}
export function canUpdateReport() {
return currentUserHasPermission('reports:update');
}
export function canDeleteReport() {
return currentUserHasPermission('reports:delete');
}
export function canViewAllTimeEntries() {
return currentUserHasPermission('time-entries:view:all');
}