Class: Inforouter::AccessList

Inherits:
Record
  • Object
show all
Defined in:
lib/inforouter/access_list.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(params = {}) ⇒ AccessList

Returns a new instance of AccessList.



10
11
12
13
14
15
16
# File 'lib/inforouter/access_list.rb', line 10

def initialize(params = {})
  params = {
    user_groups: [],
    users: []
  }.merge(params)
  super params
end

Instance Attribute Details

#domain_membersObject

The Inforouter::AccessListDomainMembersItem.



4
5
6
# File 'lib/inforouter/access_list.rb', line 4

def domain_members
  @domain_members
end

#user_groupsObject

Array of Inforouter::AccessListUserGroupItems.



6
7
8
# File 'lib/inforouter/access_list.rb', line 6

def user_groups
  @user_groups
end

#usersObject

Array of Inforouter::AccessListUserItems.



8
9
10
# File 'lib/inforouter/access_list.rb', line 8

def users
  @users
end

Instance Method Details

#to_xmlString

The AccessList XML fragment should be structures as

<AccessList>

<DomainMembers Right="2"/>
<UserGroup Domain="" GroupName="Authors" Right="4"/>
<UserGroup Domain="" GroupName="Developers" Right="5"/>
<UserGroup Domain="ProjectX" GroupName="Architect" Right="6"/>
<User Domain="ProjectX" UserName="JoeD" Right="4"/>
<User Domain="ProjectX" UserName="JaneC" Right="6"/>
<User Domain="" UserName="SuzanP" Right="6"/>

</AccessList>

The Right Value can be

0 (No Access) 1 (List) 2 (Read) 3 (Add) 4 (Add & Read) 5 (Change) 6 (Full Control)

Returns:

  • (String)


41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
# File 'lib/inforouter/access_list.rb', line 41

def to_xml
  builder = Nokogiri::XML::Builder.new do |xml|
    xml.AccessList do
      xml.DomainMembers(Right: domain_members.right) if domain_members
      user_groups.each do |user_group|
        xml.UserGroup(
          Domain: user_group.domain,
          GroupName: user_group.name,
          Right: user_group.right
        )
      end
      users.each do |user|
        xml.User(
          Domain: user.domain,
          UserName: user.name,
          Right: user.right
        )
      end
    end
  end
  builder.doc.root.to_s
end