---
title: "Référence d'API — nodefony/roles"
source: docs/api/core/roles.md
url: https://nodefony.github.io/nodefony-core/docs/api/core/roles/
---


[Documentation](../../../) › [Référence d'API](../../) › [`nodefony`](../) › roles

> Générée depuis les déclarations de types publiées de `nodefony` **10.0.0-beta.5** : exactement ce que reçoit une application qui l'installe. Cette page n'existe dans aucun dépôt — pour la corriger, on corrige le TSDoc du code.

## `nodefony/roles`

`import { … } from "nodefony/roles"` — 7 symboles.

### Classes (2)

#### `RoleRegistry`

```ts
class RoleRegistry
```

Registre OPTIONNEL qui assigne un bit à chaque rôle d'un ENSEMBLE FIXE, pour des contrôles d'autorisation en masque (`&`/`|`) — O(1), sans allocation, adapté au hot path serveur (voters, pipeline sécurité) quand les rôles sont connus à l'avance.

- `define(...roles: Role[]): this` — Déclare un ou plusieurs rôles et leur assigne un bit (idempotent : un rôle déjà connu conserve son bit).
- `bit(role: Role): number`
- `mask(roles: readonly Role[]): number` — Compile une liste de rôles en masque (OR des bits).
- `roles(mask: number): Role[]` — Décode un masque en liste de rôles (ordre de déclaration).
- `static hasAny(userMask: number, requiredMask: number): boolean` — Test OR sur masques.
- `static hasAll(userMask: number, requiredMask: number): boolean` — Test AND sur masques.

#### `RoleSet`

```ts
class RoleSet
```

Ensemble de rôles indexé pour des contrôles répétés en O(1).

- `constructor(roles?: Iterable<Role> | null)`
- `get size(): number` — Nombre de rôles distincts.
- `has(role: Role): boolean`
- `hasAny(roles: readonly Role[]): boolean`
- `hasAll(roles: readonly Role[]): boolean`
- `toArray(): Role[]` — Copie triée des rôles (affichage / sérialisation déterministe).

### Fonctions (3)

#### `hasAllRoles`

```ts
function hasAllRoles(userRoles: readonly Role[] | null, roles: readonly Role[]): boolean
```

Indique si l'utilisateur possède TOUS les `roles` (AND logique).

#### `hasAnyRole`

```ts
function hasAnyRole(userRoles: readonly Role[] | null, roles: readonly Role[]): boolean
```

Indique si l'utilisateur possède AU MOINS UN des `roles` (OR logique).

#### `hasRole`

```ts
function hasRole(userRoles: readonly Role[] | null, role: Role): boolean
```

Indique si l'utilisateur possède `role`.

### Constantes (1)

#### `ROLE_MASK_CAPACITY`

```ts
const ROLE_MASK_CAPACITY = 31
```

Nombre maximum de rôles qu'un `RoleRegistry` peut indexer en masque `number`.

### Types (1)

#### `Role`

```ts
type Role = string
```

Type d'un rôle Nodefony. Convention `ROLE_*` (alignée Symfony) — mais le mécanisme reste agnostique : n'importe quelle chaîne fait office de rôle.

---

[← Toutes les références d'API](../../)
