From 60cdad28eebf45ac2822155cea27277e1f7de455 Mon Sep 17 00:00:00 2001 From: Lukas Fleischer Date: Thu, 30 Jun 2016 15:57:53 +0200 Subject: Distinguish auto-accepted requests MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Before commit 9746a65 (Port notification routines to Python, 2015-06-27), notification emails for automatically closed requests explicitly stated that the action was taken "automatically by the Arch User Repository package request system". When porting the notification routines to Python, this feature was overlooked and emails sent by the new script always reported that the requester triggered the acceptance or rejection of a request. This patch reimplements the old behavior such that notifications no longer look as if the requester had accepted the request himself. Reported-by: Johannes Löthberg Signed-off-by: Lukas Fleischer --- scripts/notify.py | 19 +++++++++++++------ web/lib/pkgreqfuncs.inc.php | 2 +- 2 files changed, 14 insertions(+), 7 deletions(-) diff --git a/scripts/notify.py b/scripts/notify.py index 5e5f377..6ea25d1 100755 --- a/scripts/notify.py +++ b/scripts/notify.py @@ -41,7 +41,10 @@ def send_notification(to, subject, body, refs, headers={}): wrapped = '' for line in body.splitlines(): wrapped += textwrap.fill(line, break_long_words=False) + '\n' - body = wrapped + '\n' + refs + if refs: + body = wrapped + '\n' + refs + else: + body = wrapped for recipient in to: msg = email.mime.text.MIMEText(body, 'plain', 'utf-8') @@ -377,20 +380,24 @@ def request_open(cur, uid, reqid, reqtype, pkgbase_id, merge_into=None): def request_close(cur, uid, reqid, reason): - user = username_from_id(cur, uid) to = [aur_request_ml] cc = get_request_recipients(cur, reqid) text = get_request_closure_comment(cur, reqid) - user_uri = aur_location + '/account/' + user + '/' - subject = '[PRQ#%d] Request %s' % (int(reqid), reason.title()) - body = 'Request #%d has been %s by %s [1]' % (int(reqid), reason, user) + if int(uid): + user = username_from_id(cur, uid) + user_uri = aur_location + '/account/' + user + '/' + body = 'Request #%d has been %s by %s [1]' % (int(reqid), reason, user) + refs = '[1] ' + user_uri + else: + body = 'Request #%d has been %s automatically by the Arch User ' \ + 'Repository package request system' % (int(reqid), reason) + refs = None if text.strip() == '': body += '.' else: body += ':\n\n' + text - refs = '[1] ' + user_uri thread_id = '' headers = headers_reply(thread_id) headers.update(headers_cc(cc)) diff --git a/web/lib/pkgreqfuncs.inc.php b/web/lib/pkgreqfuncs.inc.php index cf56663..8ceac8d 100644 --- a/web/lib/pkgreqfuncs.inc.php +++ b/web/lib/pkgreqfuncs.inc.php @@ -221,7 +221,7 @@ function pkgreq_close($id, $reason, $comments, $auto_close=false) { $dbh = DB::connect(); $id = intval($id); - $uid = uid_from_sid($_COOKIE["AURSID"]); + $uid = $auto_close ? 0 : uid_from_sid($_COOKIE["AURSID"]); if (!$auto_close && !has_credential(CRED_PKGREQ_CLOSE)) { return array(false, __("Only TUs and developers can close requests.")); -- cgit v1.2.3-54-g00ecf