Module: Ez::Permissions::API::Models

Included in:
Ez::Permissions::API
Defined in:
lib/ez/permissions/api/models.rb

Instance Method Summary collapse

Instance Method Details

#assign_role(model, role_name, scoped: nil) ⇒ Object



7
8
9
10
11
12
13
14
15
# 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) ⇒ Boolean

Returns:

  • (Boolean)


23
24
25
26
27
# 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) ⇒ Object



29
30
31
32
33
34
35
36
# 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) ⇒ Object



17
18
19
20
21
# 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