Gestion utilisateur Symfony2
J'ai un problème avec la gestion des roles utilisateur.Le problème je veux que seul l'administrateur peut accéder à la page admin aprés une authentification, la fonction "GetRole()" dans l'entity retourne "ROLE_ADMIN". La page admin toujours inaccessible
mon fichier security.yml
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29
| security:
encoders:
entity_admin:
class: amine\ProjetBundle\Entity\Admin
algorithm: plaintext
iterations: 1
encode_as_base64: false
providers:
chain_provider:
providers: [entity_admin]
entity_admin:
entity:
class: Amine\ProjetBundle\Entity\Admin
firewalls:
secured_area:
pattern: /.*
anonymous: ~
form_login:
check_path: /login_check
login_path: /login
username_parameter: _username
password_parameter: _password
logout:
path: /logout
target: /
access_control:
- { path: ^/login, roles: IS_AUTHENTICATED_ANONYMOUSLY }
- { path: ^/admin, roles: ROLE_ADMIN} |
mon fichier Admin.php (Entity)
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137
| <?php
namespace Amine\ProjetBundle\Entity;
use Doctrine\ORM\Mapping as ORM;
use Symfony\Component\Security\Core\User\UserInterface;
/**
* Amine\ProjetBundle\Entity\Admin
*
* @ORM\Table(name="admin")
* @ORM\Entity(repositoryClass="Amine\ProjetBundle\Entity\AdminRepository")
* @ORM\HasLifecycleCallbacks()
*/
class Admin implements UserInterface, \Serializable {
/**
* @var integer $id
*
* @ORM\Column(name="id", type="integer", nullable=false)
* @ORM\Id
* @ORM\GeneratedValue(strategy="IDENTITY")
*/
private $id;
/**
* @var string $motPasse
*
* @ORM\Column(name="motPasse", type="string", length=30, nullable=true)
*/
private $motPasse;
/**
*@var string $login
* @ORM\Column(name="login", type="string", length=30, nullable=true)
*/
private $login;
/**
* Fonction lié à l'authentification Symfony 2.0
* @author amine
* @return string The password
*/
function getPassword() {
return $this->motPasse;
}
/**
* Fonction lié à l'authentification Symfony 2.0
* @author amine
* @return string The salt
*/
function getSalt() {
return '';
}
/**
* Fonction lié à l'authentification Symfony 2.0
* @author amine
* @return string The usernam
*/
function getUsername() {
return $this->login;
}
/**
* Fonction lié à l'authentification Symfony 2.0
* @author amine
* @return void
*/
function eraseCredentials() {
$this->mot_de_passe = '';
}
/**
* Fonction lié à l'authentification Symfony 2.0
* @author amine
* @return Boolean
*/
function equals(UserInterface $user) {
return ($user->getUsername() == $this->getUsername());
}
/**
* Fonction lié à l'authentification Symfony 2.0
* @author amine
*/
public function serialize() {
return serialize(array($this->getUsername()));
}
/**
* Fonction lié à l'authentification Symfony 2.0
* @return string
*/
function getRoles() {
return array('ROLE_ADMIN');
}
/**
* Fonction lié à l'authentification Symfony 2.0
* @return string
*/
function getCurrentRoleText() {
return 'ROLE_ADMIN';
}
/**
* Recherche de nom de courtier en texte
* @return string
*/
function getTitreConnectionText() {
return 'ADMINISTRATEUR';
}
/**
* Get id
*
* @return integer
*/
public function getId()
{
return $this->id;
}
/**
* Set motPasse
*
* @param string $motPasse
*/
public function setMotPasse($motPasse)
{
$this->motPasse = $motPasse;
}
/**
* Get motPasse
*
* @return string
*/
public function getMotPasse()
{
return $this->motPasse;
}
public function unserialize($serialized) {
list( $this->id) = unserialize($serialized);
}
} |