Add sqlite migration

This commit is contained in:
Felix Spöttel 2020-09-03 19:39:29 +02:00
parent ee01eae55e
commit 7c4eb0fb70
3 changed files with 4 additions and 2 deletions

View File

@ -437,7 +437,6 @@ def two_factor_auth_get_status():
def totp_post_enable():
email, _ = auth_service.authenticate(request, env)
# TODO: Handle case where user already has TOTP enabled
secret = request.form.get('secret')
token = request.form.get('token')

View File

@ -22,7 +22,6 @@ if [ ! -f $db_path ]; then
echo Creating new user database: $db_path;
echo "CREATE TABLE users (id INTEGER PRIMARY KEY AUTOINCREMENT, email TEXT NOT NULL UNIQUE, password TEXT NOT NULL, extra, privileges TEXT NOT NULL DEFAULT '');" | sqlite3 $db_path;
echo "CREATE TABLE aliases (id INTEGER PRIMARY KEY AUTOINCREMENT, source TEXT NOT NULL UNIQUE, destination TEXT NOT NULL, permitted_senders TEXT);" | sqlite3 $db_path;
# TODO: Add migration
echo "CREATE TABLE totp_credentials (id INTEGER PRIMARY KEY AUTOINCREMENT, user_email TEXT NOT NULL UNIQUE, secret TEXT NOT NULL, mru_token TEXT, FOREIGN KEY (user_email) REFERENCES users(email) ON DELETE CASCADE);" | sqlite3 $db_path;
fi

View File

@ -181,6 +181,10 @@ def migration_12(env):
conn.commit()
conn.close()
def migration_13(env):
# Add a table for `totp_credentials`
db = os.path.join(env["STORAGE_ROOT"], 'mail/users.sqlite')
shell("check_call", ["sqlite3", db, "CREATE TABLE IF NOT EXISTS totp_credentials (id INTEGER PRIMARY KEY AUTOINCREMENT, user_email TEXT NOT NULL UNIQUE, secret TEXT NOT NULL, mru_token TEXT, FOREIGN KEY (user_email) REFERENCES users(email) ON DELETE CASCADE);"])
def get_current_migration():
ver = 0