/** * @param CEvent $event * @return bool */ public function readPermissionSubscriptionOnAfterSave(CEvent $event) { if ($this->enabled) { if ($event->sender->getIsNewModel()) { if (get_class($event->sender) == 'Account') { ReadPermissionsSubscriptionUtil::updateAccountReadSubscriptionTableBasedOnBuildTable($event->sender->id); } else { ReadPermissionsSubscriptionUtil::addModelToReadSubscriptionTableByModelIdAndModelClassNameAndUser($event->sender->id, get_class($event->sender), $event->sender->owner); } } elseif (!$event->sender->getIsNewModel() && get_class($event->sender) == 'Account' && $event->sender->arePermissionsChanged()) { // When read permissions for account are changed, for example when group can access account ReadPermissionsSubscriptionUtil::updateAccountReadSubscriptionTableBasedOnBuildTable($event->sender->id); } } return true; }