feat(auth): /me 接口返回 has_password 字段,前端 Profile 类型同步调整

This commit is contained in:
fawney19
2026-04-24 14:52:49 +08:00
parent 780f09c1a2
commit e0c928fbe8
5 changed files with 16 additions and 3 deletions

View File

@@ -176,6 +176,10 @@ fn build_auth_me_payload(
wallet: Option<&aether_data::repository::wallet::StoredWalletSnapshot>,
) -> serde_json::Value {
let billing = build_auth_wallet_summary_payload(wallet);
let has_password = user
.password_hash
.as_deref()
.is_some_and(|value| !value.is_empty());
json!({
"id": user.id,
"email": user.email,
@@ -189,6 +193,7 @@ fn build_auth_me_payload(
"created_at": user.created_at.map(|value| value.to_rfc3339()),
"last_login_at": user.last_login_at.map(|value| value.to_rfc3339()),
"auth_source": user.auth_source,
"has_password": has_password,
})
}

View File

@@ -4187,6 +4187,8 @@ async fn gateway_updates_users_me_detail_locally_without_proxying_upstream() {
let get_payload: serde_json::Value = get_response.json().await.expect("json body should parse");
assert_eq!(get_payload["email"], "alice+updated@example.com");
assert_eq!(get_payload["username"], "alice-updated");
assert_eq!(get_payload["auth_source"], "local");
assert_eq!(get_payload["has_password"], true);
assert_eq!(*upstream_hits.lock().expect("mutex should lock"), 0);
gateway_handle.abort();
@@ -7352,6 +7354,8 @@ async fn gateway_handles_users_me_detail_locally_without_proxying_upstream() {
assert_eq!(payload["id"], "user-auth-1");
assert_eq!(payload["email"], "alice@example.com");
assert_eq!(payload["username"], "alice");
assert_eq!(payload["auth_source"], "local");
assert_eq!(payload["has_password"], true);
assert_eq!(payload["billing"]["id"], "wallet-auth-1");
assert_eq!(payload["billing"]["balance"], 15.5);
assert_eq!(*upstream_hits.lock().expect("mutex should lock"), 0);