add TasksPolicy and EventsPolicy

This commit is contained in:
Giovanni committed 2025-12-17 17:11:12 +01:00
1 parent a0e95aca3e
commit 08c51473a7
5 files changed
+70 -14

No files matched your search

+4 -3
View File
@@ -6,6 +6,7 @@ use App\Models\Events;
use http\Env\Response; use http\Env\Response;
use Illuminate\Http\Request; use Illuminate\Http\Request;
use Illuminate\Http\JsonResponse; use Illuminate\Http\JsonResponse;
use Illuminate\Support\Facades\Gate;
use Illuminate\Support\Facades\Log; use Illuminate\Support\Facades\Log;
use PHPUnit\Event\Event; use PHPUnit\Event\Event;
@@ -13,7 +14,7 @@ class EventsController extends Controller
{ {
public function create(Request $request): JsonResponse public function create(Request $request): JsonResponse
{ {
if ($request->user()->role != 1) { if (Gate::denies('create', Events::class)) {
return response()->json(['message' => 'Forbidden'], 403); return response()->json(['message' => 'Forbidden'], 403);
} }
@@ -37,7 +38,7 @@ class EventsController extends Controller
public function update(Request $request, int $id): JsonResponse { public function update(Request $request, int $id): JsonResponse {
if ($request->user()->role != 1) { if (Gate::denies('update', Events::class)) {
return response()->json(['message' => 'Forbidden'], 403); return response()->json(['message' => 'Forbidden'], 403);
} }
@@ -76,7 +77,7 @@ class EventsController extends Controller
public function delete(Request $request, int $id): JsonResponse { public function delete(Request $request, int $id): JsonResponse {
if ($request->user()->role != 1) { if (Gate::denies('delete', Events::class)) {
return response()->json(['message' => 'Forbidden'], 403); return response()->json(['message' => 'Forbidden'], 403);
} }
+5 -11
View File
@@ -7,20 +7,14 @@ use App\Models\Task;
use App\Models\User; use App\Models\User;
use Illuminate\Http\JsonResponse; use Illuminate\Http\JsonResponse;
use Illuminate\Http\Request; use Illuminate\Http\Request;
use Illuminate\Support\Facades\Gate;
use Illuminate\Support\Facades\Log; use Illuminate\Support\Facades\Log;
class TasksController extends Controller class TasksController extends Controller
{ {
public function isAdmin(int $role) {
if($role != 1) return false;
return true;
}
public function create(Request $request): JsonResponse { public function create(Request $request): JsonResponse {
if(!$this->isAdmin($request->user()->role)){ if(Gate::denies('create', Task::class)) {
return response()->json(["message" => "Can't create task"], 403); return response()->json(["message" => "Can't create task"], 403);
} }
@@ -67,7 +61,7 @@ class TasksController extends Controller
public function assignUser(request $request, int $id): JsonResponse { public function assignUser(request $request, int $id): JsonResponse {
if(!$this->isAdmin($request->user()->role)){ if(Gate::denies('assignOther', Task::class)) {
return response()->json(["message" => "Can't create task"], 403); return response()->json(["message" => "Can't create task"], 403);
} }
@@ -108,7 +102,7 @@ class TasksController extends Controller
public function deleteTask(Request $request, int $id): JsonResponse { public function deleteTask(Request $request, int $id): JsonResponse {
if(!$this->isAdmin($request->user()->role)){ if(Gate::denies('delete', Task::class)) {
return response()->json(["message" => "Can't delete task"], 403); return response()->json(["message" => "Can't delete task"], 403);
} }
@@ -126,7 +120,7 @@ class TasksController extends Controller
public function update(Request $request, int $id): JsonResponse { public function update(Request $request, int $id): JsonResponse {
if(!$this->isAdmin($request->user()->role)){ if(Gate::denies('update', Task::class)) {
return response()->json(["message" => "Forbidden"], 403); return response()->json(["message" => "Forbidden"], 403);
} }
+25
View File
@@ -0,0 +1,25 @@
<?php
namespace App\Policies;
use App\Models\Events;
use App\Models\User;
use Illuminate\Auth\Access\Response;
class EventsPolicy
{
public function create(User $user, Events $model): bool
{
return $user->role === 1 || $user->role === 2;
}
public function update(User $user, Events $model): bool
{
return $user->role === 1 || $user->role === 2;
}
public function delete(User $user, Events $model): bool
{
return $user->role === 1 || $user->role === 2;
}
}
+30
View File
@@ -0,0 +1,30 @@
<?php
namespace App\Policies;
use App\Models\Task;
use App\Models\User;
use Illuminate\Auth\Access\Response;
class TasksPolicy
{
public function create(User $user, Task $model): bool
{
return $user->role === 1 || $user->role === 2;
}
public function assignOther(User $user, Task $model): bool
{
return $user->role === 1 || $user->role === 2;
}
public function delete(User $user, Task $model): bool
{
return $user->role === 1 || $user->role === 2;
}
public function update(User $user, Task $model): bool
{
return $user->role === 1 || $user->role === 2;
}
}
+6
View File
@@ -2,7 +2,11 @@
namespace App\Providers; namespace App\Providers;
use App\Models\Events;
use App\Models\Task;
use App\Models\User; use App\Models\User;
use App\Policies\EventsPolicy;
use App\Policies\TasksPolicy;
use App\Policies\UserPolicy; use App\Policies\UserPolicy;
use Illuminate\Support\Facades\Gate; use Illuminate\Support\Facades\Gate;
use Illuminate\Support\ServiceProvider; use Illuminate\Support\ServiceProvider;
@@ -23,5 +27,7 @@ class GateServiceProvider extends ServiceProvider
public function boot(): void public function boot(): void
{ {
Gate::policy(User::class, UserPolicy::class); Gate::policy(User::class, UserPolicy::class);
Gate::policy(Events::class, EventsPolicy::class);
Gate::policy(Task::class, TasksPolicy::class);
} }
} }