diff --git a/app.py b/app.py index 0def616..6a9b407 100644 --- a/app.py +++ b/app.py @@ -56,6 +56,25 @@ def create_app(): cleanup_trash() click.echo("Trash cleanup completed.") + @app.cli.command("create-admin") + def create_admin(): + """Create the default administrator user.""" + admin = User.query.filter_by(email='administrator@docupulse.com').first() + if admin: + click.echo("Admin user already exists.") + return + + admin = User( + username='administrator', + email='administrator@docupulse.com', + is_admin=True, + is_active=True + ) + admin.set_password('q]H488h[8?.A') + db.session.add(admin) + db.session.commit() + click.echo("Default administrator user created successfully.") + # Register custom filters app.jinja_env.filters['timeago'] = timeago diff --git a/entrypoint.sh b/entrypoint.sh index 609c951..bd64e34 100644 --- a/entrypoint.sh +++ b/entrypoint.sh @@ -48,6 +48,13 @@ with app.app_context(): print(f'Error creating site settings: {e}') " +# Initialize admin user +echo "Initializing admin user..." +python3 -c " +from init_admin import init_admin +init_admin() +" + # Start the application echo "Starting application..." exec gunicorn --bind 0.0.0.0:5000 app:app \ No newline at end of file diff --git a/init_admin.py b/init_admin.py new file mode 100644 index 0000000..65c5348 --- /dev/null +++ b/init_admin.py @@ -0,0 +1,22 @@ +from app import app, db +from models import User + +def init_admin(): + with app.app_context(): + admin = User.query.filter_by(email='administrator@docupulse.com').first() + if not admin: + admin = User( + username='administrator', + email='administrator@docupulse.com', + is_admin=True, + is_active=True + ) + admin.set_password('q]H488h[8?.A') + db.session.add(admin) + db.session.commit() + print("Default administrator user created successfully.") + else: + print("Admin user already exists.") + +if __name__ == '__main__': + init_admin() \ No newline at end of file