aboutsummaryrefslogtreecommitdiff
path: root/logic/src/account.rs
diff options
context:
space:
mode:
Diffstat (limited to 'logic/src/account.rs')
-rw-r--r--logic/src/account.rs60
1 files changed, 60 insertions, 0 deletions
diff --git a/logic/src/account.rs b/logic/src/account.rs
new file mode 100644
index 0000000..a352437
--- /dev/null
+++ b/logic/src/account.rs
@@ -0,0 +1,60 @@
+/*
+ This file is part of jellything (https://codeberg.org/metamuffin/jellything)
+ which is licensed under the GNU Affero General Public License (version 3); see /COPYING.
+ Copyright (C) 2025 metamuffin <metamuffin.org>
+*/
+
+use crate::{DATABASE, login::hash_password, session::Session};
+use anyhow::Result;
+use jellycommon::user::{PlayerKind, Theme, User};
+
+pub fn update_user_password(session: &Session, password: &str) -> Result<()> {
+ DATABASE.update_user(&session.user.name, |user| {
+ user.password = hash_password(&session.user.name, password);
+ Ok(())
+ })?;
+ Ok(())
+}
+pub fn update_user_display_name(session: &Session, display_name: &str) -> Result<()> {
+ DATABASE.update_user(&session.user.name, |user| {
+ user.display_name = display_name.to_owned();
+ Ok(())
+ })?;
+ Ok(())
+}
+pub fn update_user_native_secret(session: &Session, native_secret: &str) -> Result<()> {
+ DATABASE.update_user(&session.user.name, |user| {
+ user.native_secret = native_secret.to_owned();
+ Ok(())
+ })?;
+ Ok(())
+}
+pub fn update_user_theme(session: &Session, theme: Theme) -> Result<()> {
+ DATABASE.update_user(&session.user.name, |user| {
+ user.theme = theme;
+ Ok(())
+ })?;
+ Ok(())
+}
+pub fn update_user_player_preference(
+ session: &Session,
+ player_preference: PlayerKind,
+) -> Result<()> {
+ DATABASE.update_user(&session.user.name, |user| {
+ user.player_preference = player_preference;
+ Ok(())
+ })?;
+ Ok(())
+}
+pub fn register_user(invitation: &str, username: &str, password: &str) -> Result<()> {
+ DATABASE.register_user(
+ &invitation,
+ &username,
+ User {
+ display_name: username.to_owned(),
+ name: username.to_owned(),
+ password: hash_password(&username, &password),
+ ..Default::default()
+ },
+ )
+}