chore: durcit la configuration pour la production
- mobile: externalise l'URL d'API via EXPO_PUBLIC_API_URL (repli localhost en dev) - backend: .env.example adapté au projet (PostgreSQL, JWT, FRONTEND_URL, Redis) - frontend/mobile: ajoute .env.example (+ exception gitignore front) - mobile: supprime les 4 `any` (helper getApiError, type Feed, glyphMap Ionicons) - backend: normalise le style PSR-12 via Pint (13 fichiers) Tests backend 15/15, mobile tsc 0, Pint pass. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -12,7 +12,7 @@ class AdminEmotionController extends Controller
|
||||
public function index(): JsonResponse
|
||||
{
|
||||
$emotions = Emotion::niveau(1)
|
||||
->with(['enfants' => fn($q) => $q->orderBy('nom')])
|
||||
->with(['enfants' => fn ($q) => $q->orderBy('nom')])
|
||||
->orderBy('nom')
|
||||
->get();
|
||||
|
||||
|
||||
@@ -39,7 +39,7 @@ class AdminFeedController extends Controller
|
||||
$feed = Feed::findOrFail($id);
|
||||
$data = $request->validated();
|
||||
|
||||
if (isset($data['titre']) && !isset($data['slug'])) {
|
||||
if (isset($data['titre']) && ! isset($data['slug'])) {
|
||||
$data['slug'] = Str::slug($data['titre']);
|
||||
}
|
||||
|
||||
|
||||
@@ -3,9 +3,8 @@
|
||||
namespace App\Http\Controllers\Admin;
|
||||
|
||||
use App\Http\Controllers\Controller;
|
||||
use App\Models\Utilisateur;
|
||||
use App\Models\Role;
|
||||
use App\Models\Tracker;
|
||||
use App\Models\Utilisateur;
|
||||
use Illuminate\Http\JsonResponse;
|
||||
use Illuminate\Http\Request;
|
||||
|
||||
@@ -19,13 +18,13 @@ class AdminUtilisateurController extends Controller
|
||||
$search = $request->search;
|
||||
$query->where(function ($q) use ($search) {
|
||||
$q->where('nom', 'like', "%{$search}%")
|
||||
->orWhere('prenom', 'like', "%{$search}%")
|
||||
->orWhere('email', 'like', "%{$search}%");
|
||||
->orWhere('prenom', 'like', "%{$search}%")
|
||||
->orWhere('email', 'like', "%{$search}%");
|
||||
});
|
||||
}
|
||||
|
||||
if ($request->filled('role')) {
|
||||
$query->whereHas('role', fn($q) => $q->where('nom', $request->role));
|
||||
$query->whereHas('role', fn ($q) => $q->where('nom', $request->role));
|
||||
}
|
||||
|
||||
$utilisateurs = $query->orderBy('created_at', 'desc')->paginate(15);
|
||||
@@ -88,7 +87,7 @@ class AdminUtilisateurController extends Controller
|
||||
public function toggleActive(int $id): JsonResponse
|
||||
{
|
||||
$utilisateur = Utilisateur::findOrFail($id);
|
||||
$utilisateur->update(['est_actif' => !$utilisateur->est_actif]);
|
||||
$utilisateur->update(['est_actif' => ! $utilisateur->est_actif]);
|
||||
|
||||
return response()->json([
|
||||
'message' => $utilisateur->est_actif ? 'Compte activé' : 'Compte désactivé',
|
||||
|
||||
@@ -2,11 +2,11 @@
|
||||
|
||||
namespace App\Http\Controllers;
|
||||
|
||||
use App\Http\Requests\RegisterRequest;
|
||||
use App\Http\Requests\LoginRequest;
|
||||
use App\Models\Utilisateur;
|
||||
use App\Http\Requests\RegisterRequest;
|
||||
use App\Models\Role;
|
||||
use App\Models\Tracker;
|
||||
use App\Models\Utilisateur;
|
||||
use Illuminate\Http\JsonResponse;
|
||||
use Tymon\JWTAuth\Facades\JWTAuth;
|
||||
|
||||
@@ -44,7 +44,7 @@ class AuthController extends Controller
|
||||
{
|
||||
$credentials = $request->only('email', 'password');
|
||||
|
||||
if (!$token = auth()->attempt($credentials)) {
|
||||
if (! $token = auth()->attempt($credentials)) {
|
||||
return response()->json([
|
||||
'message' => 'Identifiants incorrects',
|
||||
], 401);
|
||||
@@ -52,8 +52,9 @@ class AuthController extends Controller
|
||||
|
||||
$utilisateur = auth()->user();
|
||||
|
||||
if (!$utilisateur->est_actif) {
|
||||
if (! $utilisateur->est_actif) {
|
||||
auth()->logout();
|
||||
|
||||
return response()->json([
|
||||
'message' => 'Votre compte a été désactivé',
|
||||
], 403);
|
||||
|
||||
@@ -35,7 +35,7 @@ class ProfilController extends Controller
|
||||
{
|
||||
$utilisateur = auth()->user();
|
||||
|
||||
if (!Hash::check($request->ancien_mot_de_passe, $utilisateur->password)) {
|
||||
if (! Hash::check($request->ancien_mot_de_passe, $utilisateur->password)) {
|
||||
return response()->json([
|
||||
'message' => 'L\'ancien mot de passe est incorrect',
|
||||
], 422);
|
||||
|
||||
@@ -3,7 +3,6 @@
|
||||
namespace App\Http\Controllers;
|
||||
|
||||
use App\Http\Requests\StoreSaisieRequest;
|
||||
use App\Models\SaisieTracker;
|
||||
use App\Services\RapportService;
|
||||
use Illuminate\Http\JsonResponse;
|
||||
use Illuminate\Http\Request;
|
||||
@@ -14,7 +13,7 @@ class SaisieTrackerController extends Controller
|
||||
{
|
||||
$tracker = auth()->user()->tracker;
|
||||
|
||||
if (!$tracker) {
|
||||
if (! $tracker) {
|
||||
return response()->json([]);
|
||||
}
|
||||
|
||||
@@ -39,7 +38,7 @@ class SaisieTrackerController extends Controller
|
||||
{
|
||||
$tracker = auth()->user()->tracker;
|
||||
|
||||
if (!$tracker) {
|
||||
if (! $tracker) {
|
||||
$tracker = auth()->user()->tracker()->create(['nom' => 'Mon journal']);
|
||||
}
|
||||
|
||||
|
||||
@@ -4,10 +4,10 @@ namespace App\Http\Middleware;
|
||||
|
||||
use Closure;
|
||||
use Illuminate\Http\Request;
|
||||
use Tymon\JWTAuth\Facades\JWTAuth;
|
||||
use Tymon\JWTAuth\Exceptions\JWTException;
|
||||
use Tymon\JWTAuth\Exceptions\TokenExpiredException;
|
||||
use Tymon\JWTAuth\Exceptions\TokenInvalidException;
|
||||
use Tymon\JWTAuth\Exceptions\JWTException;
|
||||
use Tymon\JWTAuth\Facades\JWTAuth;
|
||||
|
||||
class JwtMiddleware
|
||||
{
|
||||
|
||||
@@ -11,7 +11,7 @@ class RoleMiddleware
|
||||
{
|
||||
$user = auth()->user();
|
||||
|
||||
if (!$user || !$user->role || !in_array($user->role->nom, $roles)) {
|
||||
if (! $user || ! $user->role || ! in_array($user->role->nom, $roles)) {
|
||||
return response()->json(['message' => 'Accès non autorisé'], 403);
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user