Enable creation of emeritus request by owner
diff --git a/www/roster/views/actions/memstat.json.rb b/www/roster/views/actions/memstat.json.rb
index f28c8df..370c524 100644
--- a/www/roster/views/actions/memstat.json.rb
+++ b/www/roster/views/actions/memstat.json.rb
@@ -28,7 +28,6 @@
index = text.index(/^\s\*\)\s/, text.index(/^Emeritus/))
entry.sub! %r{\s*/\* deceased, .+?\*/},'' # drop the deceased comment if necessary
# if pending emeritus request was found, move it to emeritus
- # If emeritus request was found, move it to emeritus
filename = ASF::EmeritusRequestFiles.extractfilename(@emeritusfileurl)
if filename
extra << ['mv', @emeritusfileurl, ASF::SVN.svnpath!('emeritus', filename)]
@@ -59,7 +58,7 @@
# TODO handle case where rescinded file already exists
ASF::SVN.svn_!('mv', [@emeritusfileurl, ASF::SVN.svnurl('emeritus-requests-rescinded')], _, {env:env, msg:message})
elsif @action == 'request_emeritus'
- # Create mail to secretary requesting emeritus
+ # Create emeritus request and send acknowlegement mail from secretary
template, err =
ASF::SVN.svn('cat', ASF::SVN.svnpath!('foundation', 'emeritus-request.txt').untaint, {env:env})
raise RuntimeError.new("Failed to read emeritus-request.txt: " + err) unless template
@@ -74,20 +73,26 @@
.gsub('Signed: __________________________________________________________',
'Signed by validated user at: ________Whimsy www/committer_________')
.gsub('Date: _________________________________',
- ('Date: _______' + centered_date))
-
- ASF::Mail.configure
- mail = Mail.new do
- to "secretary@apache.org"
- cc "#{USERNAME}<#{USERMAIL}>"
- from "#{USERMAIL}"
- subject "Emeritus request from #{USERNAME}"
- text_part do
- body "Please accept my emeritus request, which is attached.\n\nRegards,\n\n#{USERNAME}\n\n"
+ ('Date: _______' + centered_date)).untaint
+ # Write the emeritus request to emeritus-requests-received
+ EMERITUS_REQUEST_URL = ASF::SVN.svnpath!('emeritus-requests-received').untaint
+ Dir.mktmpdir do |tmpdir|
+ filename =File.join(tmpdir,'tmpfile')
+ File.write(filename, signed_request)
+ if 0 == ASF::SVN.create_(EMERITUS_REQUEST_URL, "#{USERID}.txt", filename, "Emeritus request from #{USERNAME} (#{USERID})", env, _)
+ ASF::Mail.configure
+ mail = Mail.new do
+ from "secretary@apache.org"
+ to "#{USERNAME}<#{USERMAIL}>"
+ subject "Acknowledgement of emeritus request from #{USERNAME}"
+ text_part do
+ body "This acknowledges receipt of your emeritus request. You can find the request at #{EMERITUS_REQUEST_URL}#{USERID}.txt. A copy is attached for your records.\n\nWarm Regards,\n\nSecretary, Apache Software Foundation\nsecretary@apache.org\n\n"
+ end
+ end
+ mail.attachments["#{USERID}.txt"] = signed_request
+ mail.deliver!
end
end
- mail.attachments["#{USERID}.txt"] = signed_request.untaint
- mail.deliver!
elsif @action == 'request_reinstatement'
ASF::Mail.configure
mail = Mail.new do
@@ -96,7 +101,7 @@
from "#{USERMAIL}"
subject "Emeritus reinstatement request from #{USERNAME}"
text_part do
- body "I respectfully request reinstatement to full membership.\n\nRegards,\n\n#{USERNAME}"
+ body "I respectfully request reinstatement to full membership in The Apache Software Foundation.\n\nRegards,\n\n#{USERNAME}"
end
end
mail.deliver!