1

我是风帆新手,我有一个 PostgreSQL 数据库。我想实现用户管理。我有一些用户each user can be assigned to multiple groupseach group can be assigned to multiple roleseach role can have some permissions!我检查了风帆许可文件,但我没有得到它。例如,我希望某些组不能添加或编辑用户,或者我希望某些角色不能看到用户管理菜单。我应该怎么办?

4

3 回答 3

1

我在这里发布答案可能有点晚了,但是有一种方法可用于帆中的访问控制。

Sails 内置基于策略的访问控制系统。

  1. 政策

Sails 中的策略旨在控制对特定操作的二进制(“是或否”)访问。它们非常适合检查用户是否登录或其他简单的“是或否”检查,例如登录用户是否是“超级管理员”。

但是对于动态权限,

  1. 帮手

帮助程序、访问控制和权限文档的链接

对于更复杂的权限方案,例如请求用户代理的访问权限取决于他们是谁以及他们试图做什么的那些方案,您需要涉及数据库。虽然您可以使用策略来完成此操作,但使用帮助程序通常更直接且可维护。

可以在这里找到示例, 使用助手进行访问控制和许可

因此,您可以使用 postgreSQL 来存储角色及其各自的权限,并检索用户角色并根据需要检查策略/帮助程序中的权限。

于 2020-11-11T07:39:10.963 回答
0

Sails.js 没有 ACL 管理您必须使用 3rd 方中间件,例如角色角色-acl

于 2018-09-24T13:43:27.150 回答
-1

听起来最重要的是用户与权限(或角色)的关联。因此,您可以考虑为每一层(用户、角色、组)制作模型,或者您可以为每种组和/或角色制作模型(尽管这听起来可能会失控),然后将模型与彼此。然后在查看操作中,您可以设置权限(也就是允许哪些组或角色查看该页面)。同样在标记中,您可以设置允许谁看到按钮。例如: isSales可以是您的组或角色模型上的布尔值,用于销售中的用户,并且允许他们查看编辑按钮以更改某物的价格。因此,在您的标记中,您有:

 <div v-if="user.isSales">
  <button> Edit price </button>
 </div>
于 2018-09-24T16:24:57.457 回答