module Ez::Permissions::API::Models

Public Instance Methods

assign_role(model, role_name, scoped: nil) click to toggle source
# File lib/ez/permissions/api/models.rb, line 7
def assign_role(model, role_name, scoped: nil)
  role = Ez::Permissions::API.get_role!(role_name)

  Ez::Permissions::ModelRole.find_or_create_by!(
    role: role,
    model: model,
    scoped: scoped
  )
end
includes_role?(model, role_name, scoped: nil) click to toggle source
# File lib/ez/permissions/api/models.rb, line 23
def includes_role?(model, role_name, scoped: nil)
  role = Ez::Permissions::API.get_role!(role_name)

  model_role(role, model, scoped) ? true : false
end
list_by_role(role_name, scoped: nil) click to toggle source
# File lib/ez/permissions/api/models.rb, line 29
def list_by_role(role_name, scoped: nil)
  role = Ez::Permissions::API.get_role!(role_name)

  Ez::Permissions::ModelRole.where(
    role: role,
    scoped: scoped
  ).map(&:model)
end
reject_role(model, role_name, scoped: nil) click to toggle source
# File lib/ez/permissions/api/models.rb, line 17
def reject_role(model, role_name, scoped: nil)
  role = Ez::Permissions::API.get_role!(role_name)

  model_role(role, model, scoped)&.delete
end

Private Instance Methods

model_role(role, model, scoped) click to toggle source
# File lib/ez/permissions/api/models.rb, line 40
def model_role(role, model, scoped)
  Ez::Permissions::ModelRole.find_by(
    role: role,
    model: model,
    scoped: scoped
  )
end