Viem, že táto otázka bola položená už skôr, ale janeviem, či to bolo konkrétne požiadané o CakePHP 2.0.x. S komponentom ACL som teraz nemohol nájsť žiadne informácie o tom, či sú používatelia súčasťou viacerých skupín. Teraz nie je možné používať komponent ACL s CakePHP 1.3.x, pretože ma to zmiatlo. Ak je to ale teraz by som ho rád používal, takže koleso nevymýšľam vlastným vyvalením. Akákoľvek pomoc by bola ocenená.
odpovede:
0 pre odpoveď č. 1Predtým som to netestoval ani nepoužíval, ale dokážem si predstaviť jeden spôsob:
Mať User
model a Group
model, a User HATBM Group
ako poznamenáva Shaz Amjad.
V okamihu, keď robíte kontrolu prístupu, načítajte zoznam všetkých skupín, do ktorých užívateľ patrí (pravdepodobne pomocou bindModel).
Potom niečo ako:
$permits = array();
foreach ($thisUsersGroups as $group) {
$permits[] = $this->Acl->check($group, "myclass", "update")
}
ak $permits
obsahuje najmenej jednu true
, mali by byť povolené.
Môže existovať lepší alebo automatickejší spôsob, ako to urobiť, ale v zásade nechápem, čo by to nemalo fungovať.