CASL

NestJS 🔴 Senior

Definition

Librairie d'autorisation isomorphe qui definit les abilities (permissions) de facon declarative. S'integre avec NestJS via un guard custom.

Analogie

Comme un reglement interieur detaille : 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

Gerer des permissions granulaires avec des conditions sur les champs des entites.

Termes lies

#security