Compare commits

...
Author SHA1 Message Date
phoenix 6f97da67e2 Adding Salt and extending users
Release Tagging / release (pull_request) Successful in 30s
Rust Build / Check (pull_request) Successful in 40s
Rust Build / Test Suite (pull_request) Successful in 26s
Rust Build / Clippy (pull_request) Successful in 28s
Rust Build / Rustfmt (pull_request) Successful in 47s
Rust Build / build (pull_request) Successful in 33s
2026-05-31 17:18:05 -04:00
2 changed files with 28 additions and 0 deletions
+6
View File
@@ -4,3 +4,9 @@ pub mod envy;
pub mod message; pub mod message;
pub mod token; pub mod token;
pub mod user; pub mod user;
pub mod init {
pub fn is_uuid_nil(uuid: &uuid::Uuid) -> bool {
uuid.is_nil()
}
}
+22
View File
@@ -14,6 +14,8 @@ pub struct User {
pub created: Option<time::OffsetDateTime>, pub created: Option<time::OffsetDateTime>,
#[serde(with = "time::serde::rfc3339::option")] #[serde(with = "time::serde::rfc3339::option")]
pub last_login: Option<time::OffsetDateTime>, pub last_login: Option<time::OffsetDateTime>,
#[serde(skip)]
pub salt_id: uuid::Uuid,
} }
#[derive(Clone, Debug, Default, Deserialize, Serialize)] #[derive(Clone, Debug, Default, Deserialize, Serialize)]
@@ -26,6 +28,8 @@ pub struct ServiceUser {
// When serializing to json, if empty do not populate // When serializing to json, if empty do not populate
#[serde(with = "time::serde::rfc3339::option")] #[serde(with = "time::serde::rfc3339::option")]
pub last_login: Option<time::OffsetDateTime>, pub last_login: Option<time::OffsetDateTime>,
#[serde(skip)]
pub salt_id: uuid::Uuid,
} }
#[derive(Clone, Debug, Default, Deserialize, Serialize)] #[derive(Clone, Debug, Default, Deserialize, Serialize)]
@@ -65,6 +69,24 @@ pub struct UserProfile {
pub last_login: Option<time::OffsetDateTime>, pub last_login: Option<time::OffsetDateTime>,
} }
#[derive(Clone, Debug, Default, Deserialize, Serialize)]
pub struct Salt {
#[serde(skip_serializing_if = "crate::init::is_uuid_nil")]
pub id: uuid::Uuid,
#[serde(skip_serializing_if = "String::is_empty")]
pub salt: String,
}
impl Salt {
pub fn to_json(&self, output_pretty: bool) -> Result<String, serde_json::Error> {
if output_pretty {
serde_json::to_string_pretty(&self)
} else {
serde_json::to_string(&self)
}
}
}
pub fn init_user_profile(usr: &User) -> UserProfile { pub fn init_user_profile(usr: &User) -> UserProfile {
UserProfile { UserProfile {
user_id: usr.id, user_id: usr.id,