IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Symfony PHP Discussion :

Symfony - Accès admin par l'admin uniquement


Sujet :

Symfony PHP

Mode arborescent

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2020
    Messages
    119
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Juin 2020
    Messages : 119
    Par défaut Symfony - Accès admin par l'admin uniquement
    Bonjour,

    je suis en train de créer un blog avec symfony et je rencontre un petit soucis au niveau des droits admin. A la base chaque personne qui crée leur compte ont un rôle user obligatoire. Sauf que je peux quand même me connecter avec cet user dans mon espace admin... ce qui devrait normalement ne pas être possible.

    Dans mon phpmyadmin les rôles sont bien défini (voir photo), dans services.yaml je n'autorise que l'admin. je ne vois pas trop d'où ça peut venir...

    Nom : table.png
Affichages : 139
Taille : 12,7 Ko



    security.yaml :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
        access_control:
            # require ROLE_ADMIN for /admin*
            - { path: '^/admin', roles: ROLE_ADMIN }



    Entité User :
    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
     
     
        /**
         * @ORM\Column(type="json")
         */
        private $roles = [];
     
     /**
         * @see UserInterface
         */
        public function getRoles(): array
        {
            $roles = $this->roles;
            // guarantee every user at least has ROLE_USER
            $roles[] = 'ROLE_USER';
            $roles[] = 'ROLE_ADMIN';
     
            return array_unique($roles);
        }
     
        public function setRoles(array $roles): self
        {
            $this->roles = $roles;
     
            return $this;
        }
    Je vous montre au cas où le process pour enregistrer un user :

    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
     
        /**
         * register
         * @Route("/registration", name="registration")
         * @param  mixed $request
         * @param  mixed $entityManager
         * @param  mixed $passwordEncoder
         * @return Response
         */
        public function register(Request $request, EntityManagerInterface $entityManager, UserPasswordEncoderInterface $passwordEncoder): Response
        {
            //On construit le formulaire
            $user = new User();
            $form = $this->createForm(UserType::class, $user);
     
            //Gérer la soumision du formulaire (ne se passera que avec la méthode POST)
            $form->handleRequest($request);
            if($form->isSubmitted() && $form->isValid()) {
                //On encode le mot de passe
                $password = $passwordEncoder->encodePassword($user, $user->getPassword());
                $user->setPassword($password);
     
     
                //On donne un rôle user
                $user->setRoles(['user']);
     
                //Sauvegarder l'utilisateur
                $entityManager = $this->getDoctrine()->getManager();
                $entityManager->persist($user);
                $entityManager->flush();
     
                return $this->redirectToRoute('posts');
     
     
            }
     
            return new Response($this->twig->render('pages/registration.html.twig', [
                'form' => $form->createView()
            ]));
     
        }
    Merci pour votre aide
    Images attachées Images attachées   

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. TS: accès admin et protection des données
    Par marveljojo75 dans le forum Windows Serveur
    Réponses: 1
    Dernier message: 02/02/2010, 11h03
  2. EasyPHP : acces admin impossible/aléatoire
    Par polj dans le forum Administration
    Réponses: 2
    Dernier message: 29/09/2009, 10h03
  3. accès admin impossible
    Par *alexandre* dans le forum Glassfish et Payara
    Réponses: 3
    Dernier message: 10/03/2007, 23h43

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo