Gardien est un module NodeJS qui permet d’avoir une gestion des droits fine dans vos applications NodeJS et dans votre navigateur web. Ce module possède un système de plugins permettant de choisir le type de base de données qui sera utilisé pour sauvegarder les utilisateurs, les roles et les permissions.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 |
var async = require('async') var Gardien = require('gardien') // Configuration du pilote Redis var driver = new Gardien.drivers.RedisDriver({ prefix: 'gardien', separator: ':', index: 0, options: {} }) // Configuration de Seraphin pour récupérer les règles de l'utilisateur var seraphin = new Gardien.Seraphin( driver, { debug: true }) // Configuration de Cherubin pour vérifier les permissions de l'utilisateur var cherubin = new Gardien.Cherubin( { debug: true }) // Configuration de l'identifiant de l'utilisateur var userId = 'oothkoo' async.series( [ function (cb) { // Initialisation de Seraphin seraphin.init(function (err) { cb(null) }) }, function (cb) { // Récupération des règles de l'utilisateur (oothkoo) seraphin.getAllUserRules(userId, function (rules) { // Give all rules to our cherubin cherubin.updateRules( rules ) console.log('rules', rules) cb(null) }) } ], function (err, results) { // Vérifie si l'utilisateur (oothkoo) est autorisé à voir les humains quelle que soit ces rôles console.log('allowed: ' + cherubin.isAllowed(userId, ['*'], ['human'], ['view']) ) } ) |
Github : https://github.com/oOthkOo/gardien