dbf0465b0a
Utilisateurs actifs/inactifs : - Migration : colonne is_active (boolean, default true) sur users - Middleware EnsureUserIsActive : déconnecte les utilisateurs désactivés sur chaque requête - LoginRequest : bloque la connexion si is_active=false (message explicite) - Admin : bouton Activer/Désactiver dans la liste et la page d'édition Protections : impossible de désactiver son propre compte ou le dernier admin actif - Badge « Inactif » + opacité réduite sur la ligne dans la liste admin - Sélection de membres (sources) : filtre is_active=true Sources liées aux sections : - Migration : colonne section_id nullable FK sur sources - Source::section() BelongsTo + Section::sources() HasMany - Formulaire sources/_form : sélecteur de section (sections de l'utilisateur ou toutes pour admin) - SourceController : passe les sections disponibles aux vues create/edit Tableau de bord enrichi (DashboardController) : - Membres et responsables : stats par section (sources par statut, total relevés) compteurs cliquables → liste filtrée, sources récentes de la section - Mes sources assignées (tri par urgence) + mes derniers relevés (inchangés) Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
30 lines
1.0 KiB
PHP
30 lines
1.0 KiB
PHP
<?php
|
|
|
|
namespace App\Http\Requests;
|
|
|
|
use Illuminate\Foundation\Http\FormRequest;
|
|
|
|
class StoreSourceRequest extends FormRequest
|
|
{
|
|
public function authorize(): bool
|
|
{
|
|
return $this->user()->isSectionManager();
|
|
}
|
|
|
|
public function rules(): array
|
|
{
|
|
return [
|
|
'nom' => ['required', 'string', 'max:255'],
|
|
'description' => ['nullable', 'string'],
|
|
'source_type_id' => ['required', 'integer', 'exists:source_types,id'],
|
|
'depot_id' => ['nullable', 'integer', 'exists:depots,id'],
|
|
'section_id' => ['nullable', 'integer', 'exists:sections,id'],
|
|
'lieu_id' => ['nullable', 'integer', 'exists:lieux,id'],
|
|
'annee_debut' => ['nullable', 'integer', 'min:1000', 'max:2100'],
|
|
'annee_fin' => ['nullable', 'integer', 'min:1000', 'max:2100', 'gte:annee_debut'],
|
|
'cote' => ['nullable', 'string', 'max:255'],
|
|
'auteur' => ['nullable', 'string', 'max:255'],
|
|
];
|
|
}
|
|
}
|