0

私は認証にdeviseを使用していますが、ユーザーを作成できるのは管理者だけです。

cancanを使用して、ユーザーの作成中にユーザーに役割を割り当てます。

管理者にすべてのユーザーの役割を表示させ、管理者がユーザーの役割を編集できるようにする必要があります。

これどうやってするの?

4

2 に答える 2

1

https://github.com/marklocklear/devise_multi_tentantをチェックしてください。ability.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. しかし、すべてを手動で行う代わりにcancan、代わりにgemを使用できます。これは非常に人気があり、使いやすいです。ドキュメントはここにあります:GitHub またはRailsキャストエピソード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 に答える