1

我正在开发一个基于 CRUD 的数据库,它需要有一些基于用户的 ACL(访问控制列表)。我们想让它也有一个管理员访问面板,以便我们可以在需要时快速删除内容或以其他方式对其进行审核。我试图保持它的灵活性,以便为了方便起见它可以是一个单独的界面,但也不会偏离一般用户界面,否则它会更难维护。

假设后端将处理 ACL,那么在前端处理创建用户界面的好方法是什么?是否有必要创建一个单独的 BB.js 接口来提供服务,或者向所有将被忽略的用户传递一些额外的代码是否可以?

建议或警告也将不胜感激!

4

1 回答 1

0

我将您的问题解释为您想为不同访问级别的用户提供不同的界面。因此我会:

  1. 在用户访问每条路线之前检查他们的访问权限,以确保他们没有访问他们不应该看到的页面

  2. 他们仍然可以尝试规避这一点(因为他们可以更改他们的用户模型),您的后端仍然会捕获任何未经授权的请求。

  3. 您还可以根据用户访问级别有条件地显示和隐藏页面元素。

这是我的 ACL.coffee 的示例代码

acl = {}

acl['admin'] = [
    'page1',
    'page2',
    'page3',
    'page4',
    'page5'
]

acl['user'] = [
    'page1',
    'page2',
    'page3'
]

hasAccess = (route) ->
    # Get User Model
    user = window.App.user
    # Get Associated ACL
    permissions = acl[user.get('role')]
    # Check each URL for Access Privileges
    # Returns false if route not in array
    permissions.some (r) -> ~route.indexOf r

{hasAccess}
于 2013-03-22T07:42:01.060 回答