first commit

This commit is contained in:
Noor E Ilahi
2026-01-09 12:54:53 +05:30
commit 7ccf44f7da
1070 changed files with 113036 additions and 0 deletions

View File

@@ -0,0 +1,18 @@
import { store } from '@/store';
import TaskPolicy from './task.policy';
import ProjectPolicy from './project.policy';
import UserPolicy from './user.policy';
import InvitationPolicy from './invitation.policy';
import PriorityPolicy from './priority.policy';
import StatusPolicy from './status.policy';
import ProjectGroupPolicy from './project-group.policy';
store.dispatch('policies/registerPolicies', {
task: TaskPolicy,
project: ProjectPolicy,
user: UserPolicy,
invitation: InvitationPolicy,
priority: PriorityPolicy,
status: StatusPolicy,
projectGroup: ProjectGroupPolicy,
});

View File

@@ -0,0 +1,19 @@
import { hasRole } from '@/utils/user';
export default class InvitationPolicy {
static viewAny(user) {
return hasRole(user, 'admin');
}
static create(user) {
return hasRole(user, 'admin');
}
static update(user, model) {
return hasRole(user, 'admin');
}
static delete(user, model) {
return hasRole(user, 'admin');
}
}

View File

@@ -0,0 +1,19 @@
import { hasRole } from '@/utils/user';
export default class PriorityPolicy {
static viewAny(user) {
return hasRole(user, 'admin');
}
static create(user) {
return hasRole(user, 'admin');
}
static update(user, model) {
return hasRole(user, 'admin');
}
static delete(user, model) {
return hasRole(user, 'admin');
}
}

View File

@@ -0,0 +1,15 @@
import { hasRole } from '@/utils/user';
export default class ProjectGroupPolicy {
static create(user) {
return hasRole(user, 'admin') || hasRole(user, 'manager');
}
static update(user, model) {
return hasRole(user, 'admin') || hasRole(user, 'manager');
}
static delete(user, model) {
return hasRole(user, 'admin') || hasRole(user, 'manager');
}
}

View File

@@ -0,0 +1,31 @@
import { hasRole } from '@/utils/user';
export default class ProjectPolicy {
static create(user) {
return hasRole(user, 'admin') || hasRole(user, 'manager');
}
static update(user, model) {
if (!model) {
return false;
}
return model.can.update;
}
static updateMembers(user, model) {
if (!model) {
return false;
}
return model.can.update_members;
}
static delete(user, model) {
if (!model) {
return false;
}
return model.can.destroy;
}
}

View File

@@ -0,0 +1,19 @@
import { hasRole } from '@/utils/user';
export default class StatusPolicy {
static viewAny(user) {
return hasRole(user, 'admin');
}
static create(user) {
return hasRole(user, 'admin');
}
static update(user, model) {
return hasRole(user, 'admin');
}
static delete(user, model) {
return hasRole(user, 'admin');
}
}

View File

@@ -0,0 +1,21 @@
export default class TaskPolicy {
static create(user) {
return user.can_create_task;
}
static update(user, model) {
if (!model) {
return false;
}
return model.can.update;
}
static delete(user, model) {
if (!model) {
return false;
}
return model.can.destroy;
}
}

View File

@@ -0,0 +1,15 @@
import { hasRole } from '@/utils/user';
export default class UserPolicy {
static viewAny(user) {
return hasRole(user, 'admin');
}
static create(user) {
return hasRole(user, 'admin');
}
static update(user) {
return hasRole(user, 'admin');
}
}