[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