From 65dac1e92398e7f45f713bfd530a613b3bf521d9 Mon Sep 17 00:00:00 2001 From: Pierre Hubert Date: Fri, 8 Apr 2022 16:28:19 +0200 Subject: [PATCH] Can update user information --- src/controllers/admin_controller.rs | 31 ++++++++++++++++++++++++++++- src/main.rs | 1 + templates/settings/users_list.html | 5 ++++- 3 files changed, 35 insertions(+), 2 deletions(-) diff --git a/src/controllers/admin_controller.rs b/src/controllers/admin_controller.rs index fbc0839..ae5d1f7 100644 --- a/src/controllers/admin_controller.rs +++ b/src/controllers/admin_controller.rs @@ -138,4 +138,33 @@ pub async fn create_user(user: CurrentUser, clients: web::Data) - u: Default::default(), clients: clients.cloned(), }.render().unwrap()) -} \ No newline at end of file +} + +#[derive(serde::Deserialize)] +pub struct EditUserQuery { + id: UserID, +} + +pub async fn edit_user(user: CurrentUser, + clients: web::Data, + users: web::Data>, + query: web::Query, +) -> impl Responder { + let edited_account = users.send(users_actor::GetUserRequest(query.0.id)) + .await.unwrap().0; + + + HttpResponse::Ok().body(EditUserTemplate { + _parent: BaseSettingsPage::get( + "Edit user account", + user.deref(), + match edited_account.is_none() { + true => Some("Could not find requested user!".to_string()), + false => None + }, + None, + ), + u: edited_account.unwrap_or_default(), + clients: clients.cloned(), + }.render().unwrap()) +} diff --git a/src/main.rs b/src/main.rs index 2a29d8a..bf1e6a1 100644 --- a/src/main.rs +++ b/src/main.rs @@ -118,6 +118,7 @@ async fn main() -> std::io::Result<()> { .route("/admin/users", web::get().to(admin_controller::users_route)) .route("/admin/users", web::post().to(admin_controller::users_route)) .route("/admin/create_user", web::get().to(admin_controller::create_user)) + .route("/admin/edit_user", web::get().to(admin_controller::edit_user)) // Admin API .route("/admin/api/find_username", web::post().to(admin_api::find_username)) diff --git a/templates/settings/users_list.html b/templates/settings/users_list.html index 7197627..18c9ad5 100644 --- a/templates/settings/users_list.html +++ b/templates/settings/users_list.html @@ -26,7 +26,10 @@ {{ u.email }} {% if u.admin %}Admin{% else %}Regular user{% endif %} {% if u.enabled %}Enabled{% else %}Disabled{% endif %} - Edit Delete + + Edit + Delete + {% endfor %}