Class: SakaiInfo::SiteMembership

Inherits:
SakaiObject show all
Defined in:
lib/sakai-info/site.rb

Instance Attribute Summary collapse

Attributes inherited from SakaiObject

#id

Class Method Summary collapse

Instance Method Summary collapse

Methods inherited from SakaiObject

all_serializations, #dbrow_only_serialization, #dbrow_serialization, #object_type_serialization, #serialize, #to_json, #to_yaml

Constructor Details

#initialize(site_id, user_id, role) ⇒ SiteMembership

Returns a new instance of SiteMembership.



430
431
432
433
434
# File 'lib/sakai-info/site.rb', line 430

def initialize(site_id, user_id, role)
  @site = Site.find(site_id)
  @user = User.find(user_id)
  @role = AuthzRole.find(role)
end

Instance Attribute Details

#roleObject (readonly)

Returns the value of attribute role.



428
429
430
# File 'lib/sakai-info/site.rb', line 428

def role
  @role
end

#siteObject (readonly)

Returns the value of attribute site.



428
429
430
# File 'lib/sakai-info/site.rb', line 428

def site
  @site
end

#userObject (readonly)

Returns the value of attribute user.



428
429
430
# File 'lib/sakai-info/site.rb', line 428

def user
  @user
end

Class Method Details

.find_by_site_id(site_id) ⇒ Object



436
437
438
439
440
441
442
443
444
445
446
# File 'lib/sakai-info/site.rb', line 436

def self.find_by_site_id(site_id)
  results = []
  DB.connect.fetch("select srrg.user_id, srr.role_name " +
                   "from sakai_realm_rl_gr srrg, sakai_realm_role srr, sakai_realm sr " +
                   "where srrg.role_key = srr.role_key " +
                   "and srrg.realm_key = sr.realm_key " +
                   "and sr.realm_id = '/site/' || ? ", site_id) do |row|
    results << SiteMembership.new(site_id, row[:user_id], row[:role_name])
  end
  results
end

.find_by_user_id(user_id) ⇒ Object



448
449
450
451
452
453
454
455
456
457
458
459
460
# File 'lib/sakai-info/site.rb', line 448

def self.find_by_user_id(user_id)
  results = []
  DB.connect.fetch("select substr(sr.realm_id,7) as site_id, srr.role_name as role_name " +
                   "from sakai_realm_rl_gr srrg, sakai_realm_role srr, sakai_realm sr " +
                   "where srrg.role_key = srr.role_key " +
                   "and srrg.realm_key = sr.realm_key " +
                   "and srrg.user_id = ? " +
                   "and sr.realm_id like '/site/%' " +
                   "and sr.realm_id not like '%/group/%'", user_id) do |row|
    results << SiteMembership.new(row[:site_id], user_id, row[:role_name])
  end
  results
end

Instance Method Details

#default_serializationObject



462
463
464
465
466
467
468
# File 'lib/sakai-info/site.rb', line 462

def default_serialization
  {
    "site" => self.site.serialize(:summary),
    "user" => self.user.serialize(:summary),
    "role" => self.role.name
  }
end

#site_summary_serializationObject



489
490
491
492
493
494
495
496
# File 'lib/sakai-info/site.rb', line 489

def site_summary_serialization
  {
    "user_id" => self.user.id,
    "user_eid" => self.user.eid,
    "user_type" => self.user.type,
    "role" => self.role.name
  }
end

#summary_serializationObject



470
471
472
473
474
475
476
477
478
479
# File 'lib/sakai-info/site.rb', line 470

def summary_serialization
  {
    "site_id" => self.site.id,
    "site_title" => self.site.title,
    "user_id" => self.user.id,
    "user_eid" => self.user.eid,
    "user_type" => self.user.type,
    "role" => self.role.name
  }
end

#user_summary_serializationObject



481
482
483
484
485
486
487
# File 'lib/sakai-info/site.rb', line 481

def user_summary_serialization
  {
    "site_id" => self.site.id,
    "site_title" => self.site.title,
    "role" => self.role.name
  }
end