Articles of acl

节点acl允许权限

我使用node_acl来授权我的webapp。 我希望我的pipe理员能够访问所有路由,所以我已经声明了acl权限如下: acl.allow([ { roles: 'admin', allows: [ { resources: '*', permissions: '*' } ] }, { roles: 'guest', allows: [ { resources: '/documentation', permissions: ['get'] } ] } ]); 我已经使用acl.addUserRoles来设置用户的angular色,但是当我试图使用pipe理员用户发出任何请求时, acl.isAllowed返回false并且用户的{ routeName: [] }返回{ routeName: [] } 。 我的acl.allow权限有问题吗?

Looback:configurationacl和关系来列出所有属于logging使用的对象

我试图设置一个回环项目,我遇到了一个基本问题,我不明白。 所以我基本上有一个自定义用户模型定义与以下关系和acls: "relations": { … "projects": { "type": "hasMany", "model": "project", "foreignKey": "userId" } } "acls": [ { "accessType": "*", "principalType": "ROLE", "principalId": "$everyone", "permission": "DENY" }, { "accessType": "READ", "principalType": "ROLE", "principalId": "$owner", "permission": "ALLOW" } ] 而一个定义了属性的“项目”模型: "relations": { "user": { "type": "belongsTo", "model": "user", "foreignKey": "userId" } }, "acls": [ { "accessType": […]

Loopback $ owner不适用于findById

我想通过回送得到关于我的用户的一些信息。 为此,我创build了一个与“accessToken”模型相关的“用户”模型,直到现在POST on / user,POST on / user / login和POST on / user / logout正在工作。 我join/common/models/user.json { "name": "user", "base": "User", "idInjection": true, "options": { "validateUpsert": true }, "properties": {}, "validations": [], "relations": { "accessTokens": { "type": "hasMany", "model": "accessToken", "foreignKey": "userId" } }, "acls": [ { "accessType": "EXECUTE", "principalType": "ROLE", "principalId": "$authenticated", "permission": "ALLOW", […]

如何用node.js在平均堆栈中实现node_acl

我想用我的MEAN应用程序来实现ACL。 我有几个关于实施的问题。 如何获得在server.js中实例化的mongodb后端的acl,以便我可以在我的路由器和控制器中使用相同的实例? 创build一个pipe理员可以用来创build和分配angular色并更改权限的acl控制器是否有意义? 我想我的所有资源在我的router.js被暴露为acl资源与相关的行动。 当你将acl.middleware()添加到路由时,会自动发生吗? 我如何定义像“编辑自己的内容”的权限? 以下列出了我为实现ACL提供的方法而允许pipe理员pipe理ACL设置的控制器方法: set_acl(angular色,资源,权限) remove_role(angular色) what_resources(angular色,[权限]) user_roles(userId) allowed_permissions(userId,[resources]) add_user_roles(userId,angular色) remove_user_roles(userId,angular色) 有什么我失踪?

NavBar地址加载angular模板,但不是根shell

我正在使用Node.JS和Express,Angular.JS以及ACL的节点模块连接angular色。 我想让一个user.status为“Platinum”的用户访问“Platinum”,而不是“Gold”,反之亦然。 我有ACL部分工作,如果我input/白金导航栏我不能访问/黄金,但是当我尝试访问/白金我只得到模板,而不是根shell,所以会出现这样的: You made it! You have the {{status}} status! 如果我点击一个angular度到/ Platinum的链接,一切都会按照原样进行。 如果我在导航栏中input任何中性地址,则一切正常。 这应该是一个简单的解决scheme,但我还没有弄明白。 这里是设置授权的代码,我很确定这里的一切都没问题。 ConnectRoles = require('connect-roles') var user = new ConnectRoles({ failureHandler: function(req, res, action){ var accept = req.headers.accept || ''; res.status(403); if(accept.indexOf('html')) { res.render('access-denied', {action: action}); } else { res.send('Access Denied – You don\'t have permission to: ' + action); } […]

StrongLoop:子表的ACL

我有两个表A和B A hasOne B , B belongsTo A 现在我在B有以下ACL: { "principalType": "ROLE", "principalId": "$everyone", "permission": "DENY", "accessType": "*" } 当我向localhost/api/B/{id}发出请求时,我收到401。 当我向localhost/api/A/{id}/B发出请求时,我收到数据。 我怎样才能解决这个问题? 两者都应该得到一个401错误。 有没有一个解决scheme,我不必碰A.json ? 我可以在A修复一个问题,但是我觉得这样会很难看。 在StrongLoop Doc中find一些东西,这意味着我必须在A定义ACL?

确定用户在查询中的每个对象的权限?

我们正在devise一个协作软件数据库结构并使用MEAN堆栈,而我缺乏ACL权限的经验也提示了这个问题。 高层次,软件是供合作者和审计人员在项目中工作/查看任务的。 MongoDB中的“Project”实体/表用于pipe理ACL组。 每个项目都有一个用户指针的“Collaborator”数组和一个用户指针的“Auditor”数组。 Collaborators数组中的用户被添加到具有读/写访问权限的项目“Collaborator”ACL组中,Auditors数组中的用户被添加到只读的项目auditor acl组中。 在MongoDB中还有另一个名为“Task”的实体,每个任务都绑定到一个,只有一个项目。 一个项目可以有多个任务。 任务获取的项目添加到它的协作ACL组和审计员ACL组。 所有这一切都很好。 现在,用户Bob是项目A上的协作者,项目B上是审计者。如果Bob在数据库中查询任务,他将返回他可以读写的任务(项目A)以及他只能读取的任务(项目B)。 但是,前端如何知道哪些任务他有写权限,哪些只读? 因为前端仅需要在用户具有写入权限的任务旁边显示“编辑”button。 我在ACL权限中看到,我可以执行一个调用来检查用户是否对单个对象具有写权限,但是这是针对每个对象的,并且对于每个对象执行额外的调用将会影响性能,即使它是在服务器上完成之前发送初始查询响应。 我可以用“AND当前用户权限包含写入”这样的filter来查询mongo中的任务实体组吗? 或者如何处理?

MLab和Loopback ACL – 有很多(POST)

我很新的node.js / mlab,我试图找出我的ACL。 我有两个模型,歌曲和帐户。 我在帐户和歌曲之间创build了很多关系,其中一个帐户有很多歌曲叫做collections夹。 "relations": { "favorites": { "type": "hasMany", "model": "Song", "foreignKey": "" } } 我希望我的ACL设置的方式是只有pipe理员可以创build新的歌曲,但任何经过身份validation的人都可以将歌曲添加到他们的collections夹。 我有一个端点(id = userId,它也需要一个令牌): /Accounts/{id}/favorites 问题是,每当我尝试POST到这个端点,我得到: http://0.0.0.0:3000/api/Accounts/584e6ed148d44a6c1e53c1a3/favorites 401 (Unauthorized) 对于歌曲,目前的ACL是: "acls": [ { "accessType": "*", "principalType": "ROLE", "principalId": "administrator", "permission": "ALLOW" }, { "accessType": "*", "principalType": "ROLE", "principalId": "$everyone", "permission": "DENY" }, { "accessType": "READ", "principalType": "ROLE", "principalId": […]

用单一资源粒度表示ACL

我将ACL添加到nodejs / express应用程序。 我已经阅读了模块acl和express-acl的文档,但是缺less一些东西。 他们没有提供如何处理单一资源访问的例子。 典型的例子:用户可以编辑自己的评论,但只能阅读其他用户的评论。 因此,拥有一个授予或拒绝对资源评论/编辑的编辑权限的angular色是不够好的。 该权限取决于用户正在访问哪个评论。 有没有一种方法可以通过在npm上提供的一个模块来实现,或者是在acl模块提供对资源的访问之后,必须在控制器中实现的吗? 谢谢

用户模型的环回ACL

我正在使用loopback为SPA网站创build一个简单的API。 我想保持我的权限尽可能简单,所以我结束了以下ACL模型 所有的权限都被默认拒绝 一些模式中的一些方法被允许给每个人 任何授权用户都可以使用所有方法 这将显然工作,如果我将创build几个用户,没有人将能够创build或修改用户了。 由于我无法显式更改内置User模型的权限,因此我创build了一个admin模型,扩展了User 。 然后,我将User模型的public属性设置为false。 我设置了以下ACL规则 { "accessType": "*", "principalType": "ROLE", "principalId": "$everyone", "permission": "DENY" }, { "accessType": "EXECUTE", "principalType": "ROLE", "principalId": "$everyone", "permission": "ALLOW", "property": "login" }, { "accessType": "*", "principalType": "ROLE", "principalId": "$authenticated", "permission": "ALLOW" } 正如我所看到的,它应该拒绝任何无法访问的用户访问login以外的任何方法。 不幸的是,这不是如何工作,任何人仍然可以POST /用户和创build新的用户。 我的猜测是ACL规则不适用于inheritance模型,因此在这里应用User规则。 所以我回到原点,我不能直接更改User权限或覆盖它们。 我在这里有什么select? 有没有办法阻止创build新用户?