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 1b3f046 Move unsubbable check to library method
1b3f046 is described below
commit 1b3f04669702d60e4326ee834f97fb02c9a6c9c8
Author: Sebb <[email protected]>
AuthorDate: Fri Mar 18 15:55:17 2022 +0000
Move unsubbable check to library method
---
lib/whimsy/asf/mail.rb | 10 +++++++++-
www/committers/subscribe.cgi | 3 +--
2 files changed, 10 insertions(+), 3 deletions(-)
diff --git a/lib/whimsy/asf/mail.rb b/lib/whimsy/asf/mail.rb
index f34b268..1056955 100644
--- a/lib/whimsy/asf/mail.rb
+++ b/lib/whimsy/asf/mail.rb
@@ -52,7 +52,7 @@ module ASF
@auto[:disallowed]
end
- def self.cannot_unsub
+ def self._cannot_unsub
self._load_auto()
@auto[:cannotunsubscribe]
end
@@ -72,6 +72,14 @@ module ASF
@auto[:members] + @auto[:chairs]
end
+ # Is a list available for unsubscription via Whimsy?
+ # Params: listid (a@b)
+ # Return: true or false
+ def self.unsubbable?(listid)
+ # cannot_unsub currently defined in listkey format
+ !self._cannot_unsub.include? listdom2listkey(listid)
+ end
+
# which lists are available for subscription via Whimsy?
# Params:
# member: true if member
diff --git a/www/committers/subscribe.cgi b/www/committers/subscribe.cgi
index 7548262..253d41c 100755
--- a/www/committers/subscribe.cgi
+++ b/www/committers/subscribe.cgi
@@ -40,7 +40,6 @@ ldap_pmcs += user.podlings.map(&:mail_list) unless
user.asf_member?
addrs = user.all_mail
seen = {}
-cannot_unsub = ASF::Mail.cannot_unsub
lists = ASF::Mail.cansub(user.asf_member?, ASF.pmc_chairs.include?(user),
ldap_pmcs, false)
.map { |dom, _, list|
@@ -165,8 +164,8 @@ _html do
_br
# collect subscriptions
subscriptions =
ASF::MLIST.subscriptions(user.all_mail)[:subscriptions].
+ select { |listid, _| ASF::Mail.unsubbable? listid}. # can we
unsubscribe from this list?
map {|a, b| [ASF::Mail.listdom2listkey(a), b]}. # convert to
listkey format
- reject { |listkey, _| cannot_unsub.include? listkey}. # reject
unusable
group_by {|listkey, _mail| listkey}. # allow for multiple subs to
single list
transform_values {|v| v.map(&:last)} # pick out the emails