mirror of
https://github.com/fawney19/Aether.git
synced 2026-10-07 01:47:47 +08:00
Merge branch 'pr-503'
# Conflicts: # apps/aether-gateway/src/handlers/admin/provider/summary/value.rs # apps/aether-gateway/src/lib.rs # apps/aether-gateway/src/maintenance/mod.rs # apps/aether-gateway/src/maintenance/runtime/workers.rs # frontend/src/api/endpoints/types/provider.ts
This commit is contained in:
@@ -797,22 +797,13 @@ pub fn admin_provider_ops_sub2api_verify_payload(
|
||||
}
|
||||
}
|
||||
|
||||
let username_or_email = admin_provider_ops_sub2api_non_empty_string(user_data, "username")
|
||||
.or_else(|| admin_provider_ops_sub2api_non_empty_string(user_data, "email"));
|
||||
admin_provider_ops_verify_success(
|
||||
admin_provider_ops_verify_user_payload(
|
||||
user_data
|
||||
.get("username")
|
||||
.or_else(|| user_data.get("email"))
|
||||
.and_then(Value::as_str)
|
||||
.map(ToOwned::to_owned),
|
||||
user_data
|
||||
.get("username")
|
||||
.or_else(|| user_data.get("email"))
|
||||
.and_then(Value::as_str)
|
||||
.map(ToOwned::to_owned),
|
||||
user_data
|
||||
.get("email")
|
||||
.and_then(Value::as_str)
|
||||
.map(ToOwned::to_owned),
|
||||
username_or_email.clone(),
|
||||
username_or_email,
|
||||
admin_provider_ops_sub2api_non_empty_string(user_data, "email"),
|
||||
Some(balance + points),
|
||||
Some(extra),
|
||||
),
|
||||
@@ -820,6 +811,17 @@ pub fn admin_provider_ops_sub2api_verify_payload(
|
||||
)
|
||||
}
|
||||
|
||||
fn admin_provider_ops_sub2api_non_empty_string(
|
||||
map: &Map<String, Value>,
|
||||
key: &str,
|
||||
) -> Option<String> {
|
||||
map.get(key)
|
||||
.and_then(Value::as_str)
|
||||
.map(str::trim)
|
||||
.filter(|value| !value.is_empty())
|
||||
.map(ToOwned::to_owned)
|
||||
}
|
||||
|
||||
#[cfg(test)]
|
||||
mod tests {
|
||||
use super::{
|
||||
@@ -913,6 +915,28 @@ mod tests {
|
||||
);
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn sub2api_verify_payload_falls_back_to_email_when_username_is_null() {
|
||||
let payload = admin_provider_ops_sub2api_verify_payload(
|
||||
StatusCode::OK,
|
||||
&json!({
|
||||
"code": 0,
|
||||
"data": {
|
||||
"username": null,
|
||||
"email": "[email protected]",
|
||||
"balance": 2.0,
|
||||
"points": 0.0
|
||||
}
|
||||
}),
|
||||
None,
|
||||
);
|
||||
|
||||
assert_eq!(payload["success"], json!(true));
|
||||
assert_eq!(payload["data"]["username"], json!("[email protected]"));
|
||||
assert_eq!(payload["data"]["display_name"], json!("[email protected]"));
|
||||
assert_eq!(payload["data"]["email"], json!("[email protected]"));
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn anyrouter_verify_payload_uses_cookie_auth_messages_and_usage_fields() {
|
||||
let payload = admin_provider_ops_anyrouter_verify_payload(
|
||||
|
||||
Reference in New Issue
Block a user