Merge branch 'dev' into 'main'
Dev See merge request sae-but2/2025-26/gestion-benevoles-association/backend!21
This commit is contained in:
+1
-1
@@ -79,4 +79,4 @@ VITE_APP_NAME="${APP_NAME}"
|
|||||||
SANCTUM_STATEFUL_DOMAINS=localhost,127.0.0.1,localhost:8000
|
SANCTUM_STATEFUL_DOMAINS=localhost,127.0.0.1,localhost:8000
|
||||||
|
|
||||||
TYPESENSE_CONNECTION=typesense
|
TYPESENSE_CONNECTION=typesense
|
||||||
TYPESENSE_API_KEY=y^sB$f%qlhfHSy%&jknAXabWNkZcvguCyARRqW5rE%%QG6H8ehA2ehVlhPWS555D
|
TYPESENSE_API_KEY=xyz
|
||||||
|
|||||||
@@ -153,6 +153,9 @@ class SearchController extends Controller
|
|||||||
// ignore si la collection n'existe pas
|
// ignore si la collection n'existe pas
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
$this->createUsersCollection();
|
||||||
|
|
||||||
$this->indexUsers();
|
$this->indexUsers();
|
||||||
$query = $request->input('query', '');
|
$query = $request->input('query', '');
|
||||||
|
|
||||||
|
|||||||
@@ -58,7 +58,6 @@ class UserController extends Controller
|
|||||||
}
|
}
|
||||||
|
|
||||||
public function delete(Request $request): JsonResponse {
|
public function delete(Request $request): JsonResponse {
|
||||||
|
|
||||||
try {
|
try {
|
||||||
$user = User::find($request->user()->id);
|
$user = User::find($request->user()->id);
|
||||||
$user->delete();
|
$user->delete();
|
||||||
@@ -69,6 +68,19 @@ class UserController extends Controller
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public function getUser(Request $request, int $id): JsonResponse {
|
||||||
|
|
||||||
|
try {
|
||||||
|
return response()->json(UserService::getData($id));
|
||||||
|
} catch (ModelNotFoundException $e) {
|
||||||
|
return response()->json(['message' => 'Utilisateur non trouvé'], 404);
|
||||||
|
} catch (\Exception $e) {
|
||||||
|
Log::info($e->getMessage());
|
||||||
|
return response()->json(['message' => "Server error"], 500);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
public function deleteById(Request $request, int $id): JsonResponse {
|
public function deleteById(Request $request, int $id): JsonResponse {
|
||||||
|
|
||||||
if(Gate::denies('deleteOther', $request->user())){
|
if(Gate::denies('deleteOther', $request->user())){
|
||||||
@@ -86,10 +98,17 @@ class UserController extends Controller
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public function getUser(Request $request, int $id): JsonResponse {
|
public function deactivate(Request $request, int $id): JsonResponse {
|
||||||
|
$userToDeactivate = User::findOrFail($id);
|
||||||
|
|
||||||
|
if(Gate::denies('deactivate', $userToDeactivate)){
|
||||||
|
return response()->json(["message" => "Can't delete this user"], 403);
|
||||||
|
}
|
||||||
|
|
||||||
try {
|
try {
|
||||||
return response()->json(UserService::getData($id));
|
$userToDeactivate->update(['validate' => 0]);
|
||||||
|
|
||||||
|
return response()->json(['message' => 'User deactivated successfully']);
|
||||||
} catch (ModelNotFoundException $e) {
|
} catch (ModelNotFoundException $e) {
|
||||||
return response()->json(['message' => 'Utilisateur non trouvé'], 404);
|
return response()->json(['message' => 'Utilisateur non trouvé'], 404);
|
||||||
} catch (\Exception $e) {
|
} catch (\Exception $e) {
|
||||||
|
|||||||
@@ -9,7 +9,14 @@ class UsersPolicy
|
|||||||
{
|
{
|
||||||
public function deleteOther(User $user): bool
|
public function deleteOther(User $user): bool
|
||||||
{
|
{
|
||||||
return $user->role === 1;
|
return $user->role === 1 || $user->role === 2;
|
||||||
|
}
|
||||||
|
|
||||||
|
public function deactivate(User $user, User $userToDeactivate): bool
|
||||||
|
{
|
||||||
|
return in_array($user->role, [1, 2])
|
||||||
|
&& $user->role < $userToDeactivate->role
|
||||||
|
&& $user->id !== $userToDeactivate->id;
|
||||||
}
|
}
|
||||||
|
|
||||||
public function validate(User $user): bool
|
public function validate(User $user): bool
|
||||||
|
|||||||
@@ -15,7 +15,7 @@ class UserService
|
|||||||
"lastname" => $user->lastname,
|
"lastname" => $user->lastname,
|
||||||
"email" => $user->email,
|
"email" => $user->email,
|
||||||
"role" => GetRole::getRole($user->role),
|
"role" => GetRole::getRole($user->role),
|
||||||
"isAdmin" => $user->role === 1,
|
"isAdmin" => ($user->role === 1 || $user->role === 2),
|
||||||
"phone" => $user->phone,
|
"phone" => $user->phone,
|
||||||
"created_at" => $user->created_at,
|
"created_at" => $user->created_at,
|
||||||
"updated_at" => $user->updated_at,
|
"updated_at" => $user->updated_at,
|
||||||
|
|||||||
@@ -46,8 +46,8 @@ services:
|
|||||||
- "8108:8108"
|
- "8108:8108"
|
||||||
volumes:
|
volumes:
|
||||||
- typesense-data:/data
|
- typesense-data:/data
|
||||||
command: '--data-dir /data --api-key= --enable-cors'
|
command: '--data-dir /data --api-key=xyz --enable-cors'
|
||||||
|
|
||||||
backup:
|
backup:
|
||||||
build:
|
build:
|
||||||
context: .
|
context: .
|
||||||
|
|||||||
@@ -13,6 +13,9 @@ Route::middleware(['web', 'auth:sanctum'])->delete('/users', [UserController::cl
|
|||||||
Route::middleware(['web', 'auth:sanctum'])->delete('/users/{id}', [UserController::class, "deleteById"])
|
Route::middleware(['web', 'auth:sanctum'])->delete('/users/{id}', [UserController::class, "deleteById"])
|
||||||
->whereNumber('id');
|
->whereNumber('id');
|
||||||
|
|
||||||
|
Route::middleware(['web', 'auth:sanctum'])->post('/users/{id}/deactivate', [UserController::class, "deactivate"])
|
||||||
|
->whereNumber('id');
|
||||||
|
|
||||||
Route::middleware(['web', 'auth:sanctum'])->get('/users/{id}', [UserController::class, "getUser"])
|
Route::middleware(['web', 'auth:sanctum'])->get('/users/{id}', [UserController::class, "getUser"])
|
||||||
->whereNumber('id');
|
->whereNumber('id');
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user