Module: PeRbac::Permission

Defined in:
lib/pe_rbac/permission.rb

Class Method Summary collapse

Class Method Details

.get_permissionsObject

Permissions



24
25
26
27
# File 'lib/pe_rbac/permission.rb', line 24

def self.get_permissions()
  resp = PeRbac::Core::request(:get, "/types")
  resp ? JSON.parse(resp.body) : false
end

.safe_permissions(want_perms) ⇒ Object

Not all requested permissions may be avaiable per use (change between versions). To mitigate this, requeste the list of all valid permissions and remove any permissions that are not in the list from the final list of permissions to request



33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
# File 'lib/pe_rbac/permission.rb', line 33

def self.safe_permissions(want_perms)
  safe_perms  = []
  valid_perms = Permission::get_permissions()

  if want_perms
    want_perms.each { |wp|
      valid = false
      valid_perms.each { |vp|
        if  wp['object_type'] == vp['object_type']
          vp['actions'].each { |va|
            # scan for valid action inside object permissions
            if wp['action'] == va['name']
              valid = true
            end
          }
        end
      }
      if valid
        safe_perms << wp
      end
    }
  end
  safe_perms
end