ActsAsRolePermittable 拡張 (1)
ロールベースに基づいたパーミッション設定が可能なモデルを作っています。
実際の使用イメージ。
class SecureModel < ActiveRecord::Base acts_as_role_permittbale # point 0 end model = SecureModel.create(...) # 基本 # モデルに対して "index" という操作が許可/禁止されているかどうか model.role_permissions("index").anonymous = true model.role_permissions("index").roles = {}_ model.role_permissions("index").permit?(user1) #=> true model.role_permissions("index").anonymous = false model.role_permissions("index").roles = {:administrators} model.role_permissions("index").permit?(user1) #=> false model.role_permissions("index").permit?(admin) #=> true # ちょっと短く # パーミッションキーが不要な場合(= モデルに対して、許可/禁止の2通りしかない場合) model.permit_anonymous = false model.permit_roles = {...}} model.permit?(user) # point1 model.permit?(user, key)
ポイントは
- acts_as で実現する意味
- permit? とか他のactsとかぶりそうだけど?
といったところです。