23 lines
675 B
Rust
23 lines
675 B
Rust
use axum::response::Redirect;
|
|
use axum_login::AuthSession;
|
|
|
|
use crate::models::projects::Project;
|
|
|
|
use {crate::permissions, crate::prelude::*};
|
|
|
|
pub async fn home_page(State(ctx): State<Context>, auth_session: AuthSession<Context>) -> Response {
|
|
if let Some(user) = auth_session.user {
|
|
let mut db = ctx.db_pool.get().unwrap();
|
|
let projects: Vec<Project> =
|
|
permissions::query::accessible_projects(&mut db, &user.id).unwrap();
|
|
|
|
let values = context! {
|
|
user => user,
|
|
projects => projects,
|
|
};
|
|
|
|
ctx.render_resp("home.html", values)
|
|
} else {
|
|
Redirect::to("/login").into_response()
|
|
}
|
|
}
|