CASL

NestJS 🔴 Senior

Définition

Librairie d'autorisation isomorphe qui définit les abilities (permissions) de façon déclarative. S'intègré avec NestJS via un guard custom.

Analogie

Comme un règlement intérieur détaillé : chaque personne sait exactement ce qu'elle peut et ne peut pas faire.

Exemple de code

const ability = defineAbility((can, cannot) => {
  can('read', 'Article');
  can('update', 'Article', { authorId: user.id });
  cannot('delete', 'Article');
});
// ability.can('update', article) -> true/false

Cas d'usage

Gérer des permissions granulaires avec des conditions sur les champs des entités.

Termes liés

#security

← → au clavier pour passer d'une fiche à l'autre