class SakaiInfo::Group

Attributes

dbrow[R]
site_id[R]
title[R]

Public Class Methods

all_serializations() click to toggle source
# File lib/sakai-info/group.rb, line 109
def self.all_serializations
  [:default, :users, :realm]
end
clear_cache() click to toggle source
# File lib/sakai-info/group.rb, line 16
def self.clear_cache
  @@cache = {}
end
count_by_site_id(site_id) click to toggle source
# File lib/sakai-info/group.rb, line 53
def self.count_by_site_id(site_id)
  Group.query_by_site_id(site_id).count
end
find(id) click to toggle source
# File lib/sakai-info/group.rb, line 33
def self.find(id)
  if @@cache[id].nil?
    row = DB.connect[:sakai_site_group].filter(:group_id => id).first
    if row.nil?
      raise ObjectNotFoundException.new(Group, id)
    end
    @@cache[id] = Group.new(row)
  end
  @@cache[id]
end
find_by_site_id(site_id) click to toggle source
# File lib/sakai-info/group.rb, line 48
def self.find_by_site_id(site_id)
  Group.query_by_site_id(site_id).all.
    collect { |row| @@cache[row[:group_id]] = Group.new(row) }
end
new(dbrow) click to toggle source
# File lib/sakai-info/group.rb, line 21
def initialize(dbrow)
  @dbrow = dbrow

  @id = dbrow[:group_id]
  @site_id = dbrow[:site_id]
  @title = dbrow[:title]
end
query_by_site_id(site_id) click to toggle source
# File lib/sakai-info/group.rb, line 44
def self.query_by_site_id(site_id)
  DB.connect[:sakai_site_group].where(:site_id => site_id)
end

Public Instance Methods

default_serialization() click to toggle source

serialization

# File lib/sakai-info/group.rb, line 74
def default_serialization
  result = {
    "id" => self.id,
    "title" => self.title,
    "site" => self.site.serialize(:summary),
    "user_count" => self.realm.user_count,
    "providers" => self.providers,
    "properties" => self.properties
  }
  if result["properties"] == {}
    result.delete("properties")
  end
  result
end
properties() click to toggle source
# File lib/sakai-info/group.rb, line 57
def properties
  @properties ||= GroupProperty.find_by_group_id(self.id)
end
providers() click to toggle source
# File lib/sakai-info/group.rb, line 65
def providers
  @providers ||= self.realm.providers
end
realm() click to toggle source
# File lib/sakai-info/group.rb, line 61
def realm
  @authz_realm ||= AuthzRealm.find_by_site_id_and_group_id(self.site_id, self.id)
end
realm_serialization() click to toggle source
# File lib/sakai-info/group.rb, line 103
def realm_serialization
  {
    "realm" => self.realm.name
  }
end
site() click to toggle source
# File lib/sakai-info/group.rb, line 29
def site
  @site ||= Site.find(@site_id)
end
summary_serialization() click to toggle source
# File lib/sakai-info/group.rb, line 89
def summary_serialization
  {
    "id" => self.id,
    "title" => self.title,
    "user_count" => self.realm.user_count
  }
end
users() click to toggle source
# File lib/sakai-info/group.rb, line 69
def users
  @users ||= AuthzRealmMembership.find_by_realm_id(self.realm.id).collect{|arm|arm.user}
end
users_serialization() click to toggle source
# File lib/sakai-info/group.rb, line 97
def users_serialization
  {
    "users" => self.users.collect { |u| u.serialize(:summary) }
  }
end