add TasksPolicy and EventsPolicy
This commit is contained in:
1 parent
a0e95aca3e
commit
08c51473a7
5 files changed
+70
-14
No files matched your search
@@ -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);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -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);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -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;
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -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;
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -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);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
Reference in new issue
Block a user