1
我已經使用自制的LDAP控制器完全設置了FOSUserBundle,該控制器允許用戶使用他們已經存在的Active Directory登錄進行登錄。從管理面板(Symfony2和FOSUserBundle)編輯用戶角色
我想要的是允許管理員從後端編輯任何用戶角色。任何想法我可以做到這一點? (我不想使用SonataBundle)。
我已經取得的FormType:
public function buildForm(FormBuilderInterface $builder, array $options)
{
$permissions = array(
'ROLE_USER' => 'Aucun droit',
'ROLE_CONSULT' => 'Consultation',
'ROLE_SUPER_ADMIN' => 'Administrateur'
);
$builder
->add(
'id',
'entity',
array(
'class' => 'MainBundle:Users',
'property' => 'displayName',
'label' => 'Choisir l\'utilisateur',
'attr' => array(
'class' => "select2"
)
)
)
->add(
'role',
'choice',
array(
'label' => 'Rôle à attribuer',
'choices' => $permissions,
'attr' => array(
'class' => "select2"
)
)
)
->add(
'save',
'submit',
array(
'label' => 'Sauvegarder',
'attr' => array(
'class' => 'btn'
)
)
);
}
和控制器,這是我真的不知道,因爲我不知道什麼時候選擇指定的用戶編輯:
public function editUserAction(Request $request)
{
$request = $this->container->get('request');
$editUser = $this->getDoctrine()->getRepository('MainBundle:Users')->findAll();
$formEditUser = $this->createForm(new ChangeUserRoleType(), $editUser);
$formEditUser->handleRequest($request);
if ($formEditUser->isValid()) {
$em = $this->getDoctrine()->getManager();
$em->persist($editUser);
$em->flush();
return $this->render(
'ReportingAdminBundle:Admin:index.html.twig',
array(
'editUserForm' => $formEditUser->createView()
)
);
}
return $this->render(
'ReportingAdminBundle:Admin:index.html.twig',
array(
'editUserForm' => $formEditUser->createView()
)
);
}
首先在你的代碼中,$ editUser包含的是集合而不是一個特定的用戶,你應該使用 - > find($ id),並且$ id應該在請求的參數 – 2015-03-19 11:09:58
是的,這就是我的想法。但是,我怎麼用一種形式做到這一點?有什麼辦法嗎? – Anthony 2015-03-19 11:12:51