33 lines
1.0 KiB
PHP
33 lines
1.0 KiB
PHP
<?php
|
|
|
|
namespace MintyPHP\Service\Access;
|
|
|
|
use MintyPHP\Service\Audit\AuditServicesFactory;
|
|
|
|
class AccessGatewayFactory
|
|
{
|
|
private ?PermissionService $permissionService = null;
|
|
private ?PermissionGateway $permissionGateway = null;
|
|
|
|
public function __construct(
|
|
private readonly AccessRepositoryFactory $accessRepositoryFactory,
|
|
private readonly AuditServicesFactory $auditServicesFactory
|
|
) {
|
|
}
|
|
|
|
public function createPermissionService(): PermissionService
|
|
{
|
|
return $this->permissionService ??= new PermissionService(
|
|
$this->accessRepositoryFactory->createPermissionRepository(),
|
|
$this->accessRepositoryFactory->createRolePermissionRepository(),
|
|
$this->accessRepositoryFactory->createUserRoleRepository(),
|
|
$this->auditServicesFactory->createSystemAuditService()
|
|
);
|
|
}
|
|
|
|
public function createPermissionGateway(): PermissionGateway
|
|
{
|
|
return $this->permissionGateway ??= new PermissionGateway($this->createPermissionService());
|
|
}
|
|
}
|