You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
stacosys/app/services/database.py

40 lines
817 B
Python

#!/usr/bin/python
# -*- coding: UTF-8 -*-
import hashlib
import config
import functools
from config import DB_URL
from playhouse.db_url import connect
def get_db():
return connect(DB_URL)
def provide_db(func):
@functools.wraps(func)
def new_function(*args, **kwargs):
return func(get_db(), *args, **kwargs)
return new_function
def hash(value):
string = '%s%s' % (value, config.SALT)
dk = hashlib.sha256(string.encode())
return dk.hexdigest()
@provide_db
def setup(db):
from app.models.user import User
db.create_tables([User], safe=True)
# create admin user if user table is empty
if User.select().count() == 0:
admin_user = User(username='admin', password=hash('admin'),
displayname='Admin')
admin_user.save()