Bonjour/Bonsoir,
J'essaie en vain de mettre en place une nouvelle condition pour les loggins (en plus du pseudo et du password, le user doit également avoir son champ "enabled" sur true : c'est l'admin qui l'active) . Donc en suivant la doc j'ai créé un fichier UserChecker.php
j'ai ajouté le chemin de ce fichier dans mon security.yaml come ceci :
Et enfin j'ai créée cette nouvelle exception "AccountDisabledException" dans ce même dossier "Security" comme ceci :
Où me suis je planté ??
ps : il fallait juste remplacer "enabled" par getEnabled() .. et ça marche nickel (par contre j'ai pas le message "Votre compte est désactivé." )
Modifié par moko (08 Mar 2020 - 01:39)
J'essaie en vain de mettre en place une nouvelle condition pour les loggins (en plus du pseudo et du password, le user doit également avoir son champ "enabled" sur true : c'est l'admin qui l'active) . Donc en suivant la doc j'ai créé un fichier UserChecker.php
<?php
namespace App\Security;
use App\Security\AccountDisabledException;
use App\Entity\User as AppUser;
use Symfony\Component\Security\Core\Exception\AccountExpiredException;
use Symfony\Component\Security\Core\User\UserCheckerInterface;
use Symfony\Component\Security\Core\User\UserInterface;
class UserChecker implements UserCheckerInterface
{
public function checkPreAuth(UserInterface $user)
{
if (!$user instanceof AppUser) {
return;
}
// L’utilisateur n’est pas activé par l’administrateur
if (!$user->enabled()) {
throw new AccountDisabledException();
}
}
public function checkPostAuth(UserInterface $user)
{
}
}
dans un sous dossier "Security" que j'ai créé dans le dossier src. j'ai ajouté le chemin de ce fichier dans mon security.yaml come ceci :
firewalls:
main:
anonymous: true
provider : in_database
user_checker: App\Security\UserChecker
Et enfin j'ai créée cette nouvelle exception "AccountDisabledException" dans ce même dossier "Security" comme ceci :
<?php
namespace App\Security;
use Symfony\Component\Security\Core\Exception\AccountStatusException;
class AccountDisabledException extends AccountStatusException
{
/**
* {@inheritdoc}
*/
public function getMessageKey()
{
return 'Votre compte est désactivé.';
}
}
Où me suis je planté ??
ps : il fallait juste remplacer "enabled" par getEnabled() .. et ça marche nickel (par contre j'ai pas le message "Votre compte est désactivé." )
Modifié par moko (08 Mar 2020 - 01:39)