@superdevofficial/feathers-guardians
v0.2.0
Published
Contrôle et vérifie toutes les requêtes de votre API, afin de la protéger via les permissions et les roles existants.
Downloads
90
Readme

Présentation
Contrôle et vérifie toutes les requêtes de votre API, afin de la protéger via les permissions et les roles existants.
Contenu
- Permet d'utiliser un Gardien pour protéger, fitlrer certaines requêtes de votre API
Requirements
- FeathersJS
^3.3.1 - NodeJS
^10.15.1 - Distribute
- microservice-auth
Installation
L'installation se fait via npm :
npm i @superdevofficial/feathers-guardian
Utilisation
D'abord, vous devez configurer le gardien dans votre fichier app.ts. Aucunes options n'est pour l'instant disponible.
// FILES: app.ts
app.configure(Guardian.configure({}));Ensuite vous pouvez utiliser ce gardien n'import où dans l'API, au niveau des hooks.
⚠️ Attention ! Distribute doit être configuré sur votre API. Les services qui vont utilisé Guardian doivent aussi avoir l'authentification JWT d'activé.
Can
Vérifie si l'utilisateur possède la permission
Guardian.can('CanSeeProject');Exemple :
let moduleExports: HooksObject = {
before: {
all: [Distribute.authenticateHookJwt()],
find: [
Guardian.can('CanSeeProject'),
]
}
};Cant
Vérifie si l'utilisateur ne possède pas la permission
Guardian.cant('CanSeeProject');Exemple :
let moduleExports: HooksObject = {
before: {
all: [Distribute.authenticateHookJwt()],
find: [
Guardian.cant('CanSeeProject'),
]
}
};FilterByPower
Filtre les résultats de la recherche par le niveau de power de l'utilisateur
Guardian.filterByPower();Exemple :
let moduleExports: HooksObject = {
before: {
all: [Distribute.authenticateHookJwt()],
find: [
Guardian.filterByPower(),
]
}
};FilterByOwner
Retourne les résultats liés à l'utilisateur par un champ foreignKey
Guardian.filterByOwner('userId');Exemple :
let moduleExports: HooksObject = {
before: {
all: [Distribute.authenticateHookJwt()],
find: [
Guardian.filterByOwner('userId'),
]
}
};PowerLessThan
Bloque la requête si la puissance de l'utilisateur n'est pas inférieur à la variable
Guardian.powerLessThan(power: number);Exemple :
let moduleExports: HooksObject = {
before: {
all: [Distribute.authenticateHookJwt()],
find: [
Guardian.powerLessThan(1000),
]
}
};PowerBiggerThan
Bloque la requête si la puissance de l'utilisateur n'est pas suppérieur à la variable
Guardian.powerBiggerThan(power: number);Exemple :
let moduleExports: HooksObject = {
before: {
all: [Distribute.authenticateHookJwt()],
find: [
Guardian.powerBiggerThan(1000),
]
Guardian.if(Guardian.powerLessThan(101), [Guardian.filterByOwner('userId')])
],
}
};If
Methode pour réaliser des conditions dans les filtres.
Guardian.if(condition: Hook, then: Hook[]);Exemple :
let moduleExports: HooksObject = {
before: {
all: [Distribute.authenticateHookJwt()],
find: [
Guardian.if(Guardian.powerLessThan(101), [Guardian.filterByOwner('userId')]),
]
}
};IfNot
Methode pour réaliser des conditions dans les filtres.
Guardian.ifNot(condition: Hook, then: Hook[]);Exemple :
let moduleExports: HooksObject = {
before: {
all: [Distribute.authenticateHookJwt()],
find: [
Guardian.ifNot(Guardian.powerLessThan(101), [Guardian.filterByOwner('userId')]),
]
}
};