class UcbGroups::CampusGroup

Attributes

description[RW]
dn[RW]
id[RW]
name[RW]
namespace[RW]

Public Class Methods

find(namespace) click to toggle source
# File lib/ucb_groups/campus_group.rb, line 12
def self.find(namespace)
  args = {
      :base => "ou=campus groups,dc=berkeley,dc=edu",
      :filter => build_filter(namespace),
      :attributes => %w(name displayName description dn)
  }
  LdapConn.conn.search(args).map { |entry| CampusGroup.new(entry) }
end
new(ldap_entry) click to toggle source
# File lib/ucb_groups/campus_group.rb, line 5
def initialize(ldap_entry)
  @dn = ldap_entry[:dn].first.to_s
  @name = ldap_entry[:displayName].first.to_s
  @description = ldap_entry[:description].first.to_s
  @namespace, @id = parse_dn
end

Private Class Methods

build_filter(namespace) click to toggle source
# File lib/ucb_groups/campus_group.rb, line 28
def self.build_filter(namespace)
  "(&(objectclass=*)(cn=edu:berkeley:app:#{namespace}*))"
end

Private Instance Methods

parse_dn() click to toggle source

example dn: “cn=edu:berkeley:app:calmessages:faculty,ou=campus groups,dc=berkeley,dc=edu”

# File lib/ucb_groups/campus_group.rb, line 24
def parse_dn
  dn.split(/:|,/)[3..4].map(&:to_s)
end