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']) )
}
)