mirror of
https://github.com/hoshikawa2/rfp_response_automation.git
synced 2026-03-03 16:09:35 +00:00
83 lines
2.3 KiB
Python
83 lines
2.3 KiB
Python
from flask import Flask
|
|
|
|
from modules.users import users_bp
|
|
from modules.home.routes import home_bp
|
|
from modules.chat.routes import chat_bp
|
|
from modules.excel.routes import excel_bp
|
|
from modules.health.routes import health_bp
|
|
from modules.architecture.routes import architecture_bp
|
|
from modules.admin.routes import admin_bp
|
|
from modules.auth.routes import auth_bp
|
|
from modules.rest.routes import rest_bp
|
|
|
|
from config_loader import load_config
|
|
from modules.excel.queue_manager import start_excel_worker
|
|
from modules.users.service import create_user
|
|
from modules.users.db import get_pool
|
|
import bcrypt
|
|
import oracledb
|
|
from werkzeug.security import generate_password_hash
|
|
|
|
|
|
def ensure_default_admin():
|
|
"""
|
|
Cria admin default direto no Oracle (sem SQLAlchemy)
|
|
"""
|
|
|
|
pool = get_pool()
|
|
|
|
sql_check = "SELECT id FROM app_users WHERE user_role='admin'"
|
|
sql_insert = """
|
|
INSERT INTO app_users (name,email,user_role,password_hash,active)
|
|
VALUES (:1,:2,'admin',:3,1) \
|
|
"""
|
|
|
|
with pool.acquire() as conn:
|
|
with conn.cursor() as cur:
|
|
cur.execute(sql_check)
|
|
if not cur.fetchone():
|
|
pwd = generate_password_hash("admin123")
|
|
cur.execute(sql_insert, ["Admin", "admin@local", pwd])
|
|
conn.commit()
|
|
print("Default admin created: admin@local / admin123")
|
|
|
|
|
|
def create_app():
|
|
|
|
app = Flask(__name__)
|
|
app.secret_key = "super-secret"
|
|
|
|
# NÃO EXISTE MAIS SQLite
|
|
# NÃO EXISTE MAIS SQLAlchemy
|
|
|
|
start_excel_worker()
|
|
|
|
# cria admin no Oracle
|
|
ensure_default_admin()
|
|
|
|
app.register_blueprint(users_bp, url_prefix="/admin/users")
|
|
app.register_blueprint(chat_bp)
|
|
app.register_blueprint(excel_bp)
|
|
app.register_blueprint(health_bp)
|
|
app.register_blueprint(architecture_bp)
|
|
app.register_blueprint(home_bp)
|
|
app.register_blueprint(admin_bp, url_prefix="/admin")
|
|
app.register_blueprint(auth_bp)
|
|
app.register_blueprint(rest_bp)
|
|
|
|
from modules.core.security import get_current_user
|
|
|
|
@app.context_processor
|
|
def inject_user():
|
|
return dict(current_user=get_current_user())
|
|
|
|
return app
|
|
|
|
|
|
app = create_app()
|
|
|
|
config = load_config()
|
|
API_BASE_URL = f"{config.app_base}:{config.service_port}"
|
|
|
|
if __name__ == "__main__":
|
|
app.run(host="0.0.0.0", port=config.service_port) |