Initial commit: Import existing Laravel project
This commit is contained in:
49
app/Policies/HardwarePolicy.php
Normal file
49
app/Policies/HardwarePolicy.php
Normal file
@@ -0,0 +1,49 @@
|
||||
<?php
|
||||
|
||||
namespace App\Policies;
|
||||
|
||||
use App\Models\Hardware;
|
||||
use App\Models\User;
|
||||
|
||||
class HardwarePolicy
|
||||
{
|
||||
/**
|
||||
* Determine whether the user can view any models.
|
||||
*/
|
||||
public function viewAny(User $user): bool
|
||||
{
|
||||
return true; // Tous les agents connectés peuvent voir la liste du matériel
|
||||
}
|
||||
|
||||
/**
|
||||
* Determine whether the user can view the model.
|
||||
*/
|
||||
public function view(User $user, Hardware $hardware): bool
|
||||
{
|
||||
return true; // Tous les agents connectés peuvent voir les détails d'un équipement
|
||||
}
|
||||
|
||||
/**
|
||||
* Determine whether the user can create models.
|
||||
*/
|
||||
public function create(User $user): bool
|
||||
{
|
||||
return true; // Sylvain, Kévin et Jérémy peuvent enregistrer du matériel
|
||||
}
|
||||
|
||||
/**
|
||||
* Determine whether the user can update the model.
|
||||
*/
|
||||
public function update(User $user, Hardware $hardware): bool
|
||||
{
|
||||
return true; // Tous les agents du service technique peuvent modifier une fiche matériel
|
||||
}
|
||||
|
||||
/**
|
||||
* Determine whether the user can delete the model.
|
||||
*/
|
||||
public function delete(User $user, Hardware $hardware): bool
|
||||
{
|
||||
return true; // Tous les agents du service technique peuvent supprimer un équipement
|
||||
}
|
||||
}
|
||||
77
app/Policies/OrderPolicy.php
Normal file
77
app/Policies/OrderPolicy.php
Normal file
@@ -0,0 +1,77 @@
|
||||
<?php
|
||||
|
||||
namespace App\Policies;
|
||||
|
||||
use App\Models\Order;
|
||||
use App\Models\User;
|
||||
use Illuminate\Auth\Access\Response;
|
||||
|
||||
class OrderPolicy
|
||||
{
|
||||
/**
|
||||
* Determine whether the user can view any models.
|
||||
*/
|
||||
public function viewAny(User $user): bool
|
||||
{
|
||||
return true; // Tous les agents authentifiés peuvent lister les commandes
|
||||
}
|
||||
|
||||
/**
|
||||
* Determine whether the user can view the model.
|
||||
*/
|
||||
public function view(User $user, Order $order): bool
|
||||
{
|
||||
return true; // Tous les agents authentifiés peuvent voir le détail d'une commande
|
||||
}
|
||||
|
||||
/**
|
||||
* Determine whether the user can create models.
|
||||
*/
|
||||
public function create(User $user): bool
|
||||
{
|
||||
return true; // Sylvain, Kévin et le chef de service peuvent créer des demandes (brouillons)
|
||||
}
|
||||
|
||||
/**
|
||||
* Determine whether the user can update the model.
|
||||
*/
|
||||
public function update(User $user, Order $order): bool
|
||||
{
|
||||
// Si la commande est encore au statut Brouillon, tout le monde peut la modifier
|
||||
if ($order->status === 'draft') {
|
||||
return true;
|
||||
}
|
||||
|
||||
// Si elle est validée ou plus loin dans le cycle, seul le chef de service peut la modifier
|
||||
return $user->isChefService();
|
||||
}
|
||||
|
||||
/**
|
||||
* Determine whether the user can delete the model.
|
||||
*/
|
||||
public function delete(User $user, Order $order): bool
|
||||
{
|
||||
// Seul le chef de service peut supprimer une commande
|
||||
return $user->isChefService();
|
||||
}
|
||||
|
||||
/**
|
||||
* Détermine si l'utilisateur peut effectuer une transition spécifique.
|
||||
*/
|
||||
public function transition(User $user, Order $order, string $newStatus): bool
|
||||
{
|
||||
if ($newStatus === 'validated') {
|
||||
// Seul le chef de service peut valider un brouillon
|
||||
return $user->isChefService();
|
||||
}
|
||||
|
||||
if ($newStatus === 'closed') {
|
||||
// Seul le chef de service peut clôturer / archiver le dossier
|
||||
return $user->isChefService();
|
||||
}
|
||||
|
||||
// Pour les autres transitions (validated -> ordered et ordered -> delivered),
|
||||
// tout agent connecté peut l'effectuer (réception de colis, transmission au fournisseur)
|
||||
return true;
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user