0

我发现这个库用于为 mongoose 创建 ACL(访问控制列表): https ://github.com/scttnlsn/mongoose-acl

它看起来像一个很好的模块,但我对如何将它用于我的目的有点困惑。

我有一个网站,任何人(无论是否登录)都可以访问个人资料页面,例如 example.com/users/chovy

但是,如果用户 'chovy' 登录到此页面,我想授予他们管理员权限以编辑帐户的详细信息。

如果用户不是“chovy”或未登录,他们只会看到“chovy”的只读个人资料页面。

有人可以给我一个具体的例子来说明我将如何做到这一点吗?

4

1 回答 1

1

这听起来很常见,我认为您不需要 ACL。您将需要有会话,然后您可以根据当前登录的用户更改视图的外观。一个不完整的例子是这样的:

// Assumes:
// - You set req.session.user when user logs in
// - The url route has a :name so you can do req.param() to get the name of the page being viewed

db.users.getCurrentUser(req.session.user, gotLoggedInUser)
db.users.getUserByName({name: req.param('name')}, gotUser)

然后将其传递给视图,当您执行以下操作时res.render()

var is_viewing_own_page = currentUser._id.toString() === loggedInUser._id.toString()

然后视图可以做这样的事情(假设是玉):

- if (is_viewing_own_page)
  div You are looking at your own page
- else
  div You are viewing someone else's page
于 2012-09-30T02:49:37.523 回答