first&last

This commit is contained in:
sbb45
2026-03-20 15:47:17 +05:00
commit d6441abdd2
230 changed files with 20367 additions and 0 deletions
+19
View File
@@ -0,0 +1,19 @@
<?php
namespace App\Policies;
use App\Models\ActivityLog;
use App\Models\User;
class ActivityLogPolicy
{
public function viewAny(User $user): bool
{
return $user->isAdmin();
}
public function view(User $user, ActivityLog $activityLog): bool
{
return $user->isAdmin();
}
}
+39
View File
@@ -0,0 +1,39 @@
<?php
namespace App\Policies;
use App\Models\Department;
use App\Models\User;
class DepartmentPolicy
{
public function before(User $user, string $ability): bool|null
{
return $user->isAdmin() ? true : null;
}
public function viewAny(User $user): bool
{
return false;
}
public function view(User $user, Department $department): bool
{
return false;
}
public function create(User $user): bool
{
return false;
}
public function update(User $user, Department $department): bool
{
return false;
}
public function delete(User $user, Department $department): bool
{
return false;
}
}
+39
View File
@@ -0,0 +1,39 @@
<?php
namespace App\Policies;
use App\Models\EquipmentCategory;
use App\Models\User;
class EquipmentCategoryPolicy
{
public function before(User $user, string $ability): bool|null
{
return $user->isAdmin() ? true : null;
}
public function viewAny(User $user): bool
{
return false;
}
public function view(User $user, EquipmentCategory $equipmentCategory): bool
{
return false;
}
public function create(User $user): bool
{
return false;
}
public function update(User $user, EquipmentCategory $equipmentCategory): bool
{
return false;
}
public function delete(User $user, EquipmentCategory $equipmentCategory): bool
{
return false;
}
}
+39
View File
@@ -0,0 +1,39 @@
<?php
namespace App\Policies;
use App\Models\Equipment;
use App\Models\User;
class EquipmentPolicy
{
public function before(User $user, string $ability): bool|null
{
return $user->isAdmin() ? true : null;
}
public function viewAny(User $user): bool
{
return false;
}
public function view(User $user, Equipment $equipment): bool
{
return false;
}
public function create(User $user): bool
{
return false;
}
public function update(User $user, Equipment $equipment): bool
{
return false;
}
public function delete(User $user, Equipment $equipment): bool
{
return false;
}
}
+39
View File
@@ -0,0 +1,39 @@
<?php
namespace App\Policies;
use App\Models\Priority;
use App\Models\User;
class PriorityPolicy
{
public function before(User $user, string $ability): bool|null
{
return $user->isAdmin() ? true : null;
}
public function viewAny(User $user): bool
{
return false;
}
public function view(User $user, Priority $priority): bool
{
return false;
}
public function create(User $user): bool
{
return false;
}
public function update(User $user, Priority $priority): bool
{
return false;
}
public function delete(User $user, Priority $priority): bool
{
return false;
}
}
+39
View File
@@ -0,0 +1,39 @@
<?php
namespace App\Policies;
use App\Models\RequestType;
use App\Models\User;
class RequestTypePolicy
{
public function before(User $user, string $ability): bool|null
{
return $user->isAdmin() ? true : null;
}
public function viewAny(User $user): bool
{
return false;
}
public function view(User $user, RequestType $requestType): bool
{
return false;
}
public function create(User $user): bool
{
return false;
}
public function update(User $user, RequestType $requestType): bool
{
return false;
}
public function delete(User $user, RequestType $requestType): bool
{
return false;
}
}
+71
View File
@@ -0,0 +1,71 @@
<?php
namespace App\Policies;
use App\Enums\StatusSlug;
use App\Models\ServiceRequest;
use App\Models\User;
class ServiceRequestPolicy
{
public function viewAny(User $user): bool
{
return true;
}
public function view(User $user, ServiceRequest $serviceRequest): bool
{
if ($user->isAdmin() || $user->isManager()) {
return true;
}
if ($user->isTechnician()) {
return $serviceRequest->assigned_to === $user->id;
}
return $serviceRequest->client_id === $user->id;
}
public function create(User $user): bool
{
return $user->isAdmin() || $user->isManager() || $user->isClient();
}
public function update(User $user, ServiceRequest $serviceRequest): bool
{
if ($user->isAdmin() || $user->isManager()) {
return true;
}
if ($user->isTechnician()) {
return $serviceRequest->assigned_to === $user->id;
}
return $serviceRequest->client_id === $user->id
&& $serviceRequest->status?->slug === StatusSlug::NEW->value;
}
public function delete(User $user, ServiceRequest $serviceRequest): bool
{
return $user->isAdmin();
}
public function addInternalComment(User $user, ServiceRequest $serviceRequest): bool
{
if (!$user->isStaff()) {
return false;
}
return $this->view($user, $serviceRequest);
}
public function rate(User $user, ServiceRequest $serviceRequest): bool
{
if (!$user->isClient()) {
return false;
}
return $serviceRequest->client_id === $user->id
&& in_array($serviceRequest->status?->slug, [StatusSlug::RESOLVED->value, StatusSlug::CLOSED->value], true);
}
}
+19
View File
@@ -0,0 +1,19 @@
<?php
namespace App\Policies;
use App\Models\Setting;
use App\Models\User;
class SettingPolicy
{
public function viewAny(User $user): bool
{
return $user->isAdmin();
}
public function update(User $user, Setting $setting): bool
{
return $user->isAdmin();
}
}
+39
View File
@@ -0,0 +1,39 @@
<?php
namespace App\Policies;
use App\Models\Status;
use App\Models\User;
class StatusPolicy
{
public function before(User $user, string $ability): bool|null
{
return $user->isAdmin() ? true : null;
}
public function viewAny(User $user): bool
{
return false;
}
public function view(User $user, Status $status): bool
{
return false;
}
public function create(User $user): bool
{
return false;
}
public function update(User $user, Status $status): bool
{
return false;
}
public function delete(User $user, Status $status): bool
{
return false;
}
}
+38
View File
@@ -0,0 +1,38 @@
<?php
namespace App\Policies;
use App\Models\User;
class UserPolicy
{
public function before(User $user, string $ability): bool|null
{
return $user->isAdmin() ? true : null;
}
public function viewAny(User $user): bool
{
return $user->isManager();
}
public function view(User $user, User $model): bool
{
return $user->isManager() || $user->id === $model->id;
}
public function create(User $user): bool
{
return false;
}
public function update(User $user, User $model): bool
{
return $user->id === $model->id;
}
public function delete(User $user, User $model): bool
{
return false;
}
}