1
0
Fork 0
pique/src/handler/home.rs

27 lines
762 B
Rust

use axum::http::StatusCode;
use axum::response::Redirect;
use axum_login::AuthSession;
use crate::models::projects::Project;
use crate::permissions;
use crate::prelude::*;
pub async fn home_page(
State(provider): State<Provider>,
auth_session: AuthSession<Provider>,
) -> Result<Response, (StatusCode, String)> {
if let Some(user) = auth_session.user {
let mut db = provider.db_pool.get().unwrap();
let projects: Vec<Project> =
permissions::q::accessible_projects(&mut db, &user.id).unwrap();
let values = context! {
user => user,
projects => projects,
};
provider.render_resp("home.html", values)
} else {
Ok(Redirect::to("/login").into_response())
}
}