This is an automated email from the ASF dual-hosted git repository.
sebb pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/whimsy.git
The following commit(s) were added to refs/heads/master by this push:
new 61b10784 Show official membership status
61b10784 is described below
commit 61b10784a52163959c23b534f50ddfb2f45cda97
Author: Sebb <[email protected]>
AuthorDate: Sun May 14 16:48:04 2023 +0100
Show official membership status
---
www/roster/models/group.rb | 6 ++++--
www/roster/views/group.js.rb | 13 +++++++++----
2 files changed, 13 insertions(+), 6 deletions(-)
diff --git a/www/roster/models/group.rb b/www/roster/models/group.rb
index 521924b7..d35d4aee 100644
--- a/www/roster/models/group.rb
+++ b/www/roster/models/group.rb
@@ -32,6 +32,8 @@ class Group
def self.serialize(id, itype=nil)
response = {}
+ member_status = ASF::Member.member_statuses
+
type = 'LDAP group'
group = ASF::Group.find(id)
@@ -55,7 +57,7 @@ class Group
type: type,
dn: (group.dn rescue ''), # not all groups have a DN
members: Hash[group.members.map {|person| [person.id, (person.cn
rescue '**Entry missing from LDAP people**')]}], # if id not in people
- asfmembers: group.members.select{|person|
ASF.members.include?(person)}.map(&:id),
+ memberstatus: group.members.map{|person| [person.id,
member_status[person.id]]}.to_h,
}
if id == 'hudson-jobadmin'
@@ -84,7 +86,7 @@ class Group
type: type,
dn: (group.dn rescue ''), # not all groups have a DN
members: Hash[group.map {|person| [person.id, person.cn]}],
- asfmembers: group.select{|person|
ASF.members.include?(person)}.map(&:id),
+ memberstatus: group.map{|person| [person.id,
member_status[person.id]]}.to_h,
}
end
end
diff --git a/www/roster/views/group.js.rb b/www/roster/views/group.js.rb
index e08a01b9..ad049668 100644
--- a/www/roster/views/group.js.rb
+++ b/www/roster/views/group.js.rb
@@ -11,7 +11,7 @@ class Group < Vue
def render
group = @group
members = group.members.keys().sort_by {|id| group.members[id]}
- asfmembers = group.asfmembers || []
+ memberstatus = group.memberstatus || {}
if group.type == 'LDAP auth group' or group.id == 'asf-secretary'
auth = (members.include? @@auth.id or @@auth.secretary or @@auth.root)
@@ -48,7 +48,7 @@ class Group < Vue
_tbody do
members.each do |id|
- _GroupMember id: id, name: group.members[id], auth: auth, asfmember:
asfmembers.includes(id),
+ _GroupMember id: id, name: group.members[id], auth: auth,
memberstatus: memberstatus[id],
pending: false
end
@@ -115,10 +115,15 @@ class GroupMember < Vue
def render
_tr onDblclick: self.select do
_td {_a @@id, href: "committer/#{@@id}"}
- if @@asfmember
+ if @@memberstatus == 'current'
_td { _b @@name }
- else
+ elsif @@memberstatus.nil?
_td @@name
+ else
+ _td do
+ _i @@name
+ _ " (#{@@memberstatus})"
+ end
end
_td data_id: @@id do