quokka-admin 0.1.0

An admin panel for quokka
Documentation
use axum::{
    response::{IntoResponse, Redirect},
    Extension,
};
use quokka::extract::{Extensions, Session, State};

use crate::{data::Severity, service::page_loader::ADMIN_USER_SESSION_KEY, state::AdminState};

pub async fn get_logout<S>(
    admin_state: State<AdminState<S>>,
    Extension(mut session): Extension<Session>,
) -> impl IntoResponse {
    session.extensions.remove(ADMIN_USER_SESSION_KEY);

    (
        session,
        Extensions::new()
            .add(Severity::Success.message("Logout Successful", "You were sucessfully logged out")),
        Redirect::to(&admin_state.login_url),
    )
}