Skip to content

Commit

Permalink
Respect VisibilityConstraints priliveleges
Browse files Browse the repository at this point in the history
  • Loading branch information
bwaidelich committed Oct 25, 2024
1 parent f7dfbba commit f8c9527
Show file tree
Hide file tree
Showing 7 changed files with 24 additions and 39 deletions.
6 changes: 1 addition & 5 deletions Classes/Application/ReloadNodes/ReloadNodesQueryHandler.php
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,6 @@
use Neos\ContentRepository\Core\Projection\ContentGraph\Filter\FindChildNodesFilter;
use Neos\ContentRepository\Core\Projection\ContentGraph\Filter\NodeType\NodeTypeCriteria;
use Neos\ContentRepository\Core\Projection\ContentGraph\Node;
use Neos\ContentRepository\Core\Projection\ContentGraph\VisibilityConstraints;
use Neos\ContentRepository\Core\SharedModel\Node\NodeAddress;
use Neos\ContentRepositoryRegistry\ContentRepositoryRegistry;
use Neos\Flow\Annotations as Flow;
Expand Down Expand Up @@ -51,10 +50,7 @@ public function handle(ReloadNodesQuery $query, ActionRequest $actionRequest): R
{
$contentRepository = $this->contentRepositoryRegistry
->get($query->contentRepositoryId);
$subgraph = $contentRepository->getContentGraph($query->workspaceName)->getSubgraph(
$query->dimensionSpacePoint,
VisibilityConstraints::withoutRestrictions()
);
$subgraph = $contentRepository->getContentSubgraph($query->workspaceName, $query->dimensionSpacePoint);
$baseNodeTypeConstraints = NodeTypeCriteria::fromFilterString($this->baseNodeType);

$documentNode = $subgraph->findNodeById($query->documentId);
Expand Down
5 changes: 2 additions & 3 deletions Classes/Application/SyncWorkspace/ConflictsBuilder.php
Original file line number Diff line number Diff line change
Expand Up @@ -37,7 +37,6 @@
use Neos\ContentRepository\Core\Projection\ContentGraph\Filter\FindClosestNodeFilter;
use Neos\ContentRepository\Core\Projection\ContentGraph\Node;
use Neos\ContentRepository\Core\Projection\ContentGraph\NodeAggregate;
use Neos\ContentRepository\Core\Projection\ContentGraph\VisibilityConstraints;
use Neos\ContentRepository\Core\SharedModel\Exception\NodeAggregateCurrentlyDoesNotExist;
use Neos\ContentRepository\Core\SharedModel\Exception\WorkspaceDoesNotExist;
use Neos\ContentRepository\Core\SharedModel\Node\NodeAggregateId;
Expand Down Expand Up @@ -223,9 +222,9 @@ private function acquireSubgraphFromCommand(
return null;
}

return $contentGraph->getSubgraph(
return $this->contentRepository->getContentSubgraph(
$this->workspaceName,
$dimensionSpacePoint,
VisibilityConstraints::withoutRestrictions()
);
}

Expand Down
6 changes: 1 addition & 5 deletions Classes/ContentRepository/Service/NeosUiNodeService.php
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,6 @@


use Neos\ContentRepository\Core\Projection\ContentGraph\Node;
use Neos\ContentRepository\Core\Projection\ContentGraph\VisibilityConstraints;
use Neos\ContentRepository\Core\SharedModel\Node\NodeAddress;
use Neos\ContentRepositoryRegistry\ContentRepositoryRegistry;
use Neos\Flow\Annotations as Flow;
Expand All @@ -32,10 +31,7 @@ public function findNodeBySerializedNodeAddress(string $serializedNodeAddress):
$nodeAddress = NodeAddress::fromJsonString($serializedNodeAddress);
$contentRepository = $this->contentRepositoryRegistry->get($nodeAddress->contentRepositoryId);

$subgraph = $contentRepository->getContentGraph($nodeAddress->workspaceName)->getSubgraph(
$nodeAddress->dimensionSpacePoint,
VisibilityConstraints::withoutRestrictions()
);
$subgraph = $contentRepository->getContentSubgraph($nodeAddress->workspaceName, $nodeAddress->dimensionSpacePoint);
return $subgraph->findNodeById($nodeAddress->aggregateId);
}
}
5 changes: 2 additions & 3 deletions Classes/ContentRepository/Service/WorkspaceService.php
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,6 @@

use Neos\ContentRepository\Core\Projection\ContentGraph\Filter\FindClosestNodeFilter;
use Neos\ContentRepository\Core\Projection\ContentGraph\Node;
use Neos\ContentRepository\Core\Projection\ContentGraph\VisibilityConstraints;
use Neos\ContentRepository\Core\SharedModel\ContentRepository\ContentRepositoryId;
use Neos\ContentRepository\Core\SharedModel\Node\NodeAddress;
use Neos\ContentRepository\Core\SharedModel\Workspace\WorkspaceName;
Expand Down Expand Up @@ -92,9 +91,9 @@ public function getPublishableNodeInfo(WorkspaceName $workspaceName, ContentRepo
}

foreach ($originDimensionSpacePoints as $originDimensionSpacePoint) {
$subgraph = $contentGraph->getSubgraph(
$subgraph = $contentRepository->getContentSubgraph(
$workspaceName,
$originDimensionSpacePoint->toDimensionSpacePoint(),
VisibilityConstraints::withoutRestrictions()
);
$node = $subgraph->findNodeById($change->nodeAggregateId);
if ($node instanceof Node) {
Expand Down
14 changes: 6 additions & 8 deletions Classes/Controller/BackendController.php
Original file line number Diff line number Diff line change
Expand Up @@ -13,8 +13,6 @@
*/

use Neos\ContentRepository\Core\Feature\SubtreeTagging\Dto\SubtreeTag;
use Neos\ContentRepository\Core\Projection\ContentGraph\VisibilityConstraints;
use Neos\ContentRepository\Core\SharedModel\Exception\WorkspaceDoesNotExist;
use Neos\ContentRepository\Core\SharedModel\Node\NodeAddress;
use Neos\ContentRepositoryRegistry\ContentRepositoryRegistry;
use Neos\Flow\Annotations as Flow;
Expand Down Expand Up @@ -151,9 +149,9 @@ public function indexAction(string $node = null)
$rootDimensionSpacePoints = $contentRepository->getVariationGraph()->getRootGeneralizations();
$arbitraryRootDimensionSpacePoint = array_shift($rootDimensionSpacePoints);

$subgraph = $contentGraph->getSubgraph(
$nodeAddress ? $nodeAddress->dimensionSpacePoint : $arbitraryRootDimensionSpacePoint,
VisibilityConstraints::withoutRestrictions()
$subgraph = $contentRepository->getContentSubgraph(
$workspace->workspaceName,
$nodeAddress->dimensionSpacePoint ?? $arbitraryRootDimensionSpacePoint,
);

// we assume that the ROOT node is always stored in the CR as "physical" node; so it is safe
Expand Down Expand Up @@ -222,9 +220,9 @@ public function redirectToAction(string $node): void

$contentRepository = $this->contentRepositoryRegistry->get($nodeAddress->contentRepositoryId);

$nodeInstance = $contentRepository->getContentGraph($nodeAddress->workspaceName)->getSubgraph(
$nodeAddress->dimensionSpacePoint,
VisibilityConstraints::withoutRestrictions()
$nodeInstance = $contentRepository->getContentSubgraph(
$nodeAddress->workspaceName,
$nodeAddress->dimensionSpacePoint
)->findNodeById($nodeAddress->aggregateId);

$workspace = $contentRepository->findWorkspaceByName($nodeAddress->workspaceName);
Expand Down
22 changes: 10 additions & 12 deletions Classes/Controller/BackendServiceController.php
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,6 @@
use Neos\ContentRepository\Core\DimensionSpace\DimensionSpacePoint;
use Neos\ContentRepository\Core\Feature\WorkspaceModification\Exception\WorkspaceIsNotEmptyException;
use Neos\ContentRepository\Core\Feature\WorkspaceRebase\Dto\RebaseErrorHandlingStrategy;
use Neos\ContentRepository\Core\Projection\ContentGraph\VisibilityConstraints;
use Neos\ContentRepository\Core\SharedModel\Exception\NodeAggregateCurrentlyDoesNotExist;
use Neos\ContentRepository\Core\SharedModel\Exception\NodeAggregateDoesCurrentlyNotCoverDimensionSpacePoint;
use Neos\ContentRepository\Core\SharedModel\Node\NodeAddress;
Expand Down Expand Up @@ -451,11 +450,10 @@ public function changeBaseWorkspaceAction(string $targetWorkspaceName, string $d
}

$contentRepository = $this->contentRepositoryRegistry->get($documentNodeAddress->contentRepositoryId);
$subgraph = $contentRepository->getContentGraph($userWorkspace->workspaceName)
->getSubgraph(
$command->documentNode->dimensionSpacePoint,
VisibilityConstraints::withoutRestrictions()
);
$subgraph = $contentRepository->getContentSubgraph(
$userWorkspace->workspaceName,
$command->documentNode->dimensionSpacePoint,
);

$documentNodeInstance = $subgraph->findNodeById($command->documentNode->aggregateId);
assert($documentNodeInstance !== null);
Expand Down Expand Up @@ -579,9 +577,9 @@ public function getAdditionalNodeMetadataAction(array $nodes): void
foreach ($nodes as $nodeAddressString) {
$nodeAddress = NodeAddress::fromJsonString($nodeAddressString);
$contentRepository = $this->contentRepositoryRegistry->get($nodeAddress->contentRepositoryId);
$subgraph = $contentRepository->getContentGraph($nodeAddress->workspaceName)->getSubgraph(
$subgraph = $contentRepository->getContentSubgraph(
$nodeAddress->workspaceName,
$nodeAddress->dimensionSpacePoint,
VisibilityConstraints::withoutRestrictions()
);
$node = $subgraph->findNodeById($nodeAddress->aggregateId);

Expand Down Expand Up @@ -623,9 +621,9 @@ public function getPolicyInformationAction(array $nodes): void
$result = [];
foreach ($nodes as $nodeAddress) {
$contentRepository = $this->contentRepositoryRegistry->get($nodeAddress->contentRepositoryId);
$subgraph = $contentRepository->getContentGraph($nodeAddress->workspaceName)->getSubgraph(
$subgraph = $contentRepository->getContentSubgraph(
$nodeAddress->workspaceName,
$nodeAddress->dimensionSpacePoint,
VisibilityConstraints::withoutRestrictions()
);
$node = $subgraph->findNodeById($nodeAddress->aggregateId);
if (!is_null($node)) {
Expand Down Expand Up @@ -704,9 +702,9 @@ public function generateUriPathSegmentAction(string $contextNode, string $text):
{
$contextNodeAddress = NodeAddress::fromJsonString($contextNode);
$contentRepository = $this->contentRepositoryRegistry->get($contextNodeAddress->contentRepositoryId);
$subgraph = $contentRepository->getContentGraph($contextNodeAddress->workspaceName)->getSubgraph(
$subgraph = $contentRepository->getContentSubgraph(
$contextNodeAddress->workspaceName,
$contextNodeAddress->dimensionSpacePoint,
VisibilityConstraints::withoutRestrictions()
);
$contextNode = $subgraph->findNodeById($contextNodeAddress->aggregateId);

Expand Down
5 changes: 2 additions & 3 deletions Classes/Domain/Model/Changes/CopyAfter.php
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,6 @@

use Neos\ContentRepository\Core\DimensionSpace\OriginDimensionSpacePoint;
use Neos\ContentRepository\Core\Feature\NodeDuplication\Command\CopyNodesRecursively;
use Neos\ContentRepository\Core\Projection\ContentGraph\VisibilityConstraints;

/**
* @internal These objects internally reflect possible operations made by the Neos.Ui.
Expand Down Expand Up @@ -64,9 +63,9 @@ public function apply(): void

$contentRepository = $this->contentRepositoryRegistry->get($subject->contentRepositoryId);
$command = CopyNodesRecursively::createFromSubgraphAndStartNode(
$contentRepository->getContentGraph($subject->workspaceName)->getSubgraph(
$contentRepository->getContentSubgraph(
$subject->workspaceName,
$subject->dimensionSpacePoint,
VisibilityConstraints::withoutRestrictions()
),
$subject->workspaceName,
$subject,
Expand Down

0 comments on commit f8c9527

Please sign in to comment.