diff --git a/server/web_ui/admin/src/components/admin_groups.rs b/server/web_ui/admin/src/components/admin_groups.rs index 9f925b213..975c16844 100644 --- a/server/web_ui/admin/src/components/admin_groups.rs +++ b/server/web_ui/admin/src/components/admin_groups.rs @@ -10,6 +10,8 @@ use crate::components::admin_menu::{Entity, EntityType, GetError}; use crate::router::AdminRoute; use kanidmd_web_ui_shared::constants::{CSS_CELL, CSS_TABLE}; use kanidmd_web_ui_shared::{alpha_warning_banner, do_request, RequestMethod}; +#[cfg(debug_assertions)] +use serde::Serialize; impl From for AdminListGroupsMsg { fn from(ge: GetError) -> Self { @@ -142,7 +144,10 @@ impl Component for AdminListGroups { for key in response.keys() { let j = response .get(key) - .and_then(|k| serde_wasm_bindgen::to_value(&k).ok()) + .and_then(|k| { + k.serialize(&serde_wasm_bindgen::Serializer::json_compatible()) + .ok() + }) .and_then(|jsv| js_sys::JSON::stringify(&jsv).ok().map(|s| s.into())) .unwrap_or_else(|| "Failed to dump response key".to_string()); console::log!("response: {}", j); diff --git a/server/web_ui/admin/src/components/admin_oauth2.rs b/server/web_ui/admin/src/components/admin_oauth2.rs index 95c72cc06..937d284a4 100644 --- a/server/web_ui/admin/src/components/admin_oauth2.rs +++ b/server/web_ui/admin/src/components/admin_oauth2.rs @@ -10,6 +10,9 @@ use crate::components::admin_menu::{Entity, EntityType, GetError}; use crate::router::AdminRoute; use kanidmd_web_ui_shared::constants::{CSS_CELL, CSS_TABLE}; +#[cfg(debug_assertions)] +use serde::Serialize; + impl From for AdminListOAuth2Msg { fn from(ge: GetError) -> Self { AdminListOAuth2Msg::Failed { @@ -138,7 +141,10 @@ impl Component for AdminListOAuth2 { for key in response.keys() { let j = response .get(key) - .and_then(|k| serde_wasm_bindgen::to_value(&k).ok()) + .and_then(|k| { + k.serialize(&serde_wasm_bindgen::Serializer::json_compatible()) + .ok() + }) .and_then(|jsv| js_sys::JSON::stringify(&jsv).ok().map(|s| s.into())) .unwrap_or_else(|| "Failed to dump response key".to_string()); console::log!("response: {}", j); diff --git a/server/web_ui/login_flows/src/components.rs b/server/web_ui/login_flows/src/components.rs index 85f01fee2..c019d56fc 100644 --- a/server/web_ui/login_flows/src/components.rs +++ b/server/web_ui/login_flows/src/components.rs @@ -26,6 +26,7 @@ use kanidmd_web_ui_shared::models::{ pop_login_remember_me, pop_return_location, push_login_remember_me, set_bearer_token, }; use kanidmd_web_ui_shared::{do_request, error::FetchError, utils, RequestMethod}; +use serde::Serialize; use yew_router::BrowserRouter; #[derive(Clone)] @@ -160,8 +161,9 @@ impl LoginApp { privileged: false, }, }; - let req_jsvalue = - serde_wasm_bindgen::to_value(&authreq).expect("Failed to serialise request"); + let req_jsvalue = authreq + .serialize(&serde_wasm_bindgen::Serializer::json_compatible()) + .expect("Failed to serialise request"); let req_jsvalue = js_sys::JSON::stringify(&req_jsvalue).expect_throw("failed to stringify"); let (kopid, status, value, _) = @@ -186,8 +188,9 @@ impl LoginApp { async fn reauth_init() -> Result { let issue = AuthIssueSession::Token; - let req_jsvalue = - serde_wasm_bindgen::to_value(&issue).expect("Failed to serialise request"); + let req_jsvalue = issue + .serialize(&serde_wasm_bindgen::Serializer::json_compatible()) + .expect("Failed to serialise request"); let req_jsvalue = js_sys::JSON::stringify(&req_jsvalue).expect_throw("failed to stringify"); let url = "/v1/reauth"; let (kopid, status, value, _) = @@ -211,8 +214,9 @@ impl LoginApp { } async fn auth_step(authreq: AuthRequest) -> Result { - let req_jsvalue = - serde_wasm_bindgen::to_value(&authreq).expect("Failed to serialise request"); + let req_jsvalue = authreq + .serialize(&serde_wasm_bindgen::Serializer::json_compatible()) + .expect("Failed to serialise request"); let req_jsvalue = js_sys::JSON::stringify(&req_jsvalue).expect_throw("failed to stringify"); let (kopid, status, value, _) = diff --git a/server/web_ui/login_flows/src/oauth2.rs b/server/web_ui/login_flows/src/oauth2.rs index 8fc2cb929..16c1005d8 100644 --- a/server/web_ui/login_flows/src/oauth2.rs +++ b/server/web_ui/login_flows/src/oauth2.rs @@ -20,6 +20,7 @@ use kanidmd_web_ui_shared::models::{ }; use kanidmd_web_ui_shared::{do_request, error::FetchError, utils, RequestMethod}; +use serde::Serialize; use std::collections::BTreeSet; enum State { @@ -92,9 +93,14 @@ impl Oauth2App { } async fn fetch_authreq(authreq: AuthorisationRequest) -> Result { + let req_jsvalue_1 = authreq + .serialize(&serde_wasm_bindgen::Serializer::json_compatible()) + .expect("Failed to serialise request"); let req_jsvalue = - serde_wasm_bindgen::to_value(&authreq).expect("Failed to serialise request"); - let req_jsvalue = js_sys::JSON::stringify(&req_jsvalue).expect_throw("failed to stringify"); + js_sys::JSON::stringify(&req_jsvalue_1).expect_throw("failed to stringify"); + + #[cfg(debug_assertions)] + console::debug!(&format!("fetch_authreq post {}", req_jsvalue)); let (kopid, status, value, headers) = do_request(OAUTH2_AUTHORISE, RequestMethod::POST, Some(req_jsvalue)).await?; @@ -141,8 +147,9 @@ impl Oauth2App { } async fn fetch_consent_token(consent_token: String) -> Result { - let req_jsvalue = - serde_wasm_bindgen::to_value(&consent_token).expect("Failed to serialise request"); + let req_jsvalue = consent_token + .serialize(&serde_wasm_bindgen::Serializer::json_compatible()) + .expect("Failed to serialise request"); let req_jsvalue = js_sys::JSON::stringify(&req_jsvalue).expect_throw("failed to stringify"); let mut opts = RequestInit::new(); diff --git a/server/web_ui/pkg/external/bootstrap.bundle.min.js.map.br b/server/web_ui/pkg/external/bootstrap.bundle.min.js.map.br index 120460eec..8f5bd296c 100644 Binary files a/server/web_ui/pkg/external/bootstrap.bundle.min.js.map.br and b/server/web_ui/pkg/external/bootstrap.bundle.min.js.map.br differ diff --git a/server/web_ui/pkg/external/bootstrap.min.css.map.br b/server/web_ui/pkg/external/bootstrap.min.css.map.br index b3ca0f0f4..e533032ac 100644 Binary files a/server/web_ui/pkg/external/bootstrap.min.css.map.br and b/server/web_ui/pkg/external/bootstrap.min.css.map.br differ diff --git a/server/web_ui/pkg/img/icon-groups.svg.br b/server/web_ui/pkg/img/icon-groups.svg.br index 57eb62c8b..d91c09ed5 100644 Binary files a/server/web_ui/pkg/img/icon-groups.svg.br and b/server/web_ui/pkg/img/icon-groups.svg.br differ diff --git a/server/web_ui/pkg/kanidmd_web_ui_admin.js b/server/web_ui/pkg/kanidmd_web_ui_admin.js index 1fb3c1780..419b088f7 100644 --- a/server/web_ui/pkg/kanidmd_web_ui_admin.js +++ b/server/web_ui/pkg/kanidmd_web_ui_admin.js @@ -223,7 +223,7 @@ function addBorrowedObject(obj) { } function __wbg_adapter_38(arg0, arg1, arg2) { try { - wasm._dyn_core__ops__function__FnMut___A____Output___R_as_wasm_bindgen__closure__WasmClosure___describe__invoke__h73d508a13868b8cd(arg0, arg1, addBorrowedObject(arg2)); + wasm._dyn_core__ops__function__FnMut___A____Output___R_as_wasm_bindgen__closure__WasmClosure___describe__invoke__h3e88c381a9b0da08(arg0, arg1, addBorrowedObject(arg2)); } finally { heap[stack_pointer++] = undefined; } diff --git a/server/web_ui/pkg/kanidmd_web_ui_admin.js.br b/server/web_ui/pkg/kanidmd_web_ui_admin.js.br index 078f2a559..74af90a1a 100644 Binary files a/server/web_ui/pkg/kanidmd_web_ui_admin.js.br and b/server/web_ui/pkg/kanidmd_web_ui_admin.js.br differ diff --git a/server/web_ui/pkg/kanidmd_web_ui_admin_bg.wasm b/server/web_ui/pkg/kanidmd_web_ui_admin_bg.wasm index 98fde144a..a396fc3d6 100644 Binary files a/server/web_ui/pkg/kanidmd_web_ui_admin_bg.wasm and b/server/web_ui/pkg/kanidmd_web_ui_admin_bg.wasm differ diff --git a/server/web_ui/pkg/kanidmd_web_ui_admin_bg.wasm.br b/server/web_ui/pkg/kanidmd_web_ui_admin_bg.wasm.br index c152b7fb2..a69e7efe4 100644 Binary files a/server/web_ui/pkg/kanidmd_web_ui_admin_bg.wasm.br and b/server/web_ui/pkg/kanidmd_web_ui_admin_bg.wasm.br differ diff --git a/server/web_ui/pkg/kanidmd_web_ui_login_flows.js b/server/web_ui/pkg/kanidmd_web_ui_login_flows.js index 49c94c515..9410cfbb3 100644 --- a/server/web_ui/pkg/kanidmd_web_ui_login_flows.js +++ b/server/web_ui/pkg/kanidmd_web_ui_login_flows.js @@ -232,7 +232,7 @@ function addBorrowedObject(obj) { } function __wbg_adapter_48(arg0, arg1, arg2) { try { - wasm._dyn_core__ops__function__FnMut___A____Output___R_as_wasm_bindgen__closure__WasmClosure___describe__invoke__h7bf04a09fe2e4b23(arg0, arg1, addBorrowedObject(arg2)); + wasm._dyn_core__ops__function__FnMut___A____Output___R_as_wasm_bindgen__closure__WasmClosure___describe__invoke__h3592199ac636c7ab(arg0, arg1, addBorrowedObject(arg2)); } finally { heap[stack_pointer++] = undefined; } @@ -1094,15 +1094,15 @@ function __wbg_get_imports() { const ret = wasm.memory; return addHeapObject(ret); }; - imports.wbg.__wbindgen_closure_wrapper1407 = function(arg0, arg1, arg2) { - const ret = makeMutClosure(arg0, arg1, 501, __wbg_adapter_48); + imports.wbg.__wbindgen_closure_wrapper1388 = function(arg0, arg1, arg2) { + const ret = makeMutClosure(arg0, arg1, 488, __wbg_adapter_48); return addHeapObject(ret); }; - imports.wbg.__wbindgen_closure_wrapper1770 = function(arg0, arg1, arg2) { + imports.wbg.__wbindgen_closure_wrapper1773 = function(arg0, arg1, arg2) { const ret = makeMutClosure(arg0, arg1, 630, __wbg_adapter_51); return addHeapObject(ret); }; - imports.wbg.__wbindgen_closure_wrapper1852 = function(arg0, arg1, arg2) { + imports.wbg.__wbindgen_closure_wrapper1855 = function(arg0, arg1, arg2) { const ret = makeMutClosure(arg0, arg1, 661, __wbg_adapter_54); return addHeapObject(ret); }; diff --git a/server/web_ui/pkg/kanidmd_web_ui_login_flows.js.br b/server/web_ui/pkg/kanidmd_web_ui_login_flows.js.br index 82adecc4a..be9f340d0 100644 Binary files a/server/web_ui/pkg/kanidmd_web_ui_login_flows.js.br and b/server/web_ui/pkg/kanidmd_web_ui_login_flows.js.br differ diff --git a/server/web_ui/pkg/kanidmd_web_ui_login_flows_bg.wasm b/server/web_ui/pkg/kanidmd_web_ui_login_flows_bg.wasm index 35143eb98..0495e4bb5 100644 Binary files a/server/web_ui/pkg/kanidmd_web_ui_login_flows_bg.wasm and b/server/web_ui/pkg/kanidmd_web_ui_login_flows_bg.wasm differ diff --git a/server/web_ui/pkg/kanidmd_web_ui_login_flows_bg.wasm.br b/server/web_ui/pkg/kanidmd_web_ui_login_flows_bg.wasm.br index 2daec6446..92001759d 100644 Binary files a/server/web_ui/pkg/kanidmd_web_ui_login_flows_bg.wasm.br and b/server/web_ui/pkg/kanidmd_web_ui_login_flows_bg.wasm.br differ diff --git a/server/web_ui/pkg/kanidmd_web_ui_user.js b/server/web_ui/pkg/kanidmd_web_ui_user.js index e8e8cb048..ca4400726 100644 --- a/server/web_ui/pkg/kanidmd_web_ui_user.js +++ b/server/web_ui/pkg/kanidmd_web_ui_user.js @@ -225,7 +225,7 @@ function makeMutClosure(arg0, arg1, dtor, f) { return real; } function __wbg_adapter_48(arg0, arg1) { - wasm._dyn_core__ops__function__FnMut_____Output___R_as_wasm_bindgen__closure__WasmClosure___describe__invoke__h0b7ba1f7c88fe439(arg0, arg1); + wasm._dyn_core__ops__function__FnMut_____Output___R_as_wasm_bindgen__closure__WasmClosure___describe__invoke__h4b3f7f6f56bc064a(arg0, arg1); } let stack_pointer = 128; @@ -237,7 +237,7 @@ function addBorrowedObject(obj) { } function __wbg_adapter_51(arg0, arg1, arg2) { try { - wasm._dyn_core__ops__function__FnMut___A____Output___R_as_wasm_bindgen__closure__WasmClosure___describe__invoke__h8b40848531fa9e32(arg0, arg1, addBorrowedObject(arg2)); + wasm._dyn_core__ops__function__FnMut___A____Output___R_as_wasm_bindgen__closure__WasmClosure___describe__invoke__ha7af6bbd80504275(arg0, arg1, addBorrowedObject(arg2)); } finally { heap[stack_pointer++] = undefined; } @@ -1141,20 +1141,20 @@ function __wbg_get_imports() { const ret = wasm.memory; return addHeapObject(ret); }; - imports.wbg.__wbindgen_closure_wrapper1042 = function(arg0, arg1, arg2) { - const ret = makeMutClosure(arg0, arg1, 574, __wbg_adapter_48); + imports.wbg.__wbindgen_closure_wrapper1393 = function(arg0, arg1, arg2) { + const ret = makeMutClosure(arg0, arg1, 770, __wbg_adapter_48); return addHeapObject(ret); }; - imports.wbg.__wbindgen_closure_wrapper3684 = function(arg0, arg1, arg2) { - const ret = makeMutClosure(arg0, arg1, 1705, __wbg_adapter_51); + imports.wbg.__wbindgen_closure_wrapper3682 = function(arg0, arg1, arg2) { + const ret = makeMutClosure(arg0, arg1, 1704, __wbg_adapter_51); return addHeapObject(ret); }; - imports.wbg.__wbindgen_closure_wrapper3783 = function(arg0, arg1, arg2) { - const ret = makeMutClosure(arg0, arg1, 1747, __wbg_adapter_54); + imports.wbg.__wbindgen_closure_wrapper3781 = function(arg0, arg1, arg2) { + const ret = makeMutClosure(arg0, arg1, 1746, __wbg_adapter_54); return addHeapObject(ret); }; - imports.wbg.__wbindgen_closure_wrapper3865 = function(arg0, arg1, arg2) { - const ret = makeMutClosure(arg0, arg1, 1778, __wbg_adapter_57); + imports.wbg.__wbindgen_closure_wrapper3863 = function(arg0, arg1, arg2) { + const ret = makeMutClosure(arg0, arg1, 1777, __wbg_adapter_57); return addHeapObject(ret); }; diff --git a/server/web_ui/pkg/kanidmd_web_ui_user.js.br b/server/web_ui/pkg/kanidmd_web_ui_user.js.br index b357c5759..b5d6845bc 100644 Binary files a/server/web_ui/pkg/kanidmd_web_ui_user.js.br and b/server/web_ui/pkg/kanidmd_web_ui_user.js.br differ diff --git a/server/web_ui/pkg/kanidmd_web_ui_user_bg.wasm b/server/web_ui/pkg/kanidmd_web_ui_user_bg.wasm index 724de556c..574c85615 100644 Binary files a/server/web_ui/pkg/kanidmd_web_ui_user_bg.wasm and b/server/web_ui/pkg/kanidmd_web_ui_user_bg.wasm differ diff --git a/server/web_ui/pkg/kanidmd_web_ui_user_bg.wasm.br b/server/web_ui/pkg/kanidmd_web_ui_user_bg.wasm.br index aef48d41f..280b8bb1f 100644 Binary files a/server/web_ui/pkg/kanidmd_web_ui_user_bg.wasm.br and b/server/web_ui/pkg/kanidmd_web_ui_user_bg.wasm.br differ diff --git a/server/web_ui/user/src/components/change_unix_password.rs b/server/web_ui/user/src/components/change_unix_password.rs index add8fc55d..2870014ed 100644 --- a/server/web_ui/user/src/components/change_unix_password.rs +++ b/server/web_ui/user/src/components/change_unix_password.rs @@ -3,6 +3,7 @@ use kanidmd_web_ui_shared::constants::ID_UNIX_PASSWORDCHANGE; use kanidmd_web_ui_shared::do_request; use kanidmd_web_ui_shared::error::FetchError; use kanidmd_web_ui_shared::RequestMethod; +use serde::Serialize; use uuid::Uuid; use wasm_bindgen::{JsCast, UnwrapThrowExt}; use web_sys::{FormData, HtmlFormElement}; @@ -247,10 +248,12 @@ impl Component for ChangeUnixPassword { impl ChangeUnixPassword { async fn update_unix_password(id: Uuid, new_password: String) -> Result { - let req_jsvalue = serde_wasm_bindgen::to_value(&SingleStringRequest { + let req = SingleStringRequest { value: new_password, - }) - .expect("Failed to serialise request"); + }; + let req_jsvalue = req + .serialize(&serde_wasm_bindgen::Serializer::json_compatible()) + .expect("Failed to serialise request"); let req_jsvalue = js_sys::JSON::stringify(&req_jsvalue).expect_throw("failed to stringify"); let uri = format!("/v1/person/{}/_unix/_credential", id); diff --git a/server/web_ui/user/src/components/totpdisplay.rs b/server/web_ui/user/src/components/totpdisplay.rs index c0f497857..7f4915abd 100644 --- a/server/web_ui/user/src/components/totpdisplay.rs +++ b/server/web_ui/user/src/components/totpdisplay.rs @@ -3,6 +3,7 @@ use gloo::console; use gloo_timers::callback::{Interval, Timeout}; use kanidm_proto::internal::{IdentifyUserRequest, IdentifyUserResponse}; use kanidmd_web_ui_shared::constants::ID_IDENTITY_VERIFICATION_SYSTEM_TOTP_MODAL; +use serde::Serialize; use wasm_bindgen::UnwrapThrowExt; use wasm_timer::SystemTime; use yew::prelude::*; @@ -56,8 +57,9 @@ impl TotpDisplayApp { let uri = format!("/v1/person/{}/_identify_user", other_id); let request = IdentifyUserRequest::DisplayCode; - let req_jsvalue = - serde_wasm_bindgen::to_value(&request).expect("Failed to serialise request"); + let req_jsvalue = request + .serialize(&serde_wasm_bindgen::Serializer::json_compatible()) + .expect("Failed to serialise request"); let req_jsvalue = js_sys::JSON::stringify(&req_jsvalue).expect_throw("failed to stringify"); let response = match do_request(&uri, RequestMethod::POST, Some(req_jsvalue)).await { diff --git a/server/web_ui/user/src/credential/delete.rs b/server/web_ui/user/src/credential/delete.rs index 920ec5891..f97fada3b 100644 --- a/server/web_ui/user/src/credential/delete.rs +++ b/server/web_ui/user/src/credential/delete.rs @@ -3,6 +3,7 @@ use gloo::console; use kanidm_proto::v1::{CURequest, CUSessionToken, CUStatus}; use kanidmd_web_ui_shared::error::FetchError; use kanidmd_web_ui_shared::utils::modal_hide_by_id; +use serde::Serialize; use wasm_bindgen::UnwrapThrowExt; use yew::prelude::*; @@ -47,8 +48,10 @@ impl DeleteApp { req: CURequest, cb: Callback, ) -> Result { - let req_jsvalue = - serde_wasm_bindgen::to_value(&(req, token)).expect("Failed to serialise request"); + let request = (req, token); + let req_jsvalue = request + .serialize(&serde_wasm_bindgen::Serializer::json_compatible()) + .expect("Failed to serialise request"); let req_jsvalue = js_sys::JSON::stringify(&req_jsvalue).expect_throw("failed to stringify"); let (kopid, status, value, _) = do_request( diff --git a/server/web_ui/user/src/credential/passkey.rs b/server/web_ui/user/src/credential/passkey.rs index 732faae0d..70f52f3f1 100644 --- a/server/web_ui/user/src/credential/passkey.rs +++ b/server/web_ui/user/src/credential/passkey.rs @@ -3,6 +3,7 @@ use kanidm_proto::v1::{CURegState, CURequest, CUSessionToken, CUStatus}; use kanidm_proto::webauthn::{CreationChallengeResponse, RegisterPublicKeyCredential}; use kanidmd_web_ui_shared::constants::CLASS_BUTTON_SUCCESS; use kanidmd_web_ui_shared::error::FetchError; +use serde::Serialize; use wasm_bindgen::UnwrapThrowExt; use wasm_bindgen_futures::JsFuture; use yew::prelude::*; @@ -57,8 +58,10 @@ impl PasskeyModalApp { req: CURequest, cb: Callback, ) -> Result { - let req_jsvalue = - serde_wasm_bindgen::to_value(&(req, token)).expect("Failed to serialise request"); + let request = (req, token); + let req_jsvalue = request + .serialize(&serde_wasm_bindgen::Serializer::json_compatible()) + .expect("Failed to serialise request"); let req_jsvalue = js_sys::JSON::stringify(&req_jsvalue).expect_throw("failed to stringify"); let (kopid, status, value, _) = do_request( diff --git a/server/web_ui/user/src/credential/passkeyremove.rs b/server/web_ui/user/src/credential/passkeyremove.rs index d83494f13..01c687fd5 100644 --- a/server/web_ui/user/src/credential/passkeyremove.rs +++ b/server/web_ui/user/src/credential/passkeyremove.rs @@ -1,6 +1,7 @@ #[cfg(debug_assertions)] use gloo::console; use kanidm_proto::v1::{CURegState, CURequest, CUSessionToken, CUStatus}; +use serde::Serialize; use uuid::Uuid; use wasm_bindgen::UnwrapThrowExt; use yew::prelude::*; @@ -63,8 +64,10 @@ impl PasskeyRemoveModalApp { req: CURequest, cb: Callback, ) -> Result { - let req_jsvalue = - serde_wasm_bindgen::to_value(&(req, token)).expect("Failed to serialise request"); + let request = (req, token); + let req_jsvalue = request + .serialize(&serde_wasm_bindgen::Serializer::json_compatible()) + .expect("Failed to serialise request"); let req_jsvalue = js_sys::JSON::stringify(&req_jsvalue).expect_throw("failed to stringify"); // this really should require a DELETE not a post! diff --git a/server/web_ui/user/src/credential/pwmodal.rs b/server/web_ui/user/src/credential/pwmodal.rs index 485560fe5..655652f7c 100644 --- a/server/web_ui/user/src/credential/pwmodal.rs +++ b/server/web_ui/user/src/credential/pwmodal.rs @@ -2,6 +2,7 @@ use gloo::console; use kanidm_proto::v1::{CURequest, CUSessionToken, CUStatus, OperationError, PasswordFeedback}; use wasm_bindgen::UnwrapThrowExt; +use serde::Serialize; use yew::prelude::*; use super::reset::{EventBusMsg, ModalProps}; @@ -55,7 +56,9 @@ impl PwModalApp { } async fn submit_password_update(token: CUSessionToken, pw: String) -> Result { - let req_jsvalue = serde_wasm_bindgen::to_value(&(CURequest::Password(pw), token)) + let request = (CURequest::Password(pw), token); + let req_jsvalue = request + .serialize(&serde_wasm_bindgen::Serializer::json_compatible()) .expect("Failed to serialise request"); let req_jsvalue = js_sys::JSON::stringify(&req_jsvalue).expect_throw("failed to stringify"); diff --git a/server/web_ui/user/src/credential/reset.rs b/server/web_ui/user/src/credential/reset.rs index 293c33e6e..5f3a3a9b7 100644 --- a/server/web_ui/user/src/credential/reset.rs +++ b/server/web_ui/user/src/credential/reset.rs @@ -8,6 +8,7 @@ use kanidmd_web_ui_shared::constants::{CSS_ALERT_DANGER, URL_USER_HOME}; use kanidmd_web_ui_shared::models::{get_cred_update_session, pop_return_location}; use kanidmd_web_ui_shared::utils::{autofocus, do_footer}; use kanidmd_web_ui_shared::{add_body_form_classes, logo_img, remove_body_form_classes}; +use serde::Serialize; use uuid::Uuid; use wasm_bindgen::UnwrapThrowExt; use yew::prelude::*; @@ -700,7 +701,9 @@ impl CredentialResetApp { } async fn exchange_intent_token(token: String) -> Result { - let req_jsvalue = serde_wasm_bindgen::to_value(&CUIntentToken { token }) + let request = CUIntentToken { token }; + let req_jsvalue = request + .serialize(&serde_wasm_bindgen::Serializer::json_compatible()) .expect("Failed to serialise request"); let req_jsvalue = js_sys::JSON::stringify(&req_jsvalue).expect_throw("failed to stringify"); @@ -722,8 +725,9 @@ impl CredentialResetApp { } async fn end_session(token: CUSessionToken, url: &str) -> Result { - let req_jsvalue = - serde_wasm_bindgen::to_value(&token).expect("Failed to serialise request"); + let req_jsvalue = token + .serialize(&serde_wasm_bindgen::Serializer::json_compatible()) + .expect("Failed to serialise request"); let req_jsvalue = js_sys::JSON::stringify(&req_jsvalue).expect_throw("failed to stringify"); let (kopid, status, value, _) = diff --git a/server/web_ui/user/src/credential/totpremove.rs b/server/web_ui/user/src/credential/totpremove.rs index 26ba0012b..10528c7eb 100644 --- a/server/web_ui/user/src/credential/totpremove.rs +++ b/server/web_ui/user/src/credential/totpremove.rs @@ -4,6 +4,7 @@ use gloo::console; use kanidm_proto::v1::{CURequest, CUSessionToken, CUStatus}; use kanidmd_web_ui_shared::RequestMethod; use kanidmd_web_ui_shared::{do_request, error::FetchError}; +use serde::Serialize; use wasm_bindgen::UnwrapThrowExt; use yew::prelude::*; @@ -101,8 +102,10 @@ impl TotpRemoveComp { req: CURequest, cb: Callback, ) -> Result { - let req_jsvalue = - serde_wasm_bindgen::to_value(&(req, token)).expect("Failed to serialise request"); + let request = (req, token); + let req_jsvalue = request + .serialize(&serde_wasm_bindgen::Serializer::json_compatible()) + .expect("Failed to serialise request"); let req_jsvalue = js_sys::JSON::stringify(&req_jsvalue).expect_throw("failed to stringify"); let (kopid, status, value, _) = do_request( diff --git a/server/web_ui/user/src/views/identityverification.rs b/server/web_ui/user/src/views/identityverification.rs index 94df0433f..b61c05b17 100644 --- a/server/web_ui/user/src/views/identityverification.rs +++ b/server/web_ui/user/src/views/identityverification.rs @@ -3,6 +3,7 @@ use gloo::console; use kanidm_proto::internal::{IdentifyUserRequest, IdentifyUserResponse}; use kanidmd_web_ui_shared::logo_img; use regex::Regex; +use serde::Serialize; use wasm_bindgen::{JsValue, UnwrapThrowExt}; use yew::prelude::*; @@ -491,8 +492,9 @@ impl IdentityVerificationApp { ) -> Result { let uri = format!("/v1/person/{}/_identify_user", other_id); - let req_jsvalue = - serde_wasm_bindgen::to_value(&request).expect("Failed to serialise request"); + let req_jsvalue = request + .serialize(&serde_wasm_bindgen::Serializer::json_compatible()) + .expect("Failed to serialise request"); let req_jsvalue = js_sys::JSON::stringify(&req_jsvalue).expect_throw("failed to stringify"); let (_, status, response, _) = do_request(&uri, RequestMethod::POST, Some(req_jsvalue))