Bonjour bonjour !
J'ai suivi un tuto pour avoir des noms de roles d'authentification, gérés dynamiquement : http://php-and-symfony.matthiasnoback.nl/2012/07/symfony2-security-creating-dynamic-roles-using-roleinterface/
Concrètement, j'ai une classe User et une classe Usertype.
En Usertype, je peux avoir : Admin, Secretariat, Utilisateur.
tous mes users ont un usertype_id, qui me permet d'identifier leur rôle.
J'ai donc fait ça, en adaptant le tuto :
class UserDependentRole implements RoleInterface
{
private $user;
public function __construct(UserInterface $user)
{
$this->user = $user;
}
public function getRole()
{
$user=$this->user;
$usert=$user->getUsertype()->getName();
$usertype= mb_strtoupper($usert);
return "ROLE_".$usertype;
}
}
Mais je me retrouve face à un bug incompréhensible !
Quand je fais tourner ce code, j'ai une erreur : "impossible d'appliquer getName() à un non-objet.
Du coupe, j'ai testé ça :
class UserDependentRole implements RoleInterface
{
private $user;
public function __construct(UserInterface $user)
{
$this->user = $user;
}
public function getRole()
{
$user=$this->user;
$usert=$user->getUsertype()->getName();
$usertype= mb_strtoupper($usert);
echo $usertype;
die();
return "ROLE_".$usertype;
}
}
Et là ?????? il m'affiche bien le nom de l'usertype en question ! Il considère donc bien que c'est un objet.
Est-ce que vous pouvez m'aider à comprendre cette erreur.
Par avance merci !
Nans
Il semblerait que mettre des protected dans mes propriétés dans les classes permettent de faire fonctionner ce truc... mais 1 seul fois,... après j'ai de nouveau l'erreur !