35 lines
1.3 KiB
Python
35 lines
1.3 KiB
Python
# retoor <retoor@molodetz.nl>
|
|||
|
|
import logging
|
||
|
|
|
||
|
|
from molodetz import config
|
||
|
|
from molodetz.content import seed_placeholder_posts
|
||
|
|
from molodetz.database import count_users, create_user, get_setting, get_user_by_username, set_setting
|
||
|
|
from molodetz.gallery import sync_gallery
|
||
|
|
from molodetz.utils.audit import record_system
|
||
|
|
from molodetz.utils.auth import hash_password
|
||
|
|
|
||
|
|
logger = logging.getLogger(__name__)
|
||
|
|
|
||
|
|
ADMIN_BIO = "Begint de rol. Schrijft over het werk, het afmaken en het oordeel."
|
||
|
|
|
||
|
|
|
||
|
|
def bootstrap_admin():
|
||
|
|
if count_users() > 0:
|
||
|
|
return get_user_by_username(config.ADMIN_USERNAME)
|
||
|
|
if not config.ADMIN_PASSWORD:
|
||
|
|
logger.warning("no users and MOLODETZ_ADMIN_PASSWORD unset; skipping admin bootstrap")
|
||
|
|
return None
|
||
|
|
user = create_user(config.ADMIN_USERNAME, config.ADMIN_EMAIL, hash_password(config.ADMIN_PASSWORD), bio=ADMIN_BIO)
|
||
|
|
record_system("admin.bootstrap", payload={"username": user["username"]}, targets=[("user", user["uid"])])
|
||
|
|
return user
|
||
|
|
|
||
|
|
|
||
|
|
def bootstrap_content():
|
||
|
|
admin = bootstrap_admin()
|
||
|
|
if admin and get_setting("seed_posts_done", "0") != "1":
|
||
|
|
created = seed_placeholder_posts(admin)
|
||
|
|
set_setting("seed_posts_done", "1")
|
||
|
|
record_system("post.seed", payload={"count": len(created)})
|
||
|
|
synced = sync_gallery()
|
||
|
|
logger.info("gallery synced: %d items", synced)
|