///|
/// 当前用户(`/api/me`、`/api/me/sshkey/*`)。

///|
/// 测当前用户与 SSH 公钥列表,返回当前用户(调用方用它判断是不是管理员)。
pub async fn check_user(client : @lib.OpenListClient) -> @lib.User? {
  section("当前用户 /api/me")
  let me = check(
    "GET /api/me",
    "user().me()",
    Ok(client.user().me()) catch {
      error => Err(error)
    },
    fn(response) {
      "\{user_summary(response.user)},已开启两步验证=\{response.otp}"
    },
  )
  dump_raw(client, @lib.Method::Get, "/api/me")
  let _ = check(
    "GET /api/me/sshkey/list",
    "user().list_ssh_keys()",
    Ok(client.user().list_ssh_keys(page=1, per_page=20)) catch {
      error => Err(error)
    },
    fn(page) {
      "total=\{page.total},本页 \{page.content.length()} 个:\{joined(page.content.map(sshkey_summary))}"
    },
  )
  dump_raw(
    client,
    @lib.Method::Get,
    "/api/me/sshkey/list",
    query=Json::object({ "page": Json::number(1), "per_page": Json::number(20) }),
  )
  match me {
    Some(response) => Some(response.user)
    None => None
  }
}