[projects/pld-builder.new] Introduce change_requester option

draenog draenog at pld-linux.org
Sun Apr 7 06:55:49 CEST 2013


commit cba0beaa63ef45c7e698815e2552f5c641eeeb6b
Author: Kacper Kornet <draenog at pld-linux.org>
Date:   Fri Apr 5 12:53:03 2013 +0100

    Introduce change_requester option
    
    If the user has an change_requester option enabled the actual user and
    its email are read from request. If the user is not present in acl.conf
    its privs are the same as the ones of original user.

 PLD_Builder/acl.py             | 7 +++++++
 PLD_Builder/request_handler.py | 8 ++++++++
 2 files changed, 15 insertions(+)
---
diff --git a/PLD_Builder/acl.py b/PLD_Builder/acl.py
index a769d06..5f06219 100644
--- a/PLD_Builder/acl.py
+++ b/PLD_Builder/acl.py
@@ -18,6 +18,7 @@ class User:
         self.privs = []
         self.gpg_emails = []
         self.mailto = ""
+        self.change_requester = False
 
         if p.has_option(login, "gpg_emails"):
             self.gpg_emails = string.split(p.get(login, "gpg_emails"))
@@ -30,6 +31,9 @@ class User:
             if len(self.gpg_emails) > 0:
                 self.mailto = self.gpg_emails[0]
 
+        if p.has_option(login, "change_requester"):
+            self.change_requester = True
+
         if p.has_option(login, "privs"):
             for p in string.split(p.get(login, "privs")):
                 l = string.split(p, ":")
@@ -124,6 +128,9 @@ class ACL_Conf:
                 return self.users[e]
         return None
 
+    def user_by_login(self, l):
+        return self.users[l]
+
     def user(self, l):
         if not self.users.has_key(l):
             log.panic("no such user: %s" % l)
diff --git a/PLD_Builder/request_handler.py b/PLD_Builder/request_handler.py
index 0d0d895..f7447f1 100644
--- a/PLD_Builder/request_handler.py
+++ b/PLD_Builder/request_handler.py
@@ -55,6 +55,14 @@ def handle_group(r, user):
         lockf.close()
         return
 
+    if (user.change_requester and r.requester):
+        try:
+            user = acl.user_by_login(r.requester)
+        except KeyError:
+            user.login = r.requester + '/' + user.login
+        if (r.requester_email):
+            user.mailto = r.requester_email
+
     for batch in r.batches:
 
         if not user.can_do("src", config.builder, batch.branch):
================================================================

---- gitweb:

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



More information about the pld-cvs-commit mailing list