Commit f6fea156da90ad25bf34808976b27de37ffe7190:
services
Branch: refs/heads/master
Author: Sam Ruby <[email protected]>
Committer: Sam Ruby <[email protected]>
Pusher: rubys <[email protected]>
------------------------------------------------------------
lib/whimsy/asf/ldap.rb | +++++ --
www/roster/models/committer.rb | + -
www/roster/models/group.rb | ++++++++++
www/roster/views/group.js.rb | ++++ -
------------------------------------------------------------
24 changes: 20 additions, 4 deletions.
------------------------------------------------------------
diff --git a/lib/whimsy/asf/ldap.rb b/lib/whimsy/asf/ldap.rb
index 7109d17..e565530 100644
--- a/lib/whimsy/asf/ldap.rb
+++ b/lib/whimsy/asf/ldap.rb
@@ -359,9 +359,12 @@ def groups
Group.list("memberUid=#{name}")
end
+ def services
+ Service.list("member=#{dn}")
+ end
+
def dn
- value = attrs['dn']
- value.first if Array === value
+ "uid=#{name},#{ASF::Person.base}"
end
def method_missing(name, *args)
diff --git a/www/roster/models/committer.rb b/www/roster/models/committer.rb
index 4570486..a6aaecb 100644
--- a/www/roster/models/committer.rb
+++ b/www/roster/models/committer.rb
@@ -36,7 +36,7 @@ def self.serialize(id, env)
response[:committees] = person.committees.map(&:name)
- response[:groups] = []
+ response[:groups] = person.services
response[:committer] = []
committees = ASF::Committee.list.map(&:id)
person.groups.map(&:name).each do |group|
diff --git a/www/roster/models/group.rb b/www/roster/models/group.rb
index be2139c..2be3980 100644
--- a/www/roster/models/group.rb
+++ b/www/roster/models/group.rb
@@ -2,11 +2,21 @@ class Group
def self.serialize(id)
response = {}
+ type = 'LDAP group'
group = ASF::Group.find(id)
+
+ if group.members.empty?
+ type = 'LDAP service'
+ group = ASF::Service.find(id)
+ end
+
+ return if group.members.empty?
+
people = ASF::Person.preload('cn', group.members)
response = {
id: id,
+ type: type,
members: Hash[group.members.map {|person| [person.id, person.cn]}]
}
diff --git a/www/roster/views/group.js.rb b/www/roster/views/group.js.rb
index 575f94f..60ead74 100644
--- a/www/roster/views/group.js.rb
+++ b/www/roster/views/group.js.rb
@@ -8,7 +8,10 @@ def render
members = group.members.keys().sort_by {|id| group.members[id]}
# header
- _h1 group.id
+ _h1 do
+ _span group.id
+ _span.note " (#{group.type})"
+ end
# list of members
_table.table.table_hover do