Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails Rails基于对象的权限/授权引擎?_Ruby On Rails_Ruby_Permissions_Authorization - Fatal编程技术网

Ruby on rails Rails基于对象的权限/授权引擎?

Ruby on rails Rails基于对象的权限/授权引擎?,ruby-on-rails,ruby,permissions,authorization,Ruby On Rails,Ruby,Permissions,Authorization,我想在我的应用程序中添加“共享文档”功能,就像在谷歌文档服务中一样。如我所见: 用户可以: 可以列出/查看/创建/编辑/删除自己的文档 向每个人共享自己的文档-这是一个公共文档 将自己的文档共享给具有只读访问权限的其他用户 将自己的文档共享给具有读写权限的其他用户 查看他授予读写权限的自己的文档和用户的列表 查看外来文件列表 查看/编辑具有读/写权限的外来文档 请告诉我,我的任务首选哪种权限/授权解决方案?您可以在此处查看一些可用的授权插件: 对于对象级授权/权限,它看起来可以做到: 自

我想在我的应用程序中添加“共享文档”功能,就像在谷歌文档服务中一样。如我所见:

用户可以:

  • 可以列出/查看/创建/编辑/删除自己的文档
  • 向每个人共享自己的文档-这是一个公共文档
  • 将自己的文档共享给具有只读访问权限的其他用户
  • 将自己的文档共享给具有读写权限的其他用户
  • 查看他授予读写权限的自己的文档和用户的列表
  • 查看外来文件列表
  • 查看/编辑具有读/写权限的外来文档

请告诉我,我的任务首选哪种权限/授权解决方案?

您可以在此处查看一些可用的授权插件:

对于对象级授权/权限,它看起来可以做到:

自述文件中的示例:

class Article
  include MongoMapper::Document
  include Canable::Ables
  userstamps! # adds creator and updater

  def updatable_by?(user)
    creator == user
  end

  def destroyable_by?(user)
    updatable_by?(user)
  end
end

您还可以定义一个可查看的_by?方法。您仍然需要文档模型上的某种权限字段或关联,但在此之后,您可以使用canable简化控制器/视图中的授权。

谢谢您的回答。我已经在那里搜索过了。并观看所有与Ryan授权相关的视频。cancan(以及acl9和声明性_授权)无法满足我的需求。我更新了我的评论,将重点放在canable上,因为从自述文件来看,它似乎可以帮助您进行每个对象的授权。我找到的基于对象的权限的最佳库称为Approval,不幸的是,它从未被包装成宝石,可能已经收集了一些原油。