ugrás a tartalomhoz

Symfony2 - ACL kiegészítés

DarkHcK · 2015. Jún. 22. (H), 10.18
Sziasztok!

Olyan problémába futottam, bele amire nem találok megoldást. Symfony2 ACL listát szeretném kiegészíteni új ACE objektumokkal, viszont mikor az AclProvider -től lekérem a listát, akkor nincs benne az insertObjectAce metódus, amivel hozzá tudnék adni új bejegyzést.

Ha törlöm és újból létrehozom a domain objektumhoz a listát, akkor elérhető.
Van valami megoldás arra, hogy ne kelljen törölni, hanem simán hozzá tudjak adni?

Jelenleg így néz ki:

$aclProvider        = $this->getAclProvider();
$objectIdentity     = ObjectIdentity::fromDomainObject($domainObject);
$acl                = $aclProvider->findAcl($objectIdentity);
$objectAces         = $acl->getObjectAces();

// Itt még nem érhető el az insertObjectAce metódus az $acl -ből


$aclProvider->deleteAcl($objectIdentity);
$acl = $aclProvider->createAcl($objectIdentity);

// Itt viszont már elérhető az insertObjectAce metódus

// Visszatöltjük az eredeti acl -t
foreach($objectAces as $objectAce)
{
	/* @var $objectAce \Symfony\Component\Security\Acl\Domain\Entry */
	$mask = $objectAce->getMask();
	$securityIdentity = $objectAce->getSecurityIdentity();
	$acl->insertObjectAce($securityIdentity, $mask);
}

// További ObjectAce hozzáadása
 
1

Nincs benne, vagy csak IDE nem írja ki?

Práger Ádám · 2015. Jún. 22. (H), 11.40
Nincs benne, vagy csak IDE nem írja ki? findAcl AclInterfacet ad vissza, amiben nincs benne, viszont a default implementáció sfben az Auditable interfacet implementálja, amiben már ottvan (Mutable által).
2

Valóban

DarkHcK · 2015. Jún. 22. (H), 14.15
Valóban megette annak ellenére, hogy findAcl -el kapott "listára" hívtam meg az insertObjectAce -t. Köszönöm :)
3

Nincs mit :) Azért egy

Práger Ádám · 2015. Jún. 22. (H), 18.57
Nincs mit :) Azért egy checket rakj bele, hátha változik az implementáció... meg a következő fejlesztő ne káromkodjon nagyokat :D

if (!$acl instanceof MutableAclInterface) {
throw new \Exception('Not implemented');
}
4

Validáció

DarkHcK · 2015. Jún. 23. (K), 08.25
Köszi szépen. A biztonság kedvéért beleraktam.