id === $entity->id; } public function checkEntityRead(EntityUser $user, Entity $entity, $data) { if (!$user->isAdmin() && $entity->isPortal()) { if ($this->getAclManager()->get($user, 'portalPermission') === 'yes') { return true; } } return $this->checkEntity($user, $entity, $data, 'read'); } public function checkEntityCreate(EntityUser $user, Entity $entity, $data) { if (!$user->isAdmin()) { return false; } if ($entity->isSuperAdmin() && !$user->isSuperAdmin()) { return false; } return $this->checkEntity($user, $entity, $data, 'create'); } public function checkEntityDelete(EntityUser $user, Entity $entity, $data) { if ($entity->id === 'system') { return false; } if (!$user->isAdmin()) { return false; } if ($entity->isSystem()) { return false; } if ($entity->isSuperAdmin() && !$user->isSuperAdmin()) { return false; } return parent::checkEntityDelete($user, $entity, $data); } public function checkEntityEdit(EntityUser $user, Entity $entity, $data) { if ($entity->id === 'system') { return false; } if ($entity->isSystem()) { return false; } if (!$user->isAdmin()) { if ($user->id !== $entity->id) { return false; } } if ($entity->isSuperAdmin() && !$user->isSuperAdmin()) { return false; } return $this->checkEntity($user, $entity, $data, 'edit'); } }