class AdobeConnect::Group

Public: Represents a Group in a Connect environment.

Attributes

description[RW]
id[RW]
name[RW]

Public Class Methods

find_by_name(name, service = AdobeConnect::Service.new) click to toggle source

Public: Find the given group on the Connect server.

name - Group's name on Connect server

Returns an AdobeConnect::Group or nil.

# File lib/adobe_connect/group.rb, line 64
def self.find_by_name(name, service = AdobeConnect::Service.new)
  response = service.principal_list(:filter_name => name)

  if principal = response.at_xpath('//principal')
    self.load_from_xml(principal)
  end
end

Private Class Methods

load_from_xml(g) click to toggle source
# File lib/adobe_connect/group.rb, line 83
def self.load_from_xml(g)
  desc = g.at_xpath('//description')
  desc = desc.children unless desc.nil?
  desc = desc.text unless desc.nil?
  self.new({
      :name => g.at_xpath('//name').children.text,
      :description => desc,
      :id => g.attr('principal-id')
    })
end

Public Instance Methods

add_member(user) click to toggle source

Public: Add a User as a member of this group.

user - AdobeConnect::User instance

Returns a boolean of success.

# File lib/adobe_connect/group.rb, line 31
def add_member(user)
  update_membership(user, true)
end
attrs() click to toggle source

group_options - A hash with the following keys:

name        - The group’s name.
description - The group's description
# File lib/adobe_connect/group.rb, line 13
def attrs
  atrs = { :has_children => 1, :name => name, :description => description }

  if !self.id.nil?
    atrs.merge!(:principal_id => self.id)
  else
    atrs.merge!(
      :type => 'group'
    )
  end
  atrs
end
is_member?(email) click to toggle source

Public: Find the member of this group.

email - User's email address

Returns a boolean.

# File lib/adobe_connect/group.rb, line 40
def is_member?(email)
  return false if self.id.nil?

  response = service.principal_list(:group_id => self.id,
    :filter_email => email,
    :filter_is_member => true)

  !response.at_xpath('//principal').nil?
end
remove_member(user) click to toggle source

Public: Remove a User from this group.

user - AdobeConnect::User instance

Returns a boolean of success.

# File lib/adobe_connect/group.rb, line 55
def remove_member(user)
  update_membership(user, false)
end

Private Instance Methods

update_membership(user, status) click to toggle source
# File lib/adobe_connect/group.rb, line 73
def update_membership(user, status)
  response = service.group_membership_update({
      :group_id => self.id,
      :principal_id => user.id,
      :is_member => status
    })

  response.at_xpath('//status').attr('code') == 'ok'
end