Fullsys.NextFIS.Permissions.MyPermissionsEndpoint 1.0.1

Fullsys.NextFIS.Permissions.MyPermissionsEndpoint

Sdílený endpoint GET /my, který vrací oprávnění přihlášeného uživatele seskupená podle rolí – přímo z dat synchronizovaných v konzumující službě, bez volání centrální služby Users.

Klient si z rolí skládá efektivní oprávnění sám (deny-wins, chybějící = deny).

Předpoklad

Hostující služba už má zaregistrovaný IRolesPermissionsProvider – tj. volá AddNextFisAuthorizationEFCore<TDbContext>() (nebo variantu ...WithCache) z Fullsys.NextFIS.Security.Authorization.EFCore. Role se čtou z JWT claimu Roles.

Zdroj pravdy a revokovaná oprávnění: endpoint vrací přesně to, co je v lokální tabulce RolePermissions (přes IRolesPermissionsProvider) – tedy stejná data, podle kterých služba i reálně autorizuje (IPermissionEvaluator). Endpoint sám nefiltruje revokovaná oprávnění (flat entita RolePermission sloupec IsRevoked nemá), a to záměrně – aby /my zůstalo konzistentní s tím, co služba skutečně vynucuje. Odpovědnost za to, aby v tabulce nebyla revokovaná oprávnění, je proto na synchronizaci z Users.

Použití

MVC (hotový controller)

services.AddControllers().AddMyPermissionsEndpoint();

Vystaví endpoint GET api/role-permissions/my?registeredApplicationCode={code} (parametr je volitelný; prázdný = všechny aplikace služby).

FastEndpoints / vlastní endpoint (jen služba)

services.AddMyPermissions();

A ve svém endpointu si vyžádej IMyPermissionsService:

Task<IReadOnlyList<MyRolePermissions>> GetAsync(
    string? registeredApplicationCode, ClaimsPrincipal user, CancellationToken ct);

Tvar odpovědi

[
  {
    "roleName": "Admin",
    "permissions": [
      { "code": "warehouse-web.storages", "effect": "Allowed" },
      { "code": "warehouse-web.devices",  "effect": "Denied" }
    ]
  }
]

No packages depend on Fullsys.NextFIS.Permissions.MyPermissionsEndpoint.

.NET 10.0

Version Downloads Last updated
1.0.1 16 09/14/2026
1.0.0 1 09/11/2026