2017-01-10 8 views
0

SequelizeでMySQLデータベースを作成しました。今、ノードaclを使用してそのデータベースのユーザーに役割を与えたいと思います。 これは私のacl.jsファイルです:ACLノードjsの役割をデータベースMySQLのユーザに接続するにはどうすればいいですか(後編)

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; 

問題は、それが新しいデータベースのacl_rolesとacl_usersを作成しますが、私は私の既存のデータベース「ユーザー」

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 

その後からユーザーを接続したいということですこのコードのACLを実行することにより、単に管理者

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

のために許可されます。このメソッドを呼び出すと、これらのデータベースを作成します

key, value (columns) 
admin, [4] 

「acl_users」

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

私はacl.jsから自分のコードが正しくありません知っているが、私は私のデータベースからユーザーを接続し、追加する方法がわからない「をacl_roles」彼らはaclで役割を果たします。私はドキュメントを探していたが、これについて何も見つけられなかった。

ありがとうございました!

答えて

0

ACLは認証を処理しません。それはあなたがすでに取り込まれている必要があります動作させるために

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

をreq.session.userId:ACLミドルウェアは、次のようなチェックを実行します。 req.methodへのアクセス許可をチェックするので、このアクセス許可も割り当てる必要があります。

関連する問題