Method: PeRbac::Role.update_role

Defined in:
lib/pe_rbac/role.rb

.update_role(display_name, description = nil, permissions = nil, user_ids = nil, group_ids = nil) ⇒ Object



69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
# File 'lib/pe_rbac/role.rb', line 69

def self.update_role(display_name, description=nil, permissions=nil, user_ids=nil, group_ids=nil)
  role_id = get_role_id(display_name)
  safe_perms = Permission::safe_permissions(permissions)
  status = false
  if role_id
    role = get_role(role_id)
    role['display_name']  = display_name ? display_name : role['display_name']
    role['description']   = description ? display_name : role['description']
    role['permissions']   = safe_perms ? safe_perms : role['permissions']
    role['user_ids']      = user_ids ? Array(user_ids) : role['user_ids']
    role['group_ids']     = group_ids ? Array(group_ids) : role['group_ids']

    PeRbac::Core::request(:put, "/roles/#{role_id}", role)
    status = true
  end
  status
end