Source code for mdvtools.auth.dummy_provider

from flask import session, redirect
from typing import Optional, Tuple
from flask.typing import ResponseReturnValue
from mdvtools.auth.auth_provider import AuthProvider
import logging

[docs] logger = logging.getLogger(__name__)
[docs] class DummyAuthProvider(AuthProvider): def __init__(self, app):
[docs] self.app = app
[docs] def login(self) -> ResponseReturnValue: """No-op login for dummy provider.""" session["auth_method"] = "dummy" session.modified = True logger.info("Dummy login - no real login redirect.") return redirect("/")
[docs] def logout(self) -> ResponseReturnValue: """Clear dummy session.""" logger.info("Dummy logout - clearing session.") session.clear() redirect_uri = self.app.config.get("LOGIN_REDIRECT_URL", "/login_dev") return redirect(redirect_uri)
[docs] def get_user(self, token: Optional[dict] = None) -> Optional[dict]: """Return dummy user data.""" logger.debug("Returning dummy user data.") return { "id": 1, "auth_id": "dummy|localuser", "email": "dev@example.com", "is_admin": True, "first_name": "Dev", "last_name": "User" }
[docs] def get_token(self) -> Optional[str]: """Dummy token (not used).""" return "dummy_token"
[docs] def handle_callback(self) -> Optional[str]: """Simulate callback.""" logger.info("Dummy callback - no real token exchange.") return "dummy_token"
[docs] def validate_user(self) -> Tuple[Optional[dict], Optional[Tuple]]: """Simulate user validation and cache dummy user.""" user_data = self.get_user() session['user'] = user_data session['auth_method'] = "dummy" session.modified = True logger.info("Dummy user validated and stored in session.") return user_data, None
[docs] def sync_users_to_db(self) -> None: """No-op sync in dummy provider.""" logger.info("Dummy sync - skipping user sync.")