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 :/
Merci d'avnce.
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 $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);
Partager