forked from Ruderverein-Donau-Linz/rowt
43 lines
1.0 KiB
Rust
43 lines
1.0 KiB
Rust
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<DatabaseConnection>, 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("/<id>", data = "<data>")]
|
|
async fn update(
|
|
db: &State<DatabaseConnection>,
|
|
id: i32,
|
|
data: Form<UserEditForm>,
|
|
_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<Route> {
|
|
routes![index, update]
|
|
}
|