コード例 #1
0
 public function saveGroupAccess($connection, $entity, $groupIds)
 {
     //todo verify relations
     $groupIds = array_values(array_unique($groupIds, SORT_REGULAR));
     $entityTypeObj = ECP\EntityTypeQuery::create()->filterByName($this->entityType)->findOne();
     $entityId = $entity->getId();
     $groupAccessEntities = ECP\GroupAccessQuery::create()->filterByEntityId($entityId)->filterByEntityType($entityTypeObj)->find();
     $existingGroups = array();
     foreach ($groupAccessEntities as $groupAccessEntity) {
         $groupId = $groupAccessEntity->getGroupId();
         if (in_array($groupId, $groupIds)) {
             $existingGroups[] = $groupId;
         } else {
             $groupAccessEntity->delete($connection);
         }
     }
     foreach ($groupIds as $groupId) {
         if (!in_array($groupId, $existingGroups)) {
             $groupAccessEntity = new ECP\GroupAccess();
             $groupAccessEntity->setEntityType($entityTypeObj);
             $groupAccessEntity->setEntityId($entityId);
             $groupAccessEntity->setGroupId($groupId);
             $groupAccessEntity->save($connection);
         }
     }
 }
コード例 #2
0
 /**
  * @param ChildGroupAccess $groupAccess The ChildGroupAccess object to add.
  */
 protected function doAddGroupAccess(ChildGroupAccess $groupAccess)
 {
     $this->collGroupAccesses[] = $groupAccess;
     $groupAccess->setEntityType($this);
 }