/** * @param ProfileEvent $event */ public function updateModuleAccess(ProfileEvent $event) { if (null !== ($profile = ProfileQuery::create()->findPk($event->getId()))) { ProfileModuleQuery::create()->filterByProfileId($event->getId())->delete(); foreach ($event->getModuleAccess() as $moduleCode => $accesses) { $manager = new AccessManager(0); $manager->build($accesses); $profileModule = new ProfileModule(); $profileModule->setProfileId($event->getId())->setModule(ModuleQuery::create()->findOneByCode($moduleCode))->setAccess($manager->getAccessValue()); $profileModule->save(); } $event->setProfile($profile); } }