id === $entity->id; } 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'); } }