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 : Sélectionner tout - Visualiser dans une fenêtre à part
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 : Sélectionner tout - Visualiser dans une fenêtre à part
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);   
 
        }
 
    }