19
23
class UserManager(object):
20
24
def __init__(self):
21
25
self.db = sqlite3.connect(os.environ['HOME'] + '/.quassel/quassel-storage.sqlite')
26
self.cursor = self.db.cursor()
27
def shaCrypt(self, password):
28
shaPass = sha.new(password)
29
return shaPass.hexdigest()
31
def addUser(self, username, password):
32
cursor = self.db.cursor()
33
cursor.execute('INSERT INTO quasseluser (username, password) VALUES (:username, :password)',
34
{'username':username, 'password':self.shaCrypt(password)})
36
def changePass(self, username, password):
37
cursor = self.db.cursor()
38
cursor.execute('UPDATE quasseluser SET password = :password WHERE username = :username',
39
{'username':username, 'password':self.shaCrypt(password)})
32
def _shaCrypt(self, password):
33
return sha.new(password).hexdigest()
35
def add(self, username, password):
36
self.cursor.execute('INSERT INTO quasseluser (username, password) VALUES (:username, :password)',
37
{'username':username, 'password':self._shaCrypt(password)}).fetchone()
39
def changepass(self, username, password):
40
self.cursor.execute('UPDATE quasseluser SET password = :password WHERE username = :username',
41
{'username':username, 'password':self._shaCrypt(password)}).fetchone()
44
return self.cursor.execute("SELECT * FROM quasseluser").fetchall()
46
def callByName(self, name, *args, **kws):
47
return self.__getattribute__(name)(*args, **kws)
50
usermanager = UserManager()
53
action = sys.argv[1].lower()
59
pprint(usermanager.list())
60
elif action in ['add', 'changepass'] and len(sys.argv) > 3:
61
usermanager.callByName(action, sys.argv[2], sys.argv[3])
63
print("ERROR: Wrong arguments supplied.")
41
66
if __name__ == "__main__":
42
generalError = "ERROR: Wrong argument count (Syntax: %s add|changepass <username> <password>)" % sys.argv[0]
47
if sys.argv[1].lower() not in ['add', 'changepass']:
51
userManager = UserManager()
52
actions = {'add':userManager.addUser,
53
'changepass':userManager.changePass}
55
actions[sys.argv[1]](sys.argv[2], sys.argv[3])