X-Git-Url: https://git.decadent.org.uk/gitweb/?a=blobdiff_plain;f=dak%2Fadd_user.py;h=77de3e3fb617290c769a2752d0e5db66b2e7234d;hb=1e5659500391bce37a28870ef7bce5c59eba68c7;hp=851e0e2ec2dbbce36ffe87ca81eb43694fc0ea92;hpb=307823ca2367f65ccfbbc7c0bd5054f2883b9c9c;p=dak.git diff --git a/dak/add_user.py b/dak/add_user.py index 851e0e2e..77de3e3f 100755 --- a/dak/add_user.py +++ b/dak/add_user.py @@ -18,25 +18,17 @@ add his key to the GPGKeyring # I know what I say. I dont know python and I wrote it. So go and read some other stuff. import commands -import pg -import re import sys -import time -import os import apt_pkg -from daklib import database -from daklib import daklog -from daklib import queue + from daklib import utils +from daklib.dbconn import DBConn, add_database_user, get_or_set_uid from daklib.regexes import re_gpg_fingerprint, re_user_address, re_user_mails, re_user_name ################################################################################ Cnf = None -projectB = None Logger = None -Upload = None -Subst = None ################################################################################ @@ -108,7 +100,7 @@ Additionally there is now an account created for you. ################################################################################ def main(): - global Cnf, projectB + global Cnf keyrings = None Cnf = utils.get_conf() @@ -129,8 +121,7 @@ def main(): if Options["help"]: usage() - projectB = pg.connect(Cnf["DB::Name"], Cnf["DB::Host"], int(Cnf["DB::Port"])) - database.init(Cnf, projectB) + session = DBConn().session() if not keyrings: keyrings = Cnf.ValueList("Dinstall::GPGKeyring") @@ -204,16 +195,18 @@ def main(): utils.warn("Could not prepare password information for mail, not sending password.") # Now add user to the database. - projectB.query("BEGIN WORK") - uid_id = database.get_or_set_uid_id(uid) - projectB.query('CREATE USER "%s"' % (uid)) - projectB.query("COMMIT WORK") + # Note that we provide a session, so we're responsible for committing + uidobj = get_or_set_uid(uid, session=session) + uid_id = uidobj.uid_id + add_database_user(uid) + session.commit() # The following two are kicked out in rhona, so we don't set them. kelly adds # them as soon as she installs a package with unknown ones, so no problems to expect here. # Just leave the comment in, to not think about "Why the hell aren't they added" in # a year, if we ever touch uma again. # maint_id = database.get_or_set_maintainer_id(name) -# projectB.query("INSERT INTO fingerprint (fingerprint, uid) VALUES ('%s', '%s')" % (primary_key, uid_id)) +# session.execute("INSERT INTO fingerprint (fingerprint, uid) VALUES (:fingerprint, uid)", +# {'fingerprint': primary_key, 'uid': uid_id}) # Lets add user to the email-whitelist file if its configured. if Cnf.has_key("Dinstall::MailWhiteList") and Cnf["Dinstall::MailWhiteList"] != "": @@ -228,8 +221,7 @@ def main(): # Should we send mail to the newly added user? if Cnf.FindB("Add-User::SendEmail"): mail = name + "<" + emails[0] +">" - Upload = queue.Upload(Cnf) - Subst = Upload.Subst + Subst = {} Subst["__NEW_MAINTAINER__"] = mail Subst["__UID__"] = uid Subst["__KEYID__"] = Cnf["Add-User::Options::Key"]