Rails で手動アクセス制御を開発していて、動的メニューのヘルプが必要です。
ユーザー、グループ、機能の 3 つのモデルがあります。
ユーザーには 1 つのグループがあります
グループには多くのユーザーがいます
グループには多くの機能があります
ユーザーは、グループを通じて多くの機能を利用できます。
K. 「admin」でログインすると、管理者のグループ機能を備えた動的メニューをレンダリングしたいと考えています。
どうやってやるの?
Rails で手動アクセス制御を開発していて、動的メニューのヘルプが必要です。
ユーザー、グループ、機能の 3 つのモデルがあります。
ユーザーには 1 つのグループがあります
グループには多くのユーザーがいます
グループには多くの機能があります
ユーザーは、グループを通じて多くの機能を利用できます。
K. 「admin」でログインすると、管理者のグループ機能を備えた動的メニューをレンダリングしたいと考えています。
どうやってやるの?
これに沿ってヘルパーとして
def admin_content(current_user)
if current_user.admin?
render 'partial'
end
end
その後、ビューでそれを呼び出すことができます。
「特定のユーザーがアクセスできるリソースを制限する Ruby on Rails の認可ライブラリ」であるCanCanをご覧ください。
次に、例initialize
で示したような方法を使用して、メニューをより適切に制御できます。
def initialize(user)
user ||= User.new # guest user (not logged in)
if user.admin?
can :manage, :all
else
can :read, :all
end
end