Beispiel #1
0
 public function postSave(PropelPDO $con = null)
 {
     if ($this->permissionItemIdsChanged) {
         $currentPermissions = PermissionToPermissionItemPeer::retrieveByPermissionId($this->getId());
         $currentPermissionsItemIds = array_map(function ($element) {
             return $element->getPermissionItemId();
         }, $currentPermissions);
         // Remove old permissions
         $permissionsItemsToRemove = array_diff($currentPermissionsItemIds, $this->permissionItemIds);
         $this->deletePermissionItems($permissionsItemsToRemove);
         // Add new permissions
         $permissionsItemsToAdd = array_diff($this->permissionItemIds, $currentPermissionsItemIds);
         foreach ($permissionsItemsToAdd as $itemId) {
             if (!is_null($itemId) && $itemId !== '') {
                 $permissionToPermissionItem = new PermissionToPermissionItem();
                 $permissionToPermissionItem->setPermissionItemId($itemId);
                 $permissionToPermissionItem->setPermissionId($this->getId());
                 $permissionToPermissionItem->save();
             }
         }
     }
     $this->permissionItemIds = null;
     $this->permissionItemIdsChanged = false;
     return parent::postSave($con);
 }