Class: Jabara::ParseCom::Schema::ACL

Inherits:
Object
  • Object
show all
Defined in:
lib/jabara/parse_com/schema.rb

Instance Method Summary collapse

Constructor Details

#initialize(user_acl_object_type:, role_acl_object_type:) ⇒ ACL

Returns a new instance of ACL.



128
129
130
131
# File 'lib/jabara/parse_com/schema.rb', line 128

def initialize user_acl_object_type: , role_acl_object_type:
  @user_acl_object_type = user_acl_object_type
  @role_acl_object_type = role_acl_object_type
end

Instance Method Details

#decode_acl_role_entry(role_name, acl_permission) ⇒ Object



154
155
156
157
158
159
160
# File 'lib/jabara/parse_com/schema.rb', line 154

def decode_acl_role_entry(role_name, acl_permission)
  data = {}
  data['roleName'] = ::Jabara.primitive(:string, role_name)
  data['read'] = ::Jabara.primitive(:boolean, acl_permission['read'] || false)
  data['write'] = ::Jabara.primitive(:boolean, acl_permission['write'] || false)
  ::Jabara.object(@role_acl_object_type, data)
end

#decode_acl_user_entry(user_object_id, acl_permission) ⇒ Object



146
147
148
149
150
151
152
# File 'lib/jabara/parse_com/schema.rb', line 146

def decode_acl_user_entry(user_object_id, acl_permission)
  data = {}
  data['userObjectId'] = ::Jabara.primitive(:string, user_object_id)
  data['read'] = ::Jabara.primitive(:boolean, acl_permission['read'] || false)
  data['write'] = ::Jabara.primitive(:boolean, acl_permission['write'] || false)
  ::Jabara.object(@user_acl_object_type, data)
end

#parse(data) ⇒ Object



133
134
135
136
137
138
139
140
141
142
143
144
# File 'lib/jabara/parse_com/schema.rb', line 133

def parse(data)
  return ::Jabara.set([]) if data.nil?
  elems = ::Jabara::Transformer::KeyValue.new.to_entries(data).map {|entry|
    if entry[:key].start_with? 'role:' then
      decode_acl_role_entry(entry[:key].gsub(/role:/, ''), entry[:value])
    else
      decode_acl_user_entry(entry[:key], entry[:value])
    end
  }

  return ::Jabara.set(elems)
end