[SYMFONY2] problème de mise à jours ACL & ACE
Bonjour,
Comment faire pour permettre à mon compte admin de faire une mise à jours des ACL et ACE , pour qu'il affecte un certain Acces Controle à un utilisateur spécifique lors d'un ajout ou edition d'une entité USER et aprés le submit?
voici ce que j'ai fait , mais le problème que cela ne fonctionne pas :/
Code:
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
|
$adm = $em->getRepository('AppappBundle:admin')->findOneBy(array('username' => $this->getUser()->getUsername()));
$form = $this->createForm(new adminType($securityContext), $adm);
$form->handleRequest($req);
$a = $adm->getSociete();
if ($form->isValid()) {
$em = $this->getDoctrine()->getManager();
$adm->setRoles($adm->getRoles());
$adm->setToken(md5(uniqid(mt_rand(), true)));
$adm->setPassword(hash("sha512", $adm->getPassword()));
$em->persist($adm);
$em->flush();
$provider = $this->container->get('security.acl.provider');
$acl = $provider->findAcl(ObjectIdentity::fromDomainObject($a));
$securityId = UserSecurityIdentity::fromAccount($adm);
foreach($acl->getObjectAces() as $ace) {
if ($ace->getSecurityIdentity()->equals($securityId)) {
$maskBuilder = new MaskBuilder($ace->getMask());
$maskBuilder->remove(MaskBuilder::MASK_EDIT);
$ace->setMask($maskBuilder->get());
break;
}
}
$provider->updateAcl($acl); |
Merci d'avnce.