私は認証にdeviseを使用していますが、ユーザーを作成できるのは管理者だけです。
cancanを使用して、ユーザーの作成中にユーザーに役割を割り当てます。
管理者にすべてのユーザーの役割を表示させ、管理者がユーザーの役割を編集できるようにする必要があります。
これどうやってするの?
私は認証にdeviseを使用していますが、ユーザーを作成できるのは管理者だけです。
cancanを使用して、ユーザーの作成中にユーザーに役割を割り当てます。
管理者にすべてのユーザーの役割を表示させ、管理者がユーザーの役割を編集できるようにする必要があります。
これどうやってするの?
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
ユーザーモデルのロール属性を追加できます。次に、ユーザーが管理ダッシュボードに移動するときに、ユーザーの役割を確認できます。ユーザーが管理者でない場合は、別のページにリダイレクトします(を使用してbefore_filter :function
)
しかし、すべてを手動で行う代わりに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:私の英語が悪すぎたらごめんなさい、ありがとう:)