acl()->delete($this->entity); } elseif ($visibility === Visibility::PUBLIC) { $object->acl()->update($this->entity, Acl::ROLE_READER); } } public function determineVisibility(StorageObject $object): string { try { $acl = $object->acl()->get(['entity' => 'allUsers']); } catch (NotFoundException $exception) { return Visibility::PRIVATE; } return $acl['role'] === Acl::ROLE_READER ? Visibility::PUBLIC : Visibility::PRIVATE; } public function visibilityToPredefinedAcl(string $visibility): string { switch ($visibility) { case Visibility::PUBLIC: return $this->predefinedPublicAcl; case self::NO_PREDEFINED_VISIBILITY: return self::NO_PREDEFINED_VISIBILITY; default: return $this->predefinedPrivateAcl; } } }