import logging import sqlite3 log = logging.getLogger(__name__) import os import crypt from os.path import dirname as dn ROOT = dn(dn(dn(os.path.realpath(__file__)))) def get_sqlite_conn_cur(): conn = sqlite3.connect(os.path.join(ROOT, 'auth.sqlite')) cur = conn.cursor() return conn, cur def create_user_table(): """ Create a auth database """ conn, cur = get_sqlite_conn_cur() try: log.info('creating table %s', 'users') cur.execute("""DROP TABLE IF EXISTS users """) cur.execute("""CREATE TABLE users (user_id INTEGER PRIMARY KEY AUTOINCREMENT, username TEXT, password TEXT, active INTEGER, admin INTEGER)""") log.info('creating table %s', 'user_logs') cur.execute("""DROP TABLE IF EXISTS user_logs """) cur.execute("""CREATE TABLE user_logs (id INTEGER PRIMARY KEY AUTOINCREMENT, user_id INTEGER, last_action TEXT, last_action_date DATETIME)""") conn.commit() except: conn.rollback() raise cur.close() def create_user(username, password, admin=False): conn, cur = get_sqlite_conn_cur() password_crypt = crypt.crypt(password, '6a') log.info('creating user %s', username) try: cur.execute("""INSERT INTO users values (?,?,?,?,?) """, (None, username, password_crypt, 1, admin)) conn.commit() except: conn.rollback() raise