mirror of
https://github.com/scottlamb/moonfire-nvr.git
synced 2025-11-09 21:49:46 -05:00
add config json to user table
This commit is contained in:
@@ -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>,
|
||||
}
|
||||
|
||||
@@ -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() }),
|
||||
}),
|
||||
})
|
||||
|
||||
Reference in New Issue
Block a user