From a47e4c204abe3fb3f3b22a008f240ef220a6f6d3 Mon Sep 17 00:00:00 2001 From: Philippe Loctaux
Date: Wed, 5 Apr 2023 23:41:25 +0200 Subject: [PATCH] personal settings: update username, name, email --- Cargo.lock | 1 + Cargo.toml | 1 + crates/database/queries/users/set_email.sql | 5 + crates/database/queries/users/set_name.sql | 5 + .../database/queries/users/set_username.sql | 5 + crates/database/sqlx-data.json | 30 ++++++ crates/database/src/tables/users.rs | 40 ++++++++ crates/ezidam/Cargo.toml | 1 + crates/ezidam/src/menu/items/user.rs | 2 +- crates/ezidam/src/routes/settings.rs | 8 +- crates/ezidam/src/routes/settings/personal.rs | 93 ++++++++++++++++++- crates/users/Cargo.toml | 2 +- crates/users/src/database.rs | 50 ++++++++++ crates/users/src/error.rs | 9 ++ 14 files changed, 247 insertions(+), 5 deletions(-) create mode 100644 crates/database/queries/users/set_email.sql create mode 100644 crates/database/queries/users/set_name.sql create mode 100644 crates/database/queries/users/set_username.sql diff --git a/Cargo.lock b/Cargo.lock index aae1628..83c0a73 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -724,6 +724,7 @@ dependencies = [ "authorization_codes", "base64 0.21.0", "database_pool", + "email_address", "erased-serde", "futures", "hash", diff --git a/Cargo.toml b/Cargo.toml index cf4e409..a38a89b 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -13,6 +13,7 @@ serde = "1" serde_json = "1" nanoid = "0.4" nanoid-dictionary = "0.4" +email_address = { version = "0.2", default-features = false } [profile.dev.package.sqlx-macros] opt-level = 3 diff --git a/crates/database/queries/users/set_email.sql b/crates/database/queries/users/set_email.sql new file mode 100644 index 0000000..36550fb --- /dev/null +++ b/crates/database/queries/users/set_email.sql @@ -0,0 +1,5 @@ +update users + +set email = ? + +where id is ? \ No newline at end of file diff --git a/crates/database/queries/users/set_name.sql b/crates/database/queries/users/set_name.sql new file mode 100644 index 0000000..6b34e32 --- /dev/null +++ b/crates/database/queries/users/set_name.sql @@ -0,0 +1,5 @@ +update users + +set name = ? + +where id is ? \ No newline at end of file diff --git a/crates/database/queries/users/set_username.sql b/crates/database/queries/users/set_username.sql new file mode 100644 index 0000000..ecae4c9 --- /dev/null +++ b/crates/database/queries/users/set_username.sql @@ -0,0 +1,5 @@ +update users + +set username = ? + +where id is ? \ No newline at end of file diff --git a/crates/database/sqlx-data.json b/crates/database/sqlx-data.json index fc8eabf..7e61b54 100644 --- a/crates/database/sqlx-data.json +++ b/crates/database/sqlx-data.json @@ -268,6 +268,16 @@ }, "query": "insert into users (id, is_admin, username, password)\nvalues (?, ?, ?, ?)\n" }, + "545f19b0373c7ffe16864eb242c15a0092355e120c5cbe006c877afdfc4a4e8c": { + "describe": { + "columns": [], + "nullable": [], + "parameters": { + "Right": 2 + } + }, + "query": "update users\n\nset username = ?\n\nwhere id is ?" + }, "56a9c0dff010858189a95087d014c7d0ce930da5d841b9d788a9c0e84b580bc6": { "describe": { "columns": [ @@ -518,6 +528,16 @@ }, "query": "update settings\n\nset url = ?\n\nwhere id is 0\n" }, + "8c131e1f73ffa01fc3e5e08071a786b85f23b9638d1c7eaa7b633c052703c911": { + "describe": { + "columns": [], + "nullable": [], + "parameters": { + "Right": 2 + } + }, + "query": "update users\n\nset name = ?\n\nwhere id is ?" + }, "93b15a942a6c7db595990f00e14fde26d6d36b8c8de9935179d41f6c7c755978": { "describe": { "columns": [], @@ -656,6 +676,16 @@ }, "query": "update refresh_tokens\n\nset revoked_at = CURRENT_TIMESTAMP\n\nwhere user is ?\n and revoked_at is null" }, + "c28c88869239edc02c073f461645eca82d816650fabe65464e2059d5908d8a28": { + "describe": { + "columns": [], + "nullable": [], + "parameters": { + "Right": 2 + } + }, + "query": "update users\n\nset email = ?\n\nwhere id is ?" + }, "c5a57c971d07532ec0cc897b5ac06e0814e506f9c24647d1eaf44174dc0a5954": { "describe": { "columns": [ diff --git a/crates/database/src/tables/users.rs b/crates/database/src/tables/users.rs index 2b004af..8992685 100644 --- a/crates/database/src/tables/users.rs +++ b/crates/database/src/tables/users.rs @@ -95,4 +95,44 @@ impl Users { .await .map_err(handle_error) } + + pub async fn set_username( + conn: impl SqliteExecutor<'_>, + id: &str, + username: &str, + ) -> Result