summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSimo Sorce <simo@redhat.com>2014-03-20 17:54:18 -0400
committerSimo Sorce <simo@redhat.com>2014-03-21 17:07:40 -0400
commit4de51f1b6f61f7dd5aae02da844f39822c2d9031 (patch)
treec551abd3c1458d22d299cb1116a0e656ed690e90
parentfe9c84142f3f57762d284c81eb56ae8b9be6effd (diff)
downloadipsilon-4de51f1b6f61f7dd5aae02da844f39822c2d9031.tar.gz
ipsilon-4de51f1b6f61f7dd5aae02da844f39822c2d9031.tar.xz
ipsilon-4de51f1b6f61f7dd5aae02da844f39822c2d9031.zip
Add way to save user preferences
Signed-off-by: Simo Sorce <simo@redhat.com>
-rwxr-xr-xipsilon/util/data.py33
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 = []