add gates for users routes

This commit is contained in:
2025-12-17 16:14:19 +01:00
parent ae81344fe2
commit 4c3647fe30
5 changed files with 49 additions and 7 deletions
+3 -1
View File
@@ -2,7 +2,9 @@
namespace App\Http\Controllers;
use Illuminate\Foundation\Auth\Access\AuthorizesRequests;
abstract class Controller
{
//
use AuthorizesRequests;
}
+7 -1
View File
@@ -68,6 +68,12 @@ class SearchController extends Controller
public function searchEvents(Request $request)
{
try {
try {
$this->client->collections['events']->delete();
} catch (\Exception $e) {
// ignore si la collection n'existe pas
}
$this->createEventsCollection();
$this->indexEvents();
$query = $request->input('query', '');
@@ -141,13 +147,13 @@ class SearchController extends Controller
public function searchUsers(Request $request)
{
try {
$this->authorize('searchUsers');
try {
$this->client->collections['users']->delete();
} catch (\Exception $e) {
// ignore si la collection n'existe pas
}
$this->createUsersCollection();
$this->indexUsers();
$query = $request->input('query', '');
+2 -5
View File
@@ -14,13 +14,9 @@ use Propaganistas\LaravelPhone\PhoneNumber;
class UserController extends Controller
{
public function isAdmin(int $role) {
if($role != 1 && $role != 2) return false;
return true;
}
public function me(Request $request): JsonResponse {
try {
$this->authorize('me');
return response()->json(UserService::getData($request->user()->id));
} catch(\Exception $e) {
Log::info($e->getMessage());
@@ -191,6 +187,7 @@ class UserController extends Controller
public function getUserTasks(Request $request): JsonResponse {
try {
$this->authorize('getUserTasks');
return response()->json(['data' => $request->user()->tasks]);
} catch (\Exception $e) {
Log::info($e->getMessage());
+36
View File
@@ -0,0 +1,36 @@
<?php
namespace App\Providers;
use App\Models\User;
use Illuminate\Support\Facades\Gate;
use Illuminate\Support\ServiceProvider;
class GateServiceProvider extends ServiceProvider
{
/**
* Register services.
*/
public function register(): void
{
//
}
/**
* Bootstrap services.
*/
public function boot(): void
{
Gate::define('me', function (User $user) {
return true;
});
Gate::define('getUserTasks', function (User $user) {
return true;
});
Gate::define('searchUsers', function (User $user) {
return true;
});
}
}
+1
View File
@@ -2,4 +2,5 @@
return [
App\Providers\AppServiceProvider::class,
App\Providers\GateServiceProvider::class,
];