commit 854eb7784b6d20c8f642c26f58ba4bbbc3be8228
Author: Kacper Kornet <[email protected]>
Date:   Mon Apr 8 02:33:39 2013 +0100

    Fix change_request option for multiple subsequent requests
    
    In previous version on every request from user with change_request=True,
    its login was potentially prefixed with the real requester. It could
    produced undesirable result on subsequent requests as the user database
    is not reinitialized between requests. This commit fixes it by earlier
    setting r.requester{,_email} and using the second one as the address to
    which send emails about errors with privs.

 PLD_Builder/request_handler.py | 19 ++++++++++---------
 1 file changed, 10 insertions(+), 9 deletions(-)
---
diff --git a/PLD_Builder/request_handler.py b/PLD_Builder/request_handler.py
index f7447f1..44c3964 100644
--- a/PLD_Builder/request_handler.py
+++ b/PLD_Builder/request_handler.py
@@ -19,6 +19,7 @@ from acl import acl
 from lock import lock
 from bqueue import B_Queue
 from config import config, init_conf
+from mailer import Message
 
 def check_double_id(id):
     id_nl = id + "\n"
@@ -45,7 +46,8 @@ def handle_group(r, user):
         else:
             spec = "None.spec"
         log.error("%s: %s" % (spec, msg))
-        m = user.message_to()
+        m = Message()
+        m.set_headers(to = r.requester_email, cc = config.builder_list)
         m.set_headers(subject = "building %s failed" % spec)
         m.write_line(msg)
         m.send()
@@ -55,13 +57,14 @@ def handle_group(r, user):
         lockf.close()
         return
 
-    if (user.change_requester and r.requester):
-        try:
+    try:
+        if (user.change_requester and r.requester):
             user = acl.user_by_login(r.requester)
-        except KeyError:
-            user.login = r.requester + '/' + user.login
-        if (r.requester_email):
-            user.mailto = r.requester_email
+    except KeyError:
+            r.requester += '/' + user.get_login()
+    else:
+        r.requester = user.get_login()
+        r.requester_email = user.mail_to()
 
     for batch in r.batches:
 
@@ -127,8 +130,6 @@ def handle_group(r, user):
                    return
 
     r.priority = user.check_priority(r.priority,config.builder)
-    r.requester = user.get_login()
-    r.requester_email = user.mail_to()
     r.time = time.time()
     log.notice("queued %s from %s" % (r.id, user.get_login()))
     q = B_Queue(path.queue_file)
================================================================

---- gitweb:

http://git.pld-linux.org/gitweb.cgi/projects/pld-builder.new.git/commitdiff/854eb7784b6d20c8f642c26f58ba4bbbc3be8228

_______________________________________________
pld-cvs-commit mailing list
[email protected]
http://lists.pld-linux.org/mailman/listinfo/pld-cvs-commit

Reply via email to