环回 acl 管理员角色不适用于模型
Loopback acl admin role is not applying on Model
我想知道是否有人可以帮助我解决这个问题,我无法找到为什么我的 'admin' 角色在环回 3.x 中不起作用,我正在尝试以下代码:
script.js - 对于在 postgres 数据库中创建管理员角色,这正确地创建了角色和映射
module.exports = function (app) {
var User = app.models.User;
var Role = app.models.Role;
var RoleMapping = app.models.RoleMapping;
User.create([
{username: 'Test', email: 'test@gmail.com', password: 'test'},
], function(err, users) {
if (err) throw err;
console.log('Created users:', users);
//create the admin role
Role.create({
name: 'admin'
}, function(err, role) {
if (err) throw err;
console.log('Created role:', role);
role.principals.create({
principalType: RoleMapping.USER,
principalId: users[0].id
}, function(err, principal) {
if (err) throw err;
console.log('Created principal:', principal);
});
});
});
}
然后在authentication.js -
server.enableAuth({ datasource: 'ds' });
在testModel.json中,acls如下:
"acls": [
{
"accessType": "WRITE",
"principalType": "ROLE",
"principalId": "admin",
"permission": "ALLOW"
}
]
注意 - 我只想将 WRITE 权限授予 ADMIN。
不过还是POST api这个模型是大家可以看到的,不对的地方还请指正!
提前致谢!
最后,我通过以下方式应用 acls 得到了答案:
"acls": [
{
"accessType": "WRITE",
"principalType": "ROLE",
"principalId": "$everyone",
"permission": "DENY"
},
{
"accessType": "WRITE",
"principalType": "ROLE",
"principalId": "admin",
"permission": "ALLOW"
}
],
我只是先限制了所有用户,然后只给 Admin 权限!
这种方法对我有用,如果他们有更好的方法,你可以纠正我:)
我想知道是否有人可以帮助我解决这个问题,我无法找到为什么我的 'admin' 角色在环回 3.x 中不起作用,我正在尝试以下代码:
script.js - 对于在 postgres 数据库中创建管理员角色,这正确地创建了角色和映射
module.exports = function (app) {
var User = app.models.User;
var Role = app.models.Role;
var RoleMapping = app.models.RoleMapping;
User.create([
{username: 'Test', email: 'test@gmail.com', password: 'test'},
], function(err, users) {
if (err) throw err;
console.log('Created users:', users);
//create the admin role
Role.create({
name: 'admin'
}, function(err, role) {
if (err) throw err;
console.log('Created role:', role);
role.principals.create({
principalType: RoleMapping.USER,
principalId: users[0].id
}, function(err, principal) {
if (err) throw err;
console.log('Created principal:', principal);
});
});
});
}
然后在authentication.js -
server.enableAuth({ datasource: 'ds' });
在testModel.json中,acls如下:
"acls": [
{
"accessType": "WRITE",
"principalType": "ROLE",
"principalId": "admin",
"permission": "ALLOW"
}
]
注意 - 我只想将 WRITE 权限授予 ADMIN。
不过还是POST api这个模型是大家可以看到的,不对的地方还请指正!
提前致谢!
最后,我通过以下方式应用 acls 得到了答案:
"acls": [
{
"accessType": "WRITE",
"principalType": "ROLE",
"principalId": "$everyone",
"permission": "DENY"
},
{
"accessType": "WRITE",
"principalType": "ROLE",
"principalId": "admin",
"permission": "ALLOW"
}
],
我只是先限制了所有用户,然后只给 Admin 权限!
这种方法对我有用,如果他们有更好的方法,你可以纠正我:)