0

我使用设计进行身份验证,只有管理员可以创建用户。

我使用 cancan 在用户创建期间为用户分配角色。

我希望管理员查看所有用户角色,并且管理员应该能够编辑用户的角色。

我怎样才能做到这一点?

4

2 回答 2

1

查看https://github.com/marklocklear/devise_multi_tentant。在能力.rb 我有...

class Ability
  include CanCan::Ability

  def initialize(user)
    can :manage, :all if user.role == "admin"
  end
end
于 2012-10-19T12:37:33.933 回答
0
  1. 您可以为用户模型添加角色属性。然后,当用户进入管理仪表板时,您可以检查用户的角色。如果用户不是管理员,则重定向到另一个页面(使用before_filter :function

  2. 但是,您可以使用 gemcancan代替手动执行所有操作,它非常流行且易于使用!您可以在此处找到文档:GitHub 或在 rails cast episodes 192

基本上,它将创建一个能力模型,您将为用户声明权限,一个样本能力类

class Ability

  include CanCan::Ability

  def initialize(user)
    user ||= User.new # guest user (not logged in)
    if user.admin?
      can :update, User
    end
 end
end

之后,您可以为用户在操作、控制器或视图中授权,如示例见此链接

PS:对不起,如果我的英语太糟糕了,谢谢:)

于 2012-10-18T14:42:37.707 回答