module IAmICan

Constants

VERSION

Public Instance Methods

acts_as_allowed_resource() click to toggle source
# File lib/i_am_i_can.rb, line 84
def acts_as_allowed_resource
  include Resource
end
acts_as_permission() click to toggle source
# File lib/i_am_i_can.rb, line 72
def acts_as_permission
  i_am_i_can&.act = :permission
  include Reflection
  include Permission

  instance_exec(%i[ role role_group ], &Dynamic.scopes)
  instance_exec(&Dynamic.class_reflections)

  before_create { self.remarks ||= name.to_s.humanize }
  validates :action, uniqueness: { scope: %i[ obj_type obj_id ] }
end
acts_as_role() click to toggle source
# File lib/i_am_i_can.rb, line 36
def acts_as_role
  i_am_i_can&.act = :role
  include Reflection
  include Role

  extend  Permission::Definition
  include Permission::Assignment

  instance_exec(%i[ subject role_group permission ], &Dynamic.scopes)
  instance_exec(&Dynamic.class_reflections)
  instance_exec(%w[ permission ], &Dynamic.assignment_helpers)
  instance_exec(%w[ permission ], &Dynamic.definition_helpers)

  before_create { self.remarks ||= name.to_s.humanize }
  validates :name, uniqueness: true
end
acts_as_role_group() click to toggle source
# File lib/i_am_i_can.rb, line 53
def acts_as_role_group
  i_am_i_can&.act = :role_group
  include Reflection
  include Role
  # include RoleGroup

  include Role::Grouping
  extend  Permission::Definition
  include Permission::Assignment

  instance_exec(%i[ permission role ], &Dynamic.scopes)
  instance_exec(&Dynamic.class_reflections)
  instance_exec(%w[ role permission ], &Dynamic.assignment_helpers)
  instance_exec(%w[ permission ], &Dynamic.definition_helpers)

  before_create { self.remarks ||= name.to_s.humanize }
  validates :name, uniqueness: true
end
acts_as_subject() click to toggle source
# File lib/i_am_i_can.rb, line 19
def acts_as_subject
  i_am_i_can&.act = :subject
  include Reflection
  include Subject

  extend  Role::Definition
  include Role::Assignment
  extend  RoleGroup::Definition
  include Subject::RoleQuerying
  include Subject::PermissionQuerying

  instance_exec(%i[ role ], &Dynamic.scopes)
  instance_exec(&Dynamic.class_reflections)
  instance_exec(%w[ role ], &Dynamic.assignment_helpers)
  instance_exec(%w[ role ], &Dynamic.definition_helpers)
end