Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/62.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby/24.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_User Permissions_Usergroups - Fatal编程技术网

Ruby on rails 我想在我的rails应用程序中实现组权限。最有效的方法是什么?

Ruby on rails 我想在我的rails应用程序中实现组权限。最有效的方法是什么?,ruby-on-rails,ruby,user-permissions,usergroups,Ruby On Rails,Ruby,User Permissions,Usergroups,我希望能够允许我的管理员用户能够控制他们在帐户上的标准用户可以执行的几乎所有操作。在为他们创建要管理的组权限时,最好是有一个包含100多行布尔值的巨型表,还是将所有权限存储在数据库文本字段中的哈希中?也许只储存他们不能做的东西?或者他们能做什么?(哪个列表通常较小?) 在webapps中有没有标准的方法来实现这一点 我将存储的一些示例: 是否可以删除对象? 是否可以编辑对象? 能否创建对象? 可以删除仆从对象吗? 是否可以删除\u管理器\u对象 我真的很喜欢罐头?可以使用的语法。 如果它不是定义

我希望能够允许我的管理员用户能够控制他们在帐户上的标准用户可以执行的几乎所有操作。在为他们创建要管理的组权限时,最好是有一个包含100多行布尔值的巨型表,还是将所有权限存储在数据库文本字段中的哈希中?也许只储存他们不能做的东西?或者他们能做什么?(哪个列表通常较小?)

在webapps中有没有标准的方法来实现这一点

我将存储的一些示例:

是否可以删除对象?
是否可以编辑对象?
能否创建对象?
可以删除仆从对象吗?
是否可以删除\u管理器\u对象

我真的很喜欢罐头?可以使用的语法。
如果它不是定义做事情的函数,那就太好了。除了存储所有这些布尔值,我还可能最终这么做。。因为有帐户级别的权限将覆盖组级别的权限。

这取决于权限的确切用途,也许您想要的是CanCan之类的东西


您能描述一些其他权限吗?

[edit]-稍微澄清了代码

我认为如果有任何类型的权限分组,你真的应该再次查看CanCan(即将用户分组为具有类似权限的管理员、仆从……并将该字段保存到db中,而不是将所有功能散列)

下面是一个例子,说明在您的情况下,能力课程可能会是什么样子:

class Ability
  include CanCan::Ability

  def initialize(user)

    # All registered users can edit their own objects
    can :manage, [Object], :user_id => user.id

    # Different roles
    if user.moderator?
      can :delete, [Object], :user_id => user.minion.id
    elsif user.admin?
      can :delete, [Object], :user_id => user.manager.id
    end
  end
end
是一个不错的Ruby认证宝石列表


我已经深入使用了CanCan和acl9,并对其他几个进行了回顾。我同意使用CanCan的建议,但在一个需要用户、角色和组分配权限管理的复杂应用程序上使用acl9 gem也取得了不错的成功。

我看过CanCan,它不是基于DB的。都是关于方法的。。。我最终需要使用一系列的方法。所以我可以看看这个。。。但在我看来,这与在/lib文件夹中定义一组方法完全相同。我将添加一些示例。我喜欢这样,但最终,帐户上的管理员将能够自定义其帐户上的gorup权限。gems的最大问题是,我需要允许我的管理员自定义权限。不错的名单。啊,我明白了。我开发了一个自定义Rails应用程序,它将自定义权限映射到管理员可以控制这些权限的操作。但我们做了大量调查,试图找到一个支持此功能的gem,但什么也找不到。这就是回购协议。