X-Git-Url: https://git.quassel-irc.org/?p=quassel.git;a=blobdiff_plain;f=scripts%2Fmanageusers.py;fp=scripts%2Fmanageusers.py;h=c327865f8e74864842bc7b8b028bd57035c56d3e;hp=0000000000000000000000000000000000000000;hb=4f9dd5e4618a2ae5b14a6dab871ad5d7c984500d;hpb=b2ff94f8f094090aa24e9e1d08eec51acbc02eb8 diff --git a/scripts/manageusers.py b/scripts/manageusers.py new file mode 100755 index 00000000..c327865f --- /dev/null +++ b/scripts/manageusers.py @@ -0,0 +1,56 @@ +#!/usr/bin/python +# -*- coding: iso-8859-1 -*- + +# ============================== +# Imports +# ============================== +import os +import sha +import sys + +try: + import sqlite3 +except ImportError: + print >> sys.stderr, "ERROR: sqlite3 module not available!" + print >> sys.stderr, "This script needs sqlite3 support which is part of Python 2.5" + print >> sys.stderr, "You probably need to upgrade your Python installation first." + sys.exit(3) + +class UserManager(object): + def __init__(self): + self.db = sqlite3.connect(os.environ['HOME'] + '/.quassel/quassel-storage.sqlite') + + def __del__(self): + self.db.commit() + self.db.close(); + + def shaCrypt(self, password): + shaPass = sha.new(password) + return shaPass.hexdigest() + + def addUser(self, username, password): + cursor = self.db.cursor() + cursor.execute('INSERT INTO quasseluser (username, password) VALUES (:username, :password)', + {'username':username, 'password':self.shaCrypt(password)}) + + def changePass(self, username, password): + cursor = self.db.cursor() + cursor.execute('UPDATE quasseluser SET password = :password WHERE username = :username', + {'username':username, 'password':self.shaCrypt(password)}) + +if __name__ == "__main__": + generalError = "ERROR: Wrong arugment count (Syntax: %s add|changepass )" % sys.argv[0] + if len(sys.argv) < 3: + print generalError + sys.exit(1) + + if sys.argv[1].lower() not in ['add', 'changepass']: + print generalError + sys.exit(2) + + userManager = UserManager() + actions = {'add':userManager.addUser, + 'changepass':userManager.changePass} + + actions[sys.argv[1]](sys.argv[2], sys.argv[3]) +