繁体   English   中英

与CanCan,Devise和Rolify建立关联的授权

[英]Authorization on an association with CanCan,Devise and Rolify

我的应用程序中具有当前的数据库结构:

Publisher has_many videos, has_many users
Video      belongs_to publisher
User       belongs_to publisher

我希望能够根据发布者向用户授予权限,但是实际上被编辑的对象是视频对象。

这意味着用户X可以编辑来自发布者1和2的视频,而用户Y只能编辑来自发布者2和3的视频,依此类推。 我很确定可以使用CanCan,Devise,Rolify组合来完成此操作。

有人可以在这里指出正确的方向吗?

回复较晚,抱歉。 希望您现在已经解决了您的问题,但是我会为您提供解决方案。

在您的CanCan能力中,您具有以下内容:

def initialize(current_user) 
  current_user ||= User.new

  can :update, Video do |video|
    current_user.publisher_list.contains? video.publisher
  end
end

如果user.publisher_list返回用户可以修改的发布者列表,则上面的代码将起作用。 我相信您也可以:

def initialize(current_user)
  current_user ||= User.new

  can :update, Video, publisher: {id: current_user.publisher_list}
end

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM