php - symfony redirect user after authentication -


i have 2 bundles userbundle , xxxbundle. want after authenticating user in user bundle redirect xxxbundle. but, depending on roles (role_admin , role_user), redirect him 2 different routes (route1, route2).

i added controller userbundle

class securitycontroller extends controller {   public function loginaction()   {     if ($this->get('security.context')->isgranted('role_admin')) {       return $this->redirect($this->generateurl('route1'));      } if ($this->get('security.context')->isgranted('role_user')) {       return $this->redirect($this->generateurl('route2'));      }      $request = $this->getrequest();     $session = $request->getsession();      // on vérifie s'il y des erreurs d'une précédent soumission du formulaire     if ($request->attributes->has(securitycontext::authentication_error)) {       $error = $request->attributes->get(securitycontext::authentication_error);     } else {       $error = $session->get(securitycontext::authentication_error);       $session->remove(securitycontext::authentication_error);     }      return $this->render('userbundle:security:login.html.twig', array(       // valeur du précédent nom d'utilisateur rentré par l'internaute       'last_username' => $session->get(securitycontext::last_username),       'error'         => $error,     ));   } 

but, not give appropriate result: correct username , password, user redirected welcome symfony page. have explanation that?

i found in symfony documentation can control redirect login form using hiddden field follow:

{# src/acme/securitybundle/resources/views/security/login.html.twig #} {% if error %}     <div>{{ error.message }}</div> {% endif %}  <form action="{{ path('login_check') }}" method="post">     <label for="username">username:</label>     <input type="text" id="username" name="_username" value="{{ last_username }}" />      <label for="password">password:</label>     <input type="password" id="password" name="_password" />      <input type="hidden" name="_target_path" value="account" />      <input type="submit" name="login" /> </form> 

question : how parametrise route responsible user , admin.

use _target_path input field , direct authenticated user route controller you. inside controller check role of user , forward controller based upon that.


Comments

Popular posts from this blog

Why does Ruby on Rails generate add a blank line to the end of a file? -

keyboard - Smiles and long press feature in Android -

node.js - Bad Request - node js ajax post -