Bonjour,
J'utilise Laravel-permission de Spatie pour gérer mes rôles et permissions. Mais j'ai un problème de conception pour le rôle du membre bannis (puis de l'implémentation de code). En ce qui me concerne, j'aimerai redirigé automatiquement le membre bannis vers une page spéciale bannis.
Est-ce la bonne façon de voir le rôle du banni ou vous feriez autrement ?
Je ne parle pas du fait que le membre n'aura qu'à recréer un compte pour tenter de passer outre, sauf avec diverses comparaisons (ip identiques, cookies .. ?).
Pour finir, si on part sur ma conception de rediriger systématiquement sur une page spécifique, par où l'implémenter ? Je n'arrive pas à trouver le point d'entré où faire cette vérification générale sans tomber dans une boucle (redirection impossible).
Sur le lien donné plus haut, il préconise de faire :
<?php
// Catching role and permission failures
// If you want to override the default 403 response, you can catch the UnauthorizedException using your app's exception handler:
public function render($request, Exception $exception)
{
if ($exception instanceof \Spatie\Permission\Exceptions\UnauthorizedException) {
// Code here ...
}
return parent::render($request, $exception);
}
J'ai tenté de mettre throw UnauthorizedException::forRoles('banished'); à la place de Code here ci-dessus.
Pour trouver le rôle du membre banni, je doit utiliser ceci : Auth::user()->hasRole('banished').
J'ai tenté un middleware dans le $middlewareGroups web.. Bref, je galère un peu à concevoir surtout, si c'est la bonne chose à faire.