first commit

This commit is contained in:
julien
2026-03-20 22:13:41 +01:00
commit 41f8b3afb4
323 changed files with 27222 additions and 0 deletions

View File

@@ -0,0 +1,37 @@
<?php
declare(strict_types=1);
namespace Netig\Netslim\Identity\Application;
use Netig\Netslim\Identity\Domain\Entity\User;
use Netig\Netslim\Identity\Domain\Policy\RolePermissionMatrix;
/**
* Façade applicative de l'autorisation fine.
*
* Le service encapsule la matrice rôle -> permissions partagée par le core et
* constitue le point d'entrée recommandé pour les applications consommatrices.
*/
final class AuthorizationApplicationService implements AuthorizationServiceInterface
{
public function __construct(private readonly RolePermissionMatrix $permissions) {}
public function canRole(string $role, string $permission): bool
{
return $this->permissions->allows($role, $permission);
}
public function canUser(User $user, string $permission): bool
{
return $this->permissions->allows($user->getRole(), $permission);
}
/**
* @return list<string>
*/
public function permissionsForRole(string $role): array
{
return $this->permissions->permissionsForRole($role);
}
}