v0.27.1
This commit is contained in:
1 parent
3a2eb4fe79
commit
e0194fbaff
63 files changed
+1553
-379
No files matched your search
@@ -30,6 +30,51 @@ const BACKEND_TABLE_COLUMNS: &[&str] = &[
|
||||
"lastFailure",
|
||||
"lastRecovery",
|
||||
];
|
||||
const VHOST_LIST_SORT_COLUMNS: &[&str] = &[
|
||||
"id",
|
||||
"hostname",
|
||||
"status",
|
||||
"listeners",
|
||||
"certificate",
|
||||
"backends",
|
||||
];
|
||||
const DOCKER_VHOST_SORT_COLUMNS: &[&str] = &[
|
||||
"service",
|
||||
"hostname",
|
||||
"status",
|
||||
"backend",
|
||||
"scheme",
|
||||
"published",
|
||||
];
|
||||
const REDIRECT_LIST_SORT_COLUMNS: &[&str] = &[
|
||||
"id",
|
||||
"name",
|
||||
"hostname",
|
||||
"status",
|
||||
"target",
|
||||
"rules",
|
||||
"listeners",
|
||||
"certificate",
|
||||
];
|
||||
const NOTFOUND_LIST_SORT_COLUMNS: &[&str] = &[
|
||||
"id",
|
||||
"name",
|
||||
"hostname",
|
||||
"status",
|
||||
"mode",
|
||||
"listeners",
|
||||
"certificate",
|
||||
];
|
||||
const STREAM_LIST_SORT_COLUMNS: &[&str] = &[
|
||||
"name",
|
||||
"id",
|
||||
"protocol",
|
||||
"listen",
|
||||
"upstream",
|
||||
"status",
|
||||
"maxConnections",
|
||||
"idleTimeout",
|
||||
];
|
||||
const DASHBOARD_WIDGETS: &[&str] = &[
|
||||
"requests",
|
||||
"active",
|
||||
@@ -98,6 +143,21 @@ fn default_backend_table_columns() -> Vec<String> {
|
||||
fn default_backend_table_sort() -> String {
|
||||
"vhost".to_owned()
|
||||
}
|
||||
fn default_vhost_list_sort() -> String {
|
||||
"id".to_owned()
|
||||
}
|
||||
fn default_docker_vhost_sort() -> String {
|
||||
"service".to_owned()
|
||||
}
|
||||
fn default_redirect_list_sort() -> String {
|
||||
"id".to_owned()
|
||||
}
|
||||
fn default_notfound_list_sort() -> String {
|
||||
"id".to_owned()
|
||||
}
|
||||
fn default_stream_list_sort() -> String {
|
||||
"name".to_owned()
|
||||
}
|
||||
|
||||
#[derive(Debug, Clone, Serialize, Deserialize)]
|
||||
#[serde(deny_unknown_fields)]
|
||||
@@ -131,6 +191,26 @@ struct AdminPreferences {
|
||||
backend_table_sort: String,
|
||||
#[serde(default)]
|
||||
backend_table_descending: bool,
|
||||
#[serde(default = "default_vhost_list_sort")]
|
||||
vhost_list_sort: String,
|
||||
#[serde(default)]
|
||||
vhost_list_descending: bool,
|
||||
#[serde(default = "default_docker_vhost_sort")]
|
||||
docker_vhost_sort: String,
|
||||
#[serde(default)]
|
||||
docker_vhost_descending: bool,
|
||||
#[serde(default = "default_redirect_list_sort")]
|
||||
redirect_list_sort: String,
|
||||
#[serde(default)]
|
||||
redirect_list_descending: bool,
|
||||
#[serde(default = "default_notfound_list_sort")]
|
||||
notfound_list_sort: String,
|
||||
#[serde(default)]
|
||||
notfound_list_descending: bool,
|
||||
#[serde(default = "default_stream_list_sort")]
|
||||
stream_list_sort: String,
|
||||
#[serde(default)]
|
||||
stream_list_descending: bool,
|
||||
}
|
||||
|
||||
impl Default for AdminPreferences {
|
||||
@@ -154,6 +234,16 @@ impl Default for AdminPreferences {
|
||||
backend_table_columns: default_backend_table_columns(),
|
||||
backend_table_sort: default_backend_table_sort(),
|
||||
backend_table_descending: false,
|
||||
vhost_list_sort: default_vhost_list_sort(),
|
||||
vhost_list_descending: false,
|
||||
docker_vhost_sort: default_docker_vhost_sort(),
|
||||
docker_vhost_descending: false,
|
||||
redirect_list_sort: default_redirect_list_sort(),
|
||||
redirect_list_descending: false,
|
||||
notfound_list_sort: default_notfound_list_sort(),
|
||||
notfound_list_descending: false,
|
||||
stream_list_sort: default_stream_list_sort(),
|
||||
stream_list_descending: false,
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -323,6 +413,37 @@ fn validate_admin_preferences(preferences: &AdminPreferences) -> Result<(), ApiE
|
||||
"invalid backend table sort preference".into(),
|
||||
));
|
||||
}
|
||||
for (value, allowed, message) in [
|
||||
(
|
||||
&preferences.vhost_list_sort,
|
||||
VHOST_LIST_SORT_COLUMNS,
|
||||
"invalid vhost list sort preference",
|
||||
),
|
||||
(
|
||||
&preferences.docker_vhost_sort,
|
||||
DOCKER_VHOST_SORT_COLUMNS,
|
||||
"invalid Docker vhost sort preference",
|
||||
),
|
||||
(
|
||||
&preferences.redirect_list_sort,
|
||||
REDIRECT_LIST_SORT_COLUMNS,
|
||||
"invalid redirect list sort preference",
|
||||
),
|
||||
(
|
||||
&preferences.notfound_list_sort,
|
||||
NOTFOUND_LIST_SORT_COLUMNS,
|
||||
"invalid 404-host sort preference",
|
||||
),
|
||||
(
|
||||
&preferences.stream_list_sort,
|
||||
STREAM_LIST_SORT_COLUMNS,
|
||||
"invalid stream list sort preference",
|
||||
),
|
||||
] {
|
||||
if !allowed.contains(&value.as_str()) {
|
||||
return Err(ApiError(StatusCode::UNPROCESSABLE_ENTITY, message.into()));
|
||||
}
|
||||
}
|
||||
Ok(())
|
||||
}
|
||||
|
||||
|
||||
Reference in new issue
Block a user