次のことを実装するgemが存在します:
- ユーザーは多くの役割を持つことができます
- 各ロールには権限のグループがあります
- 各許可は単なるブール値です
- データベースに保存されている役割と権限 (最も重要)
たとえば、次のようなものが必要です。
if current_user.can?(:read_all, :list_of_orders)
...
end
can?
メソッドは検索する必要があり、ロールのいずれかがそれを許可しますか?
次のことを実装するgemが存在します:
たとえば、次のようなものが必要です。
if current_user.can?(:read_all, :list_of_orders)
...
end
can?
メソッドは検索する必要があり、ロールのいずれかがそれを許可しますか?
ユーザー認証のデバイスを参照してください。そこでロールを定義できます。
https://github.com/plataformatec/devise
さらに良いことに、cancan と簡単に組み合わせることができます。
https://github.com/ryanb/cancan/wiki/Role-Based-Authorization
cancan gemを試すことができます、それは強力です
https://github.com/ryanb/cancan
例えば:
<% if can? :update, @article %>
<%= link_to "Edit", edit_article_path(@article) %>
<% end %>
で能力を定義することができますability.rb
can :manage, Article # user can perform any action on the article
can :read, :all # user can read any object
can :manage, :all # user can perform any action on any object
Zippie の質問に続いて、CanCan を使用することをお勧めしますが、認証に使用することもできます。Rails 3 Authentication and Authorization with Devise and CanCan (Part 1) & Rails 3 Authentication and Authorization with Devise and CanCan (Part 2)が役立つ次のリンクを参照してください。
あなたは潜在的にあなたの中にこのようなものを持つことができますability.rb
class Ability
include CanCan::Ability
def initialize(user)
user ||= User.new # guest user
# raise user.role?(:administrator).inspect
if user.role? :administrator
can :manage, :all
can :manage, User
elsif user.role? :employee
can :read, :all
end
end
end
あなたの見解では、次のようなことができます
can?
コントローラーで を使用して、必要なフィルターを作成することもできます。