diff options
author | Simo Sorce <simo@redhat.com> | 2014-03-20 17:54:18 -0400 |
---|---|---|
committer | Simo Sorce <simo@redhat.com> | 2014-03-21 17:07:40 -0400 |
commit | 4de51f1b6f61f7dd5aae02da844f39822c2d9031 (patch) | |
tree | c551abd3c1458d22d299cb1116a0e656ed690e90 /ipsilon | |
parent | fe9c84142f3f57762d284c81eb56ae8b9be6effd (diff) | |
download | ipsilon-4de51f1b6f61f7dd5aae02da844f39822c2d9031.tar.gz ipsilon-4de51f1b6f61f7dd5aae02da844f39822c2d9031.tar.xz ipsilon-4de51f1b6f61f7dd5aae02da844f39822c2d9031.zip |
Add way to save user preferences
Signed-off-by: Simo Sorce <simo@redhat.com>
Diffstat (limited to 'ipsilon')
-rwxr-xr-x | ipsilon/util/data.py | 33 |
1 files changed, 33 insertions, 0 deletions
diff --git a/ipsilon/util/data.py b/ipsilon/util/data.py index 8d6ae11..ec32b43 100755 --- a/ipsilon/util/data.py +++ b/ipsilon/util/data.py @@ -118,6 +118,39 @@ class Store(object): def get_user_preferences(self, user): return self._load_user_prefs(self._user_dbname, user) + def save_user_preferences(self, user, options): + SELECT = "SELECT option, value FROM users WHERE name=?" + UPDATE = "UPDATE users SET value=? WHERE name=? AND option=?" + INSERT = "INSERT INTO users VALUES(?,?,?)" + con = None + try: + con = sqlite3.connect(self._user_dbname) + cur = con.cursor() + cur.execute(""" + CREATE TABLE IF NOT EXISTS users(name TEXT, + option TEXT, + value TEXT) + """) + curvals = dict() + for row in cur.execute(SELECT, (user,)): + curvals[row[0]] = row[1] + + for name in options: + if name in curvals: + cur.execute(UPDATE, (options[name], user, name)) + else: + cur.execute(INSERT, (user, name, options[name])) + + con.commit() + except sqlite3.Error, e: + if con: + con.rollback() + cherrypy.log.error("Failed to store config: [%s]" % e) + raise + finally: + if con: + con.close() + def get_plugins_config(self, facility): con = None rows = [] |