major update
This commit is contained in:
33
lib/Service/Access/AccessGatewayFactory.php
Normal file
33
lib/Service/Access/AccessGatewayFactory.php
Normal file
@@ -0,0 +1,33 @@
|
||||
<?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());
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user