在我的用户中有ADMIN和AUTEUR角色,当我尝试访问需要这些角色的页面时,我有这样的错误:
表达式“has_role('ROLE_AUTEUR')”拒绝访问。 403禁止
用户在bd中的“角色”字段:
a:2:{i:0;s:10:"ROLE_ADMIN";i:1;s:11:"ROLE_AUTEUR";}
security.yml
role_hierarchy:
# app/config/security.yml
ROLE_ADMIN: [ROLE_AUTEUR, ROLE_MODERATEUR] # Un admin hérite des droits d'auteur et de modérateur
ROLE_SUPER_ADMIN: [ROLE_ADMIN, ROLE_ALLOWED_TO_SWITCH] # On garde ce rôle superadmin, il nous resservira par la suite
控制器:
/**
* @Security("has_role('ROLE_AUTEUR')")
*/
public function addAction(Request $request) {
/* METHODE SECURITY avec SECURITY.CONTEXT
*
// On vérifie que l'utilisateur dispose bien du rôle ROLE_AUTEUR
if (!$this->get('security.context')->isGranted('ROLE_AUTEUR')) {
// Sinon on déclenche une exception « Accès interdit »
throw new AccessDeniedException('Accès limité aux auteurs.');
}
*/
$advert = new Advert ();
// VERSION LONGUE
// $form = $this->get('form.factory')->create(new AdvertType(), $advert);
$form = $this->createForm ( new AdvertType (), $advert );
if ($form->handleRequest ( $request )->isValid ()) {
$em = $this->getDoctrine ()->getManager ();
$em->persist ( $advert );
$em->flush ();
$request->getSession ()->getFlashBag ()->add ( 'notice', 'Annonce bien enregistrée.' );
return $this->redirect ( $this->generateUrl ( 'oc_platform_view', array (
'id' => $advert->getId ()
) ) );
}
return $this->render ( 'OCPlatformBundle:Advert:add.html.twig', array (
'form' => $form->createView ()
) );
}
有什么想法吗?