instances added god may help
This commit is contained in:
64
lib/Service/Directory/DirectoryScopeGateway.php
Normal file
64
lib/Service/Directory/DirectoryScopeGateway.php
Normal file
@@ -0,0 +1,64 @@
|
||||
<?php
|
||||
|
||||
namespace MintyPHP\Service\Directory;
|
||||
|
||||
use MintyPHP\Service\Tenant\TenantScopeService;
|
||||
use MintyPHP\Service\Tenant\TenantServicesFactory;
|
||||
|
||||
class DirectoryScopeGateway
|
||||
{
|
||||
public function __construct(private readonly ?TenantScopeService $tenantScopeService = null)
|
||||
{
|
||||
}
|
||||
|
||||
public function hasGlobalAccess(int $userId): bool
|
||||
{
|
||||
return $this->tenantScopeService()->hasGlobalAccess($userId);
|
||||
}
|
||||
|
||||
public function getUserTenantIds(int $userId): array
|
||||
{
|
||||
return $this->tenantScopeService()->getUserTenantIds($userId);
|
||||
}
|
||||
|
||||
public function isStrict(): bool
|
||||
{
|
||||
return $this->tenantScopeService()->isStrict();
|
||||
}
|
||||
|
||||
public function canAccess(string $resourceType, int $resourceId, int $userId): bool
|
||||
{
|
||||
return $this->tenantScopeService()->canAccess($resourceType, $resourceId, $userId);
|
||||
}
|
||||
|
||||
public function resourceBelongsToTenant(string $resourceType, int $resourceId, int $tenantId): bool
|
||||
{
|
||||
return $this->tenantScopeService()->resourceBelongsToTenant($resourceType, $resourceId, $tenantId);
|
||||
}
|
||||
|
||||
public function filterTenantIdsForUser(array $tenantIds, int $userId): array
|
||||
{
|
||||
return $this->tenantScopeService()->filterTenantIdsForUser($tenantIds, $userId);
|
||||
}
|
||||
|
||||
public function mergeTenantIdsPreservingOutOfScope(
|
||||
array $requestedTenantIds,
|
||||
array $existingTenantIds,
|
||||
array $allowedTenantIds
|
||||
): array {
|
||||
return $this->tenantScopeService()->mergeTenantIdsPreservingOutOfScope(
|
||||
$requestedTenantIds,
|
||||
$existingTenantIds,
|
||||
$allowedTenantIds
|
||||
);
|
||||
}
|
||||
|
||||
private function tenantScopeService(): TenantScopeService
|
||||
{
|
||||
if ($this->tenantScopeService instanceof TenantScopeService) {
|
||||
return $this->tenantScopeService;
|
||||
}
|
||||
|
||||
return (new TenantServicesFactory())->createTenantScopeService();
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user