2017-01-10 1 views
0

J'ai une base de données MySQL créée avec Sequelize. Maintenant, je veux donner des rôles aux utilisateurs de cette base de données avec le noeud acl. Ceci est mon fichier acl.js:Comment puis-je connecter les rôles du nœud ACL js aux utilisateurs de la base de données MySQL (sequelize)

var acl = require('acl'); 
var aclSeq = require('acl-sequelize'); 
var sequelize = require('../models/index.js'); 

//acl 
acl = new acl(new aclSeq(sequelize.connection, { prefix: 'acl_' })); 

acl.addUserRoles(4, 'admin'); 

acl.allow('admin', 'ourdogs', 'view') 

module.exports = acl; 

Le problème est que cela crée de nouvelles bases de données et acl_roles acl_users mais je veux connecter les utilisateurs de ma base de données existante « utilisateur »

id, username, email, password_digest, firstName, lastName, image, EmployeeId (columns) 
'4', 'admin', '[email protected]', 'a', 'Admin', NULL, 'http://interworldgems.com/client_login/admin/images/login_icon.png', NULL 

Et après appeler cette méthode qui sera permis seulement pour admin

app.get('/ourdogs', acl.middleware(), function(req, res) { 
    models.Dog.findAll().then(function(dogs) { 
     res.render('ourdogs/ourdogs', { 
     title: 'Our dogs', 
     dogs: dogs 
     }); 
    }) 
    }); 

en exécutant cette ACL de code crée ces bases de données

"acl_roles"

key, value (columns) 
admin, [4] 

"acl_users"

key, value (columns) 
4, ["admin"] 

Je sais que mon code de acl.js n'est pas correct, mais je ne sais pas comment connecter les utilisateurs de ma base de données, puis ajoutez les rôles avec acl. Je regardais la documentation mais je n'ai rien trouvé à propos de ça.

Merci de votre aide!

Répondre

0

ACL ne gère pas l'authentification. middleware ACL effectue un contrôle comme ce qui suit:

acl.isAllowed(req.session.userId, '/ourdogs', 'get') 

Pour cela fonctionne, vous devez avoir déjà rempli req.session.userId. Il vérifiera l'autorisation à req.method, vous devez donc également attribuer cette autorisation.