aboutsummaryrefslogtreecommitdiff
path: root/server/src/ui/account/settings.rs
diff options
context:
space:
mode:
Diffstat (limited to 'server/src/ui/account/settings.rs')
-rw-r--r--server/src/ui/account/settings.rs64
1 files changed, 33 insertions, 31 deletions
diff --git a/server/src/ui/account/settings.rs b/server/src/ui/account/settings.rs
index f1a367d..7d1b7af 100644
--- a/server/src/ui/account/settings.rs
+++ b/server/src/ui/account/settings.rs
@@ -3,14 +3,20 @@
which is licensed under the GNU Affero General Public License (version 3); see /COPYING.
Copyright (C) 2025 metamuffin <metamuffin.org>
*/
-use super::{format_form_error, hash_password};
+use super::format_form_error;
use crate::{
helper::{language::AcceptLanguage, A},
ui::error::MyResult,
};
use jellycommon::user::{PlayerKind, Theme};
use jellyimport::is_importing;
-use jellylogic::{session::Session, Database};
+use jellylogic::{
+ account::{
+ update_user_display_name, update_user_native_secret, update_user_password,
+ update_user_player_preference, update_user_theme,
+ },
+ session::Session,
+};
use jellyui::{
account::settings::SettingsPage,
locale::{tr, Language},
@@ -21,7 +27,7 @@ use rocket::{
form::{self, validate::len, Contextual, Form},
get, post,
response::content::RawHtml,
- FromForm, State,
+ FromForm,
};
use std::ops::Range;
@@ -70,7 +76,6 @@ pub fn r_account_settings(session: A<Session>, lang: AcceptLanguage) -> RawHtml<
#[post("/account/settings", data = "<form>")]
pub fn r_account_settings_post(
session: A<Session>,
- database: &State<Database>,
form: Form<Contextual<SettingsForm>>,
lang: AcceptLanguage,
) -> MyResult<RawHtml<String>> {
@@ -90,33 +95,30 @@ pub fn r_account_settings_post(
let mut out = String::new();
- database.update_user(&session.user.name, |user| {
- if let Some(password) = &form.password {
- user.password = hash_password(&session.user.name, password);
- out += &*tr(lang, "settings.account.password.changed");
- out += "\n";
- }
- if let Some(display_name) = &form.display_name {
- user.display_name = display_name.clone();
- out += &*tr(lang, "settings.account.display_name.changed");
- out += "\n";
- }
- if let Some(theme) = form.theme {
- user.theme = theme.0;
- out += &*tr(lang, "settings.account.theme.changed");
- out += "\n";
- }
- if let Some(player_preference) = form.player_preference {
- user.player_preference = player_preference.0;
- out += &*tr(lang, "settings.player_preference.changed");
- out += "\n";
- }
- if let Some(native_secret) = &form.native_secret {
- user.native_secret = native_secret.to_owned();
- out += "Native secret updated.\n";
- }
- Ok(())
- })?;
+ if let Some(password) = &form.password {
+ update_user_password(&session, password)?;
+ out += &*tr(lang, "settings.account.password.changed");
+ out += "\n";
+ }
+ if let Some(display_name) = &form.display_name {
+ update_user_display_name(&session, display_name)?;
+ out += &*tr(lang, "settings.account.display_name.changed");
+ out += "\n";
+ }
+ if let Some(theme) = form.theme {
+ update_user_theme(&session, theme.0)?;
+ out += &*tr(lang, "settings.account.theme.changed");
+ out += "\n";
+ }
+ if let Some(player_preference) = form.player_preference {
+ update_user_player_preference(&session, player_preference.0)?;
+ out += &*tr(lang, "settings.player_preference.changed");
+ out += "\n";
+ }
+ if let Some(native_secret) = &form.native_secret {
+ update_user_native_secret(&session, native_secret)?;
+ out += "Native secret updated.\n";
+ }
Ok(settings_page(
session, // using the old session here, results in outdated theme being displayed