add config json to user table

This commit is contained in:
Scott Lamb
2021-10-26 13:08:45 -07:00
parent 721141770f
commit 24a0b2a9f1
6 changed files with 185 additions and 118 deletions

View File

@@ -509,7 +509,7 @@ impl VideoSampleEntry {
pub struct ToplevelUser {
pub name: String,
pub id: i32,
pub preferences: db::auth::UserPreferences,
pub preferences: db::json::UserPreferences,
pub session: Option<Session>,
}
@@ -523,5 +523,5 @@ pub struct PostUser {
#[derive(Debug, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct UserSubset {
pub preferences: Option<db::auth::UserPreferences>,
pub preferences: Option<db::json::UserPreferences>,
}

View File

@@ -1041,14 +1041,14 @@ impl Service {
.get(&id)
.ok_or_else(|| format_err_t!(Internal, "can't find currently authenticated user"))?;
if let Some(precondition) = r.precondition {
if matches!(precondition.preferences, Some(p) if p != user.preferences) {
if matches!(precondition.preferences, Some(p) if p != user.config.preferences) {
bail_t!(FailedPrecondition, "preferences mismatch");
}
}
if let Some(update) = r.update {
let mut change = user.change();
if let Some(preferences) = update.preferences {
change.preferences = preferences;
change.config.preferences = preferences;
}
db.apply_user_change(change).map_err(internal_server_err)?;
}
@@ -1290,7 +1290,7 @@ impl Service {
user: Some(json::ToplevelUser {
id: s.user_id,
name: u.username.clone(),
preferences: u.preferences.clone(),
preferences: u.config.preferences.clone(),
session: Some(json::Session { csrf: s.csrf() }),
}),
})