refactor(arch): enforce gateway compliance and remove service-wrapping gateways

This commit is contained in:
2026-03-13 11:31:33 +01:00
parent 082fa4c9a5
commit 892da0048d
96 changed files with 1117 additions and 1060 deletions

View File

@@ -2,7 +2,7 @@
namespace MintyPHP\Service\Access;
use MintyPHP\Service\Directory\DirectoryScopeGateway;
use MintyPHP\Service\Tenant\TenantScopeService;
class AccessPolicyFactory
{
@@ -16,52 +16,52 @@ class AccessPolicyFactory
private ?AuthorizationService $authorizationService = null;
public function __construct(
private readonly PermissionGateway $permissionGateway,
private readonly DirectoryScopeGateway $directoryScopeGateway
private readonly PermissionService $permissionService,
private readonly TenantScopeService $tenantScopeService
) {
}
public function createUserAuthorizationPolicy(): UserAuthorizationPolicy
{
return $this->userAuthorizationPolicy ??= new UserAuthorizationPolicy(
$this->permissionGateway,
$this->directoryScopeGateway
$this->permissionService,
$this->tenantScopeService
);
}
public function createRoleAuthorizationPolicy(): RoleAuthorizationPolicy
{
return $this->roleAuthorizationPolicy ??= new RoleAuthorizationPolicy($this->permissionGateway);
return $this->roleAuthorizationPolicy ??= new RoleAuthorizationPolicy($this->permissionService);
}
public function createPermissionAuthorizationPolicy(): PermissionAuthorizationPolicy
{
return $this->permissionAuthorizationPolicy ??= new PermissionAuthorizationPolicy($this->permissionGateway);
return $this->permissionAuthorizationPolicy ??= new PermissionAuthorizationPolicy($this->permissionService);
}
public function createOperationsAuthorizationPolicy(): OperationsAuthorizationPolicy
{
return $this->operationsAuthorizationPolicy ??= new OperationsAuthorizationPolicy($this->permissionGateway);
return $this->operationsAuthorizationPolicy ??= new OperationsAuthorizationPolicy($this->permissionService);
}
public function createSettingsAuthorizationPolicy(): SettingsAuthorizationPolicy
{
return $this->settingsAuthorizationPolicy ??= new SettingsAuthorizationPolicy($this->permissionGateway);
return $this->settingsAuthorizationPolicy ??= new SettingsAuthorizationPolicy($this->permissionService);
}
public function createTenantAuthorizationPolicy(): TenantAuthorizationPolicy
{
return $this->tenantAuthorizationPolicy ??= new TenantAuthorizationPolicy(
$this->permissionGateway,
$this->directoryScopeGateway
$this->permissionService,
$this->tenantScopeService
);
}
public function createDepartmentAuthorizationPolicy(): DepartmentAuthorizationPolicy
{
return $this->departmentAuthorizationPolicy ??= new DepartmentAuthorizationPolicy(
$this->permissionGateway,
$this->directoryScopeGateway
$this->permissionService,
$this->tenantScopeService
);
}