2016-12-08 25 views
0

我的控制器中的所有CRUD操作都是在属于current_user的资源上完成的,即经过身份验证的用户。例如。如果所有资源都来自current_user,我是否需要授权?

@post = current_user.posts.create(title: "My title") 
@posts = current_user.posts.where(archived: false) 

当我在的地方授权我可以重定向和日志未授权的请求,但除此之外, - 是没有任何保障待遇实行授权系统(例如权威人士,cancancan等)?

回答

1

在这样一个简单的情况下,没有。

如果您希望记录未经授权的访问,可以轻松地通过添加覆盖一个或两个方法并添加Rails.logger.warn 'got the bad guy!'来完成。

然而,考虑以下因素:

你的用户群请求编辑在同一时间后。

他们还想设置某人可以在帖子上执行的操作。

他们还希望设置具有许多组有许多帖子的项目的团队。

根据您所属的团队,团队,项目,意味着您可以编辑帖子。

如果某人属于企业团队并属于主席组,他们可以执行任何操作,无论如何。

此时,唯一的解决方案是像cancancanpundit这样的权限系统,并且对于动态权限,甚至可以将权限设置为数据库表,然后循环遍历所有权限并生成围绕权限的规则。

相关问题