use rocket::{form::Form, response::Redirect, Route, State}; use rocket_dyn_templates::{context, Template}; use sea_orm::{ActiveModelTrait, DatabaseConnection, EntityTrait, Set}; use crate::models::{day, user}; use super::NaiveDateForm; #[get("/")] async fn index(db: &State, user: user::AdminUser) -> Template { let users = user::Entity::find().all(db.inner()).await.unwrap(); Template::render("user/index", context! {user, users}) } #[derive(FromForm)] struct UserEditForm { is_cox: bool, is_admin: bool, } #[put("/", data = "")] async fn update( db: &State, id: i32, data: Form, _user: user::AdminUser, ) -> Redirect { let new_user = user::ActiveModel { id: Set(id), is_cox: Set(data.is_cox), is_admin: Set(data.is_admin), ..Default::default() }; new_user.update(db.inner()).await.unwrap(); Redirect::to("/user") } pub fn routes() -> Vec { routes![index, update] }