mirror of
https://github.com/solidtime-io/solidtime.git
synced 2026-08-16 20:22:15 +01:00
hide actions and pages in the frontend according to permissions
This commit is contained in:
83
resources/js/utils/permissions.ts
Normal file
83
resources/js/utils/permissions.ts
Normal file
@@ -0,0 +1,83 @@
|
||||
import { usePage } from '@inertiajs/vue3';
|
||||
|
||||
const page = usePage<{
|
||||
auth: {
|
||||
permissions: string[];
|
||||
};
|
||||
}>();
|
||||
|
||||
function currentUserHasPermission(permission: string) {
|
||||
console.log(page.props.auth.permissions);
|
||||
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 canCreateClients() {
|
||||
return currentUserHasPermission('clients:create');
|
||||
}
|
||||
|
||||
export function canDeleteClients() {
|
||||
return currentUserHasPermission('clients:delete');
|
||||
}
|
||||
|
||||
export function canViewClients() {
|
||||
return currentUserHasPermission('clients:view');
|
||||
}
|
||||
|
||||
export function canViewMembers() {
|
||||
return currentUserHasPermission('members:view');
|
||||
}
|
||||
|
||||
export function canDeleteMembers() {
|
||||
return currentUserHasPermission('members:delete');
|
||||
}
|
||||
|
||||
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');
|
||||
}
|
||||
Reference in New Issue
Block a user