Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 3 additions & 2 deletions src/Service/Search/SearchService/AbstractSearchHelper.php
Original file line number Diff line number Diff line change
Expand Up @@ -46,7 +46,8 @@ public function __construct(
public function addSearchRestrictions(
SearchInterface $search,
string $userPermission,
string $workspaceType
string $workspaceType,
PermissionTypes $permissionType = PermissionTypes::LIST
): SearchInterface {
$user = $search->getUser();
if (!$user) {
Expand All @@ -58,7 +59,7 @@ public function addSearchRestrictions(
$search->addModifier(new WorkspaceQuery(
$workspaceType,
$user,
PermissionTypes::LIST->value
$permissionType->value
));
}

Expand Down
12 changes: 8 additions & 4 deletions src/Service/Search/SearchService/Asset/AssetSearchService.php
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,7 @@
namespace Pimcore\Bundle\GenericDataIndexBundle\Service\Search\SearchService\Asset;

use Exception;
use Pimcore\Bundle\GenericDataIndexBundle\Enum\Permission\PermissionTypes;
use Pimcore\Bundle\GenericDataIndexBundle\Enum\Permission\UserPermissionTypes;
use Pimcore\Bundle\GenericDataIndexBundle\Exception\AssetSearchException;
use Pimcore\Bundle\GenericDataIndexBundle\Model\Search\Asset\SearchResult\AssetSearchResult;
Expand Down Expand Up @@ -47,12 +48,15 @@ public function __construct(
/**
* @throws AssetSearchException
*/
public function search(SearchInterface $assetSearch): AssetSearchResult
{
public function search(
SearchInterface $assetSearch,
PermissionTypes $permissionType = PermissionTypes::LIST
): AssetSearchResult {
$assetSearch = $this->searchHelper->addSearchRestrictions(
search: $assetSearch,
userPermission: UserPermissionTypes::ASSETS->value,
workspaceType: AssetWorkspace::WORKSPACE_TYPE
workspaceType: AssetWorkspace::WORKSPACE_TYPE,
permissionType: $permissionType
);

$searchResult = $this->searchHelper->performSearch(
Expand Down Expand Up @@ -124,6 +128,6 @@ private function searchAssetById(int $id, ?User $user = null): ?AssetSearchResul
$assetSearch->setUser($user);
}

return $this->search($assetSearch)->getItems()[0] ?? null;
return $this->search($assetSearch, PermissionTypes::VIEW)->getItems()[0] ?? null;
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,7 @@

namespace Pimcore\Bundle\GenericDataIndexBundle\Service\Search\SearchService\Asset;

use Pimcore\Bundle\GenericDataIndexBundle\Enum\Permission\PermissionTypes;
use Pimcore\Bundle\GenericDataIndexBundle\Exception\AssetSearchException;
use Pimcore\Bundle\GenericDataIndexBundle\Model\Search\Asset\SearchResult\AssetSearchResult;
use Pimcore\Bundle\GenericDataIndexBundle\Model\Search\Asset\SearchResult\AssetSearchResultItem;
Expand All @@ -27,7 +28,10 @@ interface AssetSearchServiceInterface
/**
* @throws AssetSearchException
*/
public function search(SearchInterface $assetSearch): AssetSearchResult;
public function search(
SearchInterface $assetSearch,
PermissionTypes $permissionType = PermissionTypes::LIST
): AssetSearchResult;

/**
* @throws AssetSearchException
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,7 @@
namespace Pimcore\Bundle\GenericDataIndexBundle\Service\Search\SearchService\DataObject;

use Exception;
use Pimcore\Bundle\GenericDataIndexBundle\Enum\Permission\PermissionTypes;
use Pimcore\Bundle\GenericDataIndexBundle\Enum\Permission\UserPermissionTypes;
use Pimcore\Bundle\GenericDataIndexBundle\Enum\SearchIndex\IndexName;
use Pimcore\Bundle\GenericDataIndexBundle\Exception\DataObjectSearchException;
Expand Down Expand Up @@ -48,14 +49,17 @@ public function __construct(
/**
* @throws DataObjectSearchException
*/
public function search(DataObjectSearchInterface $dataObjectSearch): DataObjectSearchResult
{
public function search(
DataObjectSearchInterface $dataObjectSearch,
PermissionTypes $permissionType = PermissionTypes::LIST
): DataObjectSearchResult {
$indexContext = $dataObjectSearch->getClassDefinition() ?: IndexName::DATA_OBJECT->value;

$search = $this->searchHelper->addSearchRestrictions(
search: $dataObjectSearch,
userPermission: UserPermissionTypes::OBJECTS->value,
workspaceType: DataObjectWorkspace::WORKSPACE_TYPE
workspaceType: DataObjectWorkspace::WORKSPACE_TYPE,
permissionType: $permissionType
);

$searchResult = $this->searchHelper->performSearch(
Expand Down Expand Up @@ -127,6 +131,6 @@ private function searchObjectById(int $id, ?User $user = null): ?DataObjectSearc
$dataObjectSearch->setUser($user);
}

return $this->search($dataObjectSearch)->getItems()[0] ?? null;
return $this->search($dataObjectSearch, PermissionTypes::VIEW)->getItems()[0] ?? null;
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,7 @@

namespace Pimcore\Bundle\GenericDataIndexBundle\Service\Search\SearchService\DataObject;

use Pimcore\Bundle\GenericDataIndexBundle\Enum\Permission\PermissionTypes;
use Pimcore\Bundle\GenericDataIndexBundle\Exception\DataObjectSearchException;
use Pimcore\Bundle\GenericDataIndexBundle\Model\Search\DataObject\DataObjectSearchInterface;
use Pimcore\Bundle\GenericDataIndexBundle\Model\Search\DataObject\SearchResult\DataObjectSearchResult;
Expand All @@ -27,7 +28,10 @@ interface DataObjectSearchServiceInterface
/**
* @throws DataObjectSearchException
*/
public function search(DataObjectSearchInterface $dataObjectSearch): DataObjectSearchResult;
public function search(
DataObjectSearchInterface $dataObjectSearch,
PermissionTypes $permissionType = PermissionTypes::LIST
): DataObjectSearchResult;

/**
* @throws DataObjectSearchException
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,7 @@
namespace Pimcore\Bundle\GenericDataIndexBundle\Service\Search\SearchService\Document;

use Exception;
use Pimcore\Bundle\GenericDataIndexBundle\Enum\Permission\PermissionTypes;
use Pimcore\Bundle\GenericDataIndexBundle\Enum\Permission\UserPermissionTypes;
use Pimcore\Bundle\GenericDataIndexBundle\Exception\DocumentSearchException;
use Pimcore\Bundle\GenericDataIndexBundle\Model\Search\Document\SearchResult\DocumentSearchResult;
Expand Down Expand Up @@ -47,12 +48,15 @@ public function __construct(
/**
* @throws DocumentSearchException
*/
public function search(SearchInterface $documentSearch): DocumentSearchResult
{
public function search(
SearchInterface $documentSearch,
PermissionTypes $permissionType = PermissionTypes::LIST
): DocumentSearchResult {
$documentSearch = $this->searchHelper->addSearchRestrictions(
search: $documentSearch,
userPermission: UserPermissionTypes::DOCUMENTS->value,
workspaceType: DocumentWorkspace::WORKSPACE_TYPE
workspaceType: DocumentWorkspace::WORKSPACE_TYPE,
permissionType: $permissionType
);

$searchResult = $this->searchHelper->performSearch(
Expand Down Expand Up @@ -124,6 +128,6 @@ private function searchDocumentById(int $id, ?User $user = null): ?DocumentSearc
$documentSearch->setUser($user);
}

return $this->search($documentSearch)->getItems()[0] ?? null;
return $this->search($documentSearch, PermissionTypes::VIEW)->getItems()[0] ?? null;
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,7 @@

namespace Pimcore\Bundle\GenericDataIndexBundle\Service\Search\SearchService\Document;

use Pimcore\Bundle\GenericDataIndexBundle\Enum\Permission\PermissionTypes;
use Pimcore\Bundle\GenericDataIndexBundle\Exception\DocumentSearchException;
use Pimcore\Bundle\GenericDataIndexBundle\Model\Search\Document\SearchResult\DocumentSearchResult;
use Pimcore\Bundle\GenericDataIndexBundle\Model\Search\Document\SearchResult\DocumentSearchResultItem;
Expand All @@ -27,7 +28,10 @@ interface DocumentSearchServiceInterface
/**
* @throws DocumentSearchException
*/
public function search(SearchInterface $documentSearch): DocumentSearchResult;
public function search(
SearchInterface $documentSearch,
PermissionTypes $permissionType = PermissionTypes::LIST
): DocumentSearchResult;

/**
* @throws DocumentSearchException
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,7 @@

namespace Pimcore\Bundle\GenericDataIndexBundle\Service\Search\SearchService\Element;

use Pimcore\Bundle\GenericDataIndexBundle\Enum\Permission\PermissionTypes;
use Pimcore\Bundle\GenericDataIndexBundle\Model\Search\Interfaces\AdapterSearchInterface;
use Pimcore\Bundle\GenericDataIndexBundle\Model\Search\Interfaces\SearchInterface;
use Pimcore\Bundle\GenericDataIndexBundle\Model\SearchIndexAdapter\SearchResult;
Expand All @@ -25,7 +26,10 @@
*/
interface ElementSearchHelperInterface
{
public function addSearchRestrictions(SearchInterface $search): SearchInterface;
public function addSearchRestrictions(
SearchInterface $search,
PermissionTypes $permissionType = PermissionTypes::LIST
): SearchInterface;

public function performSearch(SearchInterface $search, string $indexName): SearchResult;

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,7 @@
namespace Pimcore\Bundle\GenericDataIndexBundle\Service\Search\SearchService\Element;

use Exception;
use Pimcore\Bundle\GenericDataIndexBundle\Enum\Permission\PermissionTypes;
use Pimcore\Bundle\GenericDataIndexBundle\Enum\SearchIndex\ElementType;
use Pimcore\Bundle\GenericDataIndexBundle\Exception\ElementSearchException;
use Pimcore\Bundle\GenericDataIndexBundle\Model\Search\Element\SearchResult\ElementSearchResult;
Expand Down Expand Up @@ -44,9 +45,11 @@ public function __construct(
) {
}

public function search(SearchInterface $elementSearch): ElementSearchResult
{
$elementSearch = $this->searchHelper->addSearchRestrictions($elementSearch);
public function search(
SearchInterface $elementSearch,
PermissionTypes $permissionType = PermissionTypes::LIST
): ElementSearchResult {
$elementSearch = $this->searchHelper->addSearchRestrictions($elementSearch, $permissionType);

$searchResult = $this->searchHelper->performSearch(
$elementSearch,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,7 @@

namespace Pimcore\Bundle\GenericDataIndexBundle\Service\Search\SearchService\Element;

use Pimcore\Bundle\GenericDataIndexBundle\Enum\Permission\PermissionTypes;
use Pimcore\Bundle\GenericDataIndexBundle\Enum\SearchIndex\ElementType;
use Pimcore\Bundle\GenericDataIndexBundle\Exception\ElementSearchException;
use Pimcore\Bundle\GenericDataIndexBundle\Model\Search\Element\SearchResult\ElementSearchResult;
Expand All @@ -28,7 +29,10 @@ interface ElementSearchServiceInterface
/**
* @throws ElementSearchException
*/
public function search(SearchInterface $elementSearch): ElementSearchResult;
public function search(
SearchInterface $elementSearch,
PermissionTypes $permissionType = PermissionTypes::LIST
): ElementSearchResult;

/**
* @throws ElementSearchException
Expand Down
8 changes: 5 additions & 3 deletions src/Service/Search/SearchService/Element/SearchHelper.php
Original file line number Diff line number Diff line change
Expand Up @@ -45,8 +45,10 @@ public function __construct(
) {
}

public function addSearchRestrictions(SearchInterface $search): SearchInterface
{
public function addSearchRestrictions(
SearchInterface $search,
PermissionTypes $permissionType = PermissionTypes::LIST
): SearchInterface {
$user = $search->getUser();
if (!$user) {
return $search;
Expand All @@ -55,7 +57,7 @@ public function addSearchRestrictions(SearchInterface $search): SearchInterface
if (!$user->isAdmin()) {
$search->addModifier(new ElementWorkspacesQuery(
$user,
PermissionTypes::LIST->value
$permissionType->value
));
}

Expand Down
4 changes: 3 additions & 1 deletion src/Service/Search/SearchService/SearchHelperInterface.php
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,7 @@

namespace Pimcore\Bundle\GenericDataIndexBundle\Service\Search\SearchService;

use Pimcore\Bundle\GenericDataIndexBundle\Enum\Permission\PermissionTypes;
use Pimcore\Bundle\GenericDataIndexBundle\Model\Search\Interfaces\ElementSearchResultItemInterface;
use Pimcore\Bundle\GenericDataIndexBundle\Model\Search\Interfaces\SearchInterface;
use Pimcore\Bundle\GenericDataIndexBundle\Model\SearchIndexAdapter\SearchResult;
Expand All @@ -30,7 +31,8 @@ interface SearchHelperInterface
public function addSearchRestrictions(
SearchInterface $search,
string $userPermission,
string $workspaceType
string $workspaceType,
PermissionTypes $permissionType
): SearchInterface;

public function performSearch(SearchInterface $search, string $indexName): SearchResult;
Expand Down
Loading