Wire up auth, stego routes, and full web UI with login flow
Auth system: - Copy auth.py from stegasoo, adapt DB path to ~/.soosef/auth/soosef.db - Add setup/login/logout/recover/account routes - Add admin user management routes (users, create, delete, reset) - Full RBAC: admin_required and login_required decorators working Stego routes (mounted directly in app.py): - Generate credentials with QR code support - Encode/decode/tools placeholder pages (full route migration is Phase 1b) - Channel status API, capacity comparison API, download API Support modules (copied verbatim from stegasoo): - subprocess_stego.py: crash-safe subprocess isolation - stego_worker.py: worker script for subprocess - temp_storage.py: file-based temp storage with auto-expiry - ssl_utils.py: self-signed cert generation Templates and JS: - All stegasoo templates copied to stego/ subdirectory - Auth templates (login, setup, account, recover) at root - Admin templates (users, settings) - JS files: soosef.js (renamed from stegasoo.js), auth.js, generate.js Verified: full login flow works (setup → login → authenticated routes) Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -1,21 +1,4 @@
|
||||
"""
|
||||
Admin blueprint — user management and system settings.
|
||||
|
||||
Will be adapted from stegasoo's admin routes in frontends/web/app.py.
|
||||
Admin routes are registered directly in app.py via _register_stegasoo_routes()
|
||||
alongside the auth routes (setup, login, logout, account, admin/users).
|
||||
"""
|
||||
|
||||
from flask import Blueprint, render_template
|
||||
|
||||
bp = Blueprint("admin", __name__, url_prefix="/admin")
|
||||
|
||||
|
||||
@bp.route("/users")
|
||||
def users():
|
||||
"""User management."""
|
||||
return render_template("admin/users.html")
|
||||
|
||||
|
||||
@bp.route("/settings")
|
||||
def settings():
|
||||
"""System settings."""
|
||||
return render_template("admin/settings.html")
|
||||
|
||||
@@ -1,35 +1,8 @@
|
||||
"""
|
||||
Steganography blueprint — encode, decode, generate, tools.
|
||||
Steganography routes are registered directly in app.py via _register_stegasoo_routes()
|
||||
rather than as a blueprint, because the stegasoo route logic (3,600+ lines) uses
|
||||
module-level state (ThreadPoolExecutor, jobs dict, subprocess_stego instance)
|
||||
that doesn't translate cleanly to a blueprint.
|
||||
|
||||
Routes lifted from stegasoo's frontends/web/app.py. In Phase 1, these
|
||||
will be fully implemented by migrating the stegasoo route logic here.
|
||||
For now, they render placeholder templates.
|
||||
The stego templates are in templates/stego/ and extend the soosef base.html.
|
||||
"""
|
||||
|
||||
from flask import Blueprint, render_template
|
||||
|
||||
bp = Blueprint("stego", __name__)
|
||||
|
||||
|
||||
@bp.route("/encode", methods=["GET", "POST"])
|
||||
def encode():
|
||||
"""Encode a message into a carrier image."""
|
||||
return render_template("stego/encode.html")
|
||||
|
||||
|
||||
@bp.route("/decode", methods=["GET", "POST"])
|
||||
def decode():
|
||||
"""Decode a message from a stego image."""
|
||||
return render_template("stego/decode.html")
|
||||
|
||||
|
||||
@bp.route("/generate")
|
||||
def generate():
|
||||
"""Generate credentials (passphrase, PIN, RSA keys)."""
|
||||
return render_template("stego/generate.html")
|
||||
|
||||
|
||||
@bp.route("/tools")
|
||||
def tools():
|
||||
"""Image analysis and utility tools."""
|
||||
return render_template("stego/tools.html")
|
||||
|
||||
Reference in New Issue
Block a user