Bonjour à tous,

Je vous écris parce que malgrès mes efforts je ne trouve pas de solutions pour intégrer un systéme de banissement dans mon espace membre sous Symfony.

J'ai tout bétement créer dans les entités un champ "ban" qui sera de 0 si le membre n'est pas bani et de 1 si il l'est.

#[ORM\Column]
private ?int $ban = null;

    public function getBan(): ?int
{
    return $this->ban;
}

public function setBan(int $ban): static
{
    $this->ban = $ban;

    return $this;
}

Pour ce qui est du "login" :

public function index(AuthenticationUtils $authenticationUtils): Response {
// get the login error if there is one
$error = $authenticationUtils->getLastAuthenticationError();

// last username entered by the user
$lastUsername = $authenticationUtils->getLastUsername();

return $this->render('login/index.html.twig', [
    'last_username' => $lastUsername,
    'error'         => $error,
]);

}

J'ai fait plusieurs tentatives sous différentes approches mais rien n'y fait... C'est pour ca que je m'en remets à vous...

En vous remerciant,

Luti.

2 réponses


luti
Auteur
Réponse acceptée

Bonjour,

Au finale j'ai choisi d'aller vérifier si l'utilisateur qui cherche à se loguer est ban ou pas directement dans la BDD.

En effet je n'ai pas réussi à utiliser le "getBan" comme tu me l'avais conseillé...

Je sais pas si c'est la meilleure facon de faire ce que je recherchais mais bon ca fait le taf !

Merci pour le coup de pouce en tout cas ! :)

Salut,

Conseil :
Tu peux pour ta propriété utilisé un boolean au lieu d'utiliser un integer.

Comment faire pour le banissement :
Il faut simplement faire une condition et retourner une erreur

if (user-getBan()){
throws new Exception()
}

Pour aller un peu plus loin et avoir quelque de plus propre tu peux suivre la documentaiton symfony et utiliser les voters
https://symfony.com/doc/current/security/voters.html