]> git.pld-linux.org Git - projects/pld-builder.new.git/commitdiff
Fix change_request option for multiple subsequent requests
authorKacper Kornet <draenog@pld-linux.org>
Mon, 8 Apr 2013 01:33:39 +0000 (02:33 +0100)
committerKacper Kornet <draenog@pld-linux.org>
Mon, 8 Apr 2013 08:41:25 +0000 (09:41 +0100)
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

index f7447f1e72acadbaadfcaade657ebb84eefe5c39..44c3964053388035ad1df983ea3b8b1386bccda6 100644 (file)
@@ -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)
This page took 0.253408 seconds and 4 git commands to generate.