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