mirror of
https://github.com/kanidm/kanidm.git
synced 2025-02-23 12:37:00 +01:00
Remove serde json from wasm (#2304)
* Remove serde json from wasm * Fix missing json
This commit is contained in:
parent
8a40f5ab7b
commit
a2a3010860
4
Cargo.lock
generated
4
Cargo.lock
generated
|
@ -3363,7 +3363,6 @@ dependencies = [
|
|||
"kanidmd_web_ui_shared",
|
||||
"serde",
|
||||
"serde-wasm-bindgen 0.5.0",
|
||||
"serde_json",
|
||||
"time",
|
||||
"uuid",
|
||||
"wasm-bindgen",
|
||||
|
@ -3385,7 +3384,6 @@ dependencies = [
|
|||
"kanidmd_web_ui_shared",
|
||||
"serde",
|
||||
"serde-wasm-bindgen 0.5.0",
|
||||
"serde_json",
|
||||
"time",
|
||||
"uuid",
|
||||
"wasm-bindgen",
|
||||
|
@ -3405,7 +3403,6 @@ dependencies = [
|
|||
"kanidm_proto",
|
||||
"serde",
|
||||
"serde-wasm-bindgen 0.5.0",
|
||||
"serde_json",
|
||||
"time",
|
||||
"url",
|
||||
"uuid",
|
||||
|
@ -3431,7 +3428,6 @@ dependencies = [
|
|||
"regex",
|
||||
"serde",
|
||||
"serde-wasm-bindgen 0.5.0",
|
||||
"serde_json",
|
||||
"time",
|
||||
"uuid",
|
||||
"wasm-bindgen",
|
||||
|
|
|
@ -23,7 +23,6 @@ kanidmd_web_ui_shared = { workspace = true }
|
|||
gloo = { workspace = true }
|
||||
js-sys = { workspace = true }
|
||||
serde = { workspace = true, features = ["derive"] }
|
||||
serde_json = { workspace = true }
|
||||
serde-wasm-bindgen = { workspace = true }
|
||||
time = { workspace = true }
|
||||
uuid = { workspace = true }
|
||||
|
|
|
@ -1,6 +1,7 @@
|
|||
use std::collections::BTreeMap;
|
||||
|
||||
use gloo::console;
|
||||
use wasm_bindgen::JsValue;
|
||||
use yew::{html, Component, Context, Html, Properties};
|
||||
use yew_router::prelude::Link;
|
||||
|
||||
|
@ -90,7 +91,8 @@ pub async fn get_accounts() -> Result<AdminListAccountsMsg, GetError> {
|
|||
];
|
||||
|
||||
for (endpoint, object_type) in endpoints {
|
||||
let (_, _, value, _) = match do_request(endpoint, RequestMethod::GET, None).await {
|
||||
let (_, _, value, _) = match do_request(endpoint, RequestMethod::GET, None::<JsValue>).await
|
||||
{
|
||||
Ok(val) => val,
|
||||
Err(error) => {
|
||||
return Err(GetError {
|
||||
|
@ -527,7 +529,7 @@ pub async fn get_person(uuid: &str) -> Result<AdminViewPersonMsg, GetError> {
|
|||
let (_, _, value, _) = match do_request(
|
||||
format!("/v1/person/{}", uuid).as_str(),
|
||||
RequestMethod::GET,
|
||||
None,
|
||||
None::<JsValue>,
|
||||
)
|
||||
.await
|
||||
{
|
||||
|
@ -555,7 +557,7 @@ pub async fn get_service_account(uuid: &str) -> Result<AdminViewServiceAccountMs
|
|||
let (_, _, value, _) = match do_request(
|
||||
format!("/v1/service_account/{}", uuid).as_str(),
|
||||
RequestMethod::GET,
|
||||
None,
|
||||
None::<JsValue>,
|
||||
)
|
||||
.await
|
||||
{
|
||||
|
|
|
@ -2,6 +2,7 @@ use std::collections::BTreeMap;
|
|||
|
||||
use gloo::console;
|
||||
use kanidmd_web_ui_shared::utils::{do_alert_error, do_page_header};
|
||||
use wasm_bindgen::JsValue;
|
||||
use yew::{html, Component, Context, Html, Properties};
|
||||
use yew_router::prelude::Link;
|
||||
|
||||
|
@ -70,7 +71,8 @@ pub async fn get_groups() -> Result<AdminListGroupsMsg, GetError> {
|
|||
let endpoints = [("/v1/group", EntityType::Group)];
|
||||
|
||||
for (endpoint, object_type) in endpoints {
|
||||
let (_, _, value, _) = match do_request(endpoint, RequestMethod::GET, None).await {
|
||||
let (_, _, value, _) = match do_request(endpoint, RequestMethod::GET, None::<JsValue>).await
|
||||
{
|
||||
Ok(val) => val,
|
||||
Err(error) => {
|
||||
return Err(GetError {
|
||||
|
@ -136,12 +138,14 @@ impl Component for AdminListGroups {
|
|||
match msg {
|
||||
AdminListGroupsMsg::Responded { response } => {
|
||||
// TODO: do we paginate here?
|
||||
#[cfg(test)]
|
||||
#[cfg(debug_assertions)]
|
||||
for key in response.keys() {
|
||||
console::debug!(
|
||||
"response: {:?}",
|
||||
serde_json::to_string(response.get(key).unwrap()).unwrap()
|
||||
);
|
||||
let j = response
|
||||
.get(key)
|
||||
.and_then(|k| serde_wasm_bindgen::to_value(&k).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);
|
||||
}
|
||||
self.state = GroupsViewState::Responded { response };
|
||||
return true;
|
||||
|
@ -360,7 +364,7 @@ impl Component for AdminViewGroup {
|
|||
/// pull the details for a single group by UUID
|
||||
pub async fn get_group(groupid: &str) -> Result<AdminViewGroupMsg, GetError> {
|
||||
let endpoint = format!("/v1/group/{}", groupid);
|
||||
let (_, _, value, _) = match do_request(&endpoint, RequestMethod::GET, None).await {
|
||||
let (_, _, value, _) = match do_request(&endpoint, RequestMethod::GET, None::<JsValue>).await {
|
||||
Ok(val) => val,
|
||||
Err(error) => {
|
||||
return Err(GetError {
|
||||
|
|
|
@ -1,6 +1,7 @@
|
|||
use std::collections::BTreeMap;
|
||||
|
||||
use gloo::console;
|
||||
use wasm_bindgen::JsValue;
|
||||
use yew::{html, Component, Context, Html, Properties};
|
||||
use yew_router::prelude::Link;
|
||||
|
||||
|
@ -70,7 +71,8 @@ pub async fn get_entities() -> Result<AdminListOAuth2Msg, GetError> {
|
|||
let endpoints = [("/v1/oauth2", EntityType::OAuth2RP)];
|
||||
|
||||
for (endpoint, object_type) in endpoints {
|
||||
let (_, _, value, _) = match do_request(endpoint, RequestMethod::GET, None).await {
|
||||
let (_, _, value, _) = match do_request(endpoint, RequestMethod::GET, None::<JsValue>).await
|
||||
{
|
||||
Ok(val) => val,
|
||||
Err(error) => {
|
||||
return Err(GetError {
|
||||
|
@ -136,7 +138,8 @@ impl Component for AdminListOAuth2 {
|
|||
for key in response.keys() {
|
||||
let j = response
|
||||
.get(key)
|
||||
.and_then(|k| serde_json::to_string(k).ok())
|
||||
.and_then(|k| serde_wasm_bindgen::to_value(&k).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);
|
||||
}
|
||||
|
@ -396,7 +399,7 @@ impl Component for AdminViewOAuth2 {
|
|||
|
||||
pub async fn get_oauth2_rp(rs_name: &str) -> Result<AdminViewOAuth2Msg, GetError> {
|
||||
let endpoint = format!("/v1/oauth2/{}", rs_name);
|
||||
let (_, _, value, _) = match do_request(&endpoint, RequestMethod::GET, None).await {
|
||||
let (_, _, value, _) = match do_request(&endpoint, RequestMethod::GET, None::<JsValue>).await {
|
||||
Ok(val) => val,
|
||||
Err(error) => {
|
||||
return Err(GetError {
|
||||
|
|
|
@ -23,7 +23,6 @@ js-sys = { workspace = true }
|
|||
kanidm_proto = { workspace = true, features = ["wasm"] }
|
||||
kanidmd_web_ui_shared = { workspace = true }
|
||||
serde = { workspace = true, features = ["derive"] }
|
||||
serde_json = { workspace = true }
|
||||
serde-wasm-bindgen = { workspace = true }
|
||||
wasm-bindgen = { workspace = true }
|
||||
wasm-bindgen-futures = { workspace = true }
|
||||
|
|
|
@ -160,9 +160,9 @@ impl LoginApp {
|
|||
privileged: false,
|
||||
},
|
||||
};
|
||||
let req_jsvalue = serde_json::to_string(&authreq)
|
||||
.map(|s| JsValue::from(&s))
|
||||
.expect_throw("Failed to serialise authreq");
|
||||
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");
|
||||
|
||||
let (kopid, status, value, _) =
|
||||
do_request("/v1/auth", RequestMethod::POST, Some(req_jsvalue)).await?;
|
||||
|
@ -186,12 +186,12 @@ impl LoginApp {
|
|||
|
||||
async fn reauth_init() -> Result<LoginAppMsg, FetchError> {
|
||||
let issue = AuthIssueSession::Token;
|
||||
let authreq_jsvalue = serde_json::to_string(&issue)
|
||||
.map(|s| JsValue::from(&s))
|
||||
.expect_throw("Failed to serialise authreq");
|
||||
let req_jsvalue =
|
||||
serde_wasm_bindgen::to_value(&issue).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, _) =
|
||||
do_request(url, RequestMethod::POST, Some(authreq_jsvalue)).await?;
|
||||
do_request(url, RequestMethod::POST, Some(req_jsvalue)).await?;
|
||||
|
||||
if status == 200 {
|
||||
let state: AuthResponse = serde_wasm_bindgen::from_value(value)
|
||||
|
@ -211,12 +211,12 @@ impl LoginApp {
|
|||
}
|
||||
|
||||
async fn auth_step(authreq: AuthRequest) -> Result<LoginAppMsg, FetchError> {
|
||||
let authreq_jsvalue = serde_json::to_string(&authreq)
|
||||
.map(|s| JsValue::from(&s))
|
||||
.expect_throw("Failed to serialise authreq");
|
||||
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");
|
||||
|
||||
let (kopid, status, value, _) =
|
||||
do_request("/v1/auth", RequestMethod::POST, Some(authreq_jsvalue)).await?;
|
||||
do_request("/v1/auth", RequestMethod::POST, Some(req_jsvalue)).await?;
|
||||
|
||||
if status == 200 {
|
||||
let state: AuthResponse = serde_wasm_bindgen::from_value(value)
|
||||
|
|
|
@ -7,7 +7,7 @@ use kanidmd_web_ui_shared::utils::{do_alert_error, do_footer, window};
|
|||
use kanidmd_web_ui_shared::{
|
||||
add_body_form_classes, fetch_session_valid, logo_img, remove_body_form_classes, SessionStatus,
|
||||
};
|
||||
use wasm_bindgen::{JsCast, JsValue, UnwrapThrowExt};
|
||||
use wasm_bindgen::{JsCast, UnwrapThrowExt};
|
||||
use wasm_bindgen_futures::JsFuture;
|
||||
use web_sys::{Request, RequestInit, RequestMode, RequestRedirect, Response};
|
||||
use yew::prelude::*;
|
||||
|
@ -92,12 +92,12 @@ impl Oauth2App {
|
|||
}
|
||||
|
||||
async fn fetch_authreq(authreq: AuthorisationRequest) -> Result<Oauth2Msg, FetchError> {
|
||||
let authreq_jsvalue = serde_json::to_string(&authreq)
|
||||
.map(|s| JsValue::from(&s))
|
||||
.expect_throw("Failed to serialise authreq");
|
||||
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");
|
||||
|
||||
let (kopid, status, value, headers) =
|
||||
do_request(OAUTH2_AUTHORISE, RequestMethod::POST, Some(authreq_jsvalue)).await?;
|
||||
do_request(OAUTH2_AUTHORISE, RequestMethod::POST, Some(req_jsvalue)).await?;
|
||||
|
||||
#[cfg(debug_assertions)]
|
||||
console::debug!(&format!("fetch_authreq result {}", status));
|
||||
|
@ -141,16 +141,16 @@ impl Oauth2App {
|
|||
}
|
||||
|
||||
async fn fetch_consent_token(consent_token: String) -> Result<Oauth2Msg, FetchError> {
|
||||
let consentreq_jsvalue = serde_json::to_string(&consent_token)
|
||||
.map(|s| JsValue::from(&s))
|
||||
.expect_throw("Failed to serialise consent_req");
|
||||
let req_jsvalue =
|
||||
serde_wasm_bindgen::to_value(&consent_token).expect("Failed to serialise request");
|
||||
let req_jsvalue = js_sys::JSON::stringify(&req_jsvalue).expect_throw("failed to stringify");
|
||||
|
||||
let mut opts = RequestInit::new();
|
||||
opts.method("POST");
|
||||
opts.mode(RequestMode::SameOrigin);
|
||||
opts.redirect(RequestRedirect::Manual); // can't replace with do_request because of this
|
||||
|
||||
opts.body(Some(&consentreq_jsvalue));
|
||||
opts.body(Some(&req_jsvalue));
|
||||
|
||||
let request = Request::new_with_str_and_init(OAUTH2_AUTHORISE_PERMIT, &opts)?;
|
||||
|
||||
|
|
BIN
server/web_ui/pkg/external/bootstrap.min.css.map.br
vendored
BIN
server/web_ui/pkg/external/bootstrap.min.css.map.br
vendored
Binary file not shown.
Binary file not shown.
Binary file not shown.
|
@ -969,15 +969,15 @@ function __wbg_get_imports() {
|
|||
const ret = wasm.memory;
|
||||
return addHeapObject(ret);
|
||||
};
|
||||
imports.wbg.__wbindgen_closure_wrapper1236 = function(arg0, arg1, arg2) {
|
||||
imports.wbg.__wbindgen_closure_wrapper1235 = function(arg0, arg1, arg2) {
|
||||
const ret = makeMutClosure(arg0, arg1, 558, __wbg_adapter_38);
|
||||
return addHeapObject(ret);
|
||||
};
|
||||
imports.wbg.__wbindgen_closure_wrapper1370 = function(arg0, arg1, arg2) {
|
||||
imports.wbg.__wbindgen_closure_wrapper1369 = function(arg0, arg1, arg2) {
|
||||
const ret = makeMutClosure(arg0, arg1, 624, __wbg_adapter_41);
|
||||
return addHeapObject(ret);
|
||||
};
|
||||
imports.wbg.__wbindgen_closure_wrapper1451 = function(arg0, arg1, arg2) {
|
||||
imports.wbg.__wbindgen_closure_wrapper1450 = function(arg0, arg1, arg2) {
|
||||
const ret = makeMutClosure(arg0, arg1, 655, __wbg_adapter_44);
|
||||
return addHeapObject(ret);
|
||||
};
|
||||
|
|
Binary file not shown.
Binary file not shown.
Binary file not shown.
|
@ -399,14 +399,14 @@ function __wbg_get_imports() {
|
|||
const ret = false;
|
||||
return ret;
|
||||
};
|
||||
imports.wbg.__wbindgen_object_clone_ref = function(arg0) {
|
||||
const ret = getObject(arg0);
|
||||
return addHeapObject(ret);
|
||||
};
|
||||
imports.wbg.__wbindgen_error_new = function(arg0, arg1) {
|
||||
const ret = new Error(getStringFromWasm0(arg0, arg1));
|
||||
return addHeapObject(ret);
|
||||
};
|
||||
imports.wbg.__wbindgen_object_clone_ref = function(arg0) {
|
||||
const ret = getObject(arg0);
|
||||
return addHeapObject(ret);
|
||||
};
|
||||
imports.wbg.__wbg_setlistenerid_3183aae8fa5840fb = function(arg0, arg1) {
|
||||
getObject(arg0).__yew_listener_id = arg1 >>> 0;
|
||||
};
|
||||
|
@ -910,6 +910,10 @@ function __wbg_get_imports() {
|
|||
const ret = new Function(getStringFromWasm0(arg0, arg1));
|
||||
return addHeapObject(ret);
|
||||
};
|
||||
imports.wbg.__wbg_new_1b94180eeb48f2a2 = function() {
|
||||
const ret = new Map();
|
||||
return addHeapObject(ret);
|
||||
};
|
||||
imports.wbg.__wbg_next_15da6a3df9290720 = function(arg0) {
|
||||
const ret = getObject(arg0).next;
|
||||
return addHeapObject(ret);
|
||||
|
@ -1005,6 +1009,10 @@ function __wbg_get_imports() {
|
|||
const ret = getObject(arg0).toString();
|
||||
return addHeapObject(ret);
|
||||
};
|
||||
imports.wbg.__wbg_set_3355b9f2d3092e3b = function(arg0, arg1, arg2) {
|
||||
const ret = getObject(arg0).set(getObject(arg1), getObject(arg2));
|
||||
return addHeapObject(ret);
|
||||
};
|
||||
imports.wbg.__wbg_isSafeInteger_c38b0a16d0c7cef7 = function(arg0) {
|
||||
const ret = Number.isSafeInteger(getObject(arg0));
|
||||
return ret;
|
||||
|
@ -1062,6 +1070,10 @@ function __wbg_get_imports() {
|
|||
const ret = Reflect.set(getObject(arg0), getObject(arg1), getObject(arg2));
|
||||
return ret;
|
||||
}, arguments) };
|
||||
imports.wbg.__wbg_stringify_4039297315a25b00 = function() { return handleError(function (arg0) {
|
||||
const ret = JSON.stringify(getObject(arg0));
|
||||
return addHeapObject(ret);
|
||||
}, arguments) };
|
||||
imports.wbg.__wbindgen_bigint_get_as_i64 = function(arg0, arg1) {
|
||||
const v = getObject(arg1);
|
||||
const ret = typeof(v) === 'bigint' ? v : undefined;
|
||||
|
@ -1082,16 +1094,16 @@ function __wbg_get_imports() {
|
|||
const ret = wasm.memory;
|
||||
return addHeapObject(ret);
|
||||
};
|
||||
imports.wbg.__wbindgen_closure_wrapper1410 = function(arg0, arg1, arg2) {
|
||||
const ret = makeMutClosure(arg0, arg1, 503, __wbg_adapter_48);
|
||||
imports.wbg.__wbindgen_closure_wrapper1407 = function(arg0, arg1, arg2) {
|
||||
const ret = makeMutClosure(arg0, arg1, 501, __wbg_adapter_48);
|
||||
return addHeapObject(ret);
|
||||
};
|
||||
imports.wbg.__wbindgen_closure_wrapper1773 = function(arg0, arg1, arg2) {
|
||||
const ret = makeMutClosure(arg0, arg1, 632, __wbg_adapter_51);
|
||||
imports.wbg.__wbindgen_closure_wrapper1770 = function(arg0, arg1, arg2) {
|
||||
const ret = makeMutClosure(arg0, arg1, 630, __wbg_adapter_51);
|
||||
return addHeapObject(ret);
|
||||
};
|
||||
imports.wbg.__wbindgen_closure_wrapper1855 = function(arg0, arg1, arg2) {
|
||||
const ret = makeMutClosure(arg0, arg1, 663, __wbg_adapter_54);
|
||||
imports.wbg.__wbindgen_closure_wrapper1852 = function(arg0, arg1, arg2) {
|
||||
const ret = makeMutClosure(arg0, arg1, 661, __wbg_adapter_54);
|
||||
return addHeapObject(ret);
|
||||
};
|
||||
|
||||
|
|
Binary file not shown.
Binary file not shown.
Binary file not shown.
|
@ -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__h144ed1895d4228c0(arg0, arg1);
|
||||
wasm._dyn_core__ops__function__FnMut_____Output___R_as_wasm_bindgen__closure__WasmClosure___describe__invoke__h0b7ba1f7c88fe439(arg0, arg1);
|
||||
}
|
||||
|
||||
let stack_pointer = 128;
|
||||
|
@ -403,14 +403,14 @@ function __wbg_get_imports() {
|
|||
const ret = false;
|
||||
return ret;
|
||||
};
|
||||
imports.wbg.__wbindgen_object_clone_ref = function(arg0) {
|
||||
const ret = getObject(arg0);
|
||||
return addHeapObject(ret);
|
||||
};
|
||||
imports.wbg.__wbindgen_error_new = function(arg0, arg1) {
|
||||
const ret = new Error(getStringFromWasm0(arg0, arg1));
|
||||
return addHeapObject(ret);
|
||||
};
|
||||
imports.wbg.__wbindgen_object_clone_ref = function(arg0) {
|
||||
const ret = getObject(arg0);
|
||||
return addHeapObject(ret);
|
||||
};
|
||||
imports.wbg.__wbg_clearTimeout_541ac0980ffcef74 = function(arg0) {
|
||||
const ret = clearTimeout(takeObject(arg0));
|
||||
return addHeapObject(ret);
|
||||
|
@ -1117,6 +1117,10 @@ function __wbg_get_imports() {
|
|||
const ret = Reflect.set(getObject(arg0), getObject(arg1), getObject(arg2));
|
||||
return ret;
|
||||
}, arguments) };
|
||||
imports.wbg.__wbg_stringify_4039297315a25b00 = function() { return handleError(function (arg0) {
|
||||
const ret = JSON.stringify(getObject(arg0));
|
||||
return addHeapObject(ret);
|
||||
}, arguments) };
|
||||
imports.wbg.__wbindgen_bigint_get_as_i64 = function(arg0, arg1) {
|
||||
const v = getObject(arg1);
|
||||
const ret = typeof(v) === 'bigint' ? v : undefined;
|
||||
|
@ -1137,19 +1141,19 @@ function __wbg_get_imports() {
|
|||
const ret = wasm.memory;
|
||||
return addHeapObject(ret);
|
||||
};
|
||||
imports.wbg.__wbindgen_closure_wrapper1003 = function(arg0, arg1, arg2) {
|
||||
const ret = makeMutClosure(arg0, arg1, 577, __wbg_adapter_48);
|
||||
imports.wbg.__wbindgen_closure_wrapper1042 = function(arg0, arg1, arg2) {
|
||||
const ret = makeMutClosure(arg0, arg1, 574, __wbg_adapter_48);
|
||||
return addHeapObject(ret);
|
||||
};
|
||||
imports.wbg.__wbindgen_closure_wrapper3683 = function(arg0, arg1, arg2) {
|
||||
imports.wbg.__wbindgen_closure_wrapper3684 = function(arg0, arg1, arg2) {
|
||||
const ret = makeMutClosure(arg0, arg1, 1705, __wbg_adapter_51);
|
||||
return addHeapObject(ret);
|
||||
};
|
||||
imports.wbg.__wbindgen_closure_wrapper3782 = function(arg0, arg1, arg2) {
|
||||
imports.wbg.__wbindgen_closure_wrapper3783 = function(arg0, arg1, arg2) {
|
||||
const ret = makeMutClosure(arg0, arg1, 1747, __wbg_adapter_54);
|
||||
return addHeapObject(ret);
|
||||
};
|
||||
imports.wbg.__wbindgen_closure_wrapper3864 = function(arg0, arg1, arg2) {
|
||||
imports.wbg.__wbindgen_closure_wrapper3865 = function(arg0, arg1, arg2) {
|
||||
const ret = makeMutClosure(arg0, arg1, 1778, __wbg_adapter_57);
|
||||
return addHeapObject(ret);
|
||||
};
|
||||
|
|
Binary file not shown.
Binary file not shown.
Binary file not shown.
|
@ -4,11 +4,4 @@ async function main() {
|
|||
await init('/pkg/kanidmd_web_ui_login_flows_bg.wasm');
|
||||
run_app();
|
||||
}
|
||||
main()
|
||||
|
||||
// this is used in modals
|
||||
export function modal_hide_by_id(m) {
|
||||
var elem = document.getElementById(m);
|
||||
var modal = bootstrap.Modal.getInstance(elem);
|
||||
modal.hide();
|
||||
};
|
||||
main()
|
|
@ -22,7 +22,6 @@ gloo = { workspace = true }
|
|||
js-sys = { workspace = true }
|
||||
kanidm_proto = { workspace = true, features = ["wasm"] }
|
||||
serde = { workspace = true, features = ["derive"] }
|
||||
serde_json = { workspace = true }
|
||||
serde-wasm-bindgen = { workspace = true }
|
||||
time = { workspace = true }
|
||||
url = { workspace = true }
|
||||
|
|
|
@ -44,10 +44,10 @@ pub fn push_auth_session_id(r: String) {
|
|||
|
||||
/// Build and send a request to the backend, with some standard headers and pull back
|
||||
/// (kopid, status, json, headers)
|
||||
pub async fn do_request(
|
||||
pub async fn do_request<JV: AsRef<JsValue>>(
|
||||
uri: &str,
|
||||
method: RequestMethod,
|
||||
body: Option<JsValue>,
|
||||
body: Option<JV>,
|
||||
) -> Result<(Option<String>, u16, JsValue, Headers), FetchError> {
|
||||
let mut opts = RequestInit::new();
|
||||
opts.method(&method.to_string());
|
||||
|
@ -59,7 +59,7 @@ pub async fn do_request(
|
|||
if method == RequestMethod::GET {
|
||||
gloo::console::debug!("This seems odd, you've supplied a body with a GET request?")
|
||||
}
|
||||
opts.body(Some(&body));
|
||||
opts.body(Some(body.as_ref()));
|
||||
}
|
||||
|
||||
let request = Request::new_with_str_and_init(uri, &opts)?;
|
||||
|
@ -167,7 +167,8 @@ impl ToString for SessionStatus {
|
|||
|
||||
/// Validate that the current stored session token is valid
|
||||
pub async fn fetch_session_valid() -> Result<SessionStatus, FetchError> {
|
||||
let (kopid, status, value, _) = do_request(V1_AUTH_VALID, RequestMethod::GET, None).await?;
|
||||
let (kopid, status, value, _) =
|
||||
do_request(V1_AUTH_VALID, RequestMethod::GET, None::<JsValue>).await?;
|
||||
|
||||
if status == 200 {
|
||||
Ok(SessionStatus::TokenValid)
|
||||
|
|
|
@ -2,6 +2,7 @@
|
|||
//!
|
||||
|
||||
use gloo::console;
|
||||
use wasm_bindgen::JsValue;
|
||||
use yew::{html, BaseComponent, Context, Html};
|
||||
|
||||
use crate::constants::{CSS_NAV_LINK, ID_SIGNOUTMODAL};
|
||||
|
@ -19,7 +20,7 @@ pub fn signout_link() -> Html {
|
|||
|
||||
/// does the logout action, calling the api and clearing the local tokens
|
||||
pub async fn ui_logout() -> Result<(), (String, Option<String>)> {
|
||||
let (kopid, status, value, _) = do_request("/v1/logout", RequestMethod::GET, None)
|
||||
let (kopid, status, value, _) = do_request("/v1/logout", RequestMethod::GET, None::<JsValue>)
|
||||
.await
|
||||
.map_err(|e| {
|
||||
let emsg = format!("failed to logout -> {:?}", e);
|
||||
|
|
|
@ -24,7 +24,6 @@ kanidm_proto = { workspace = true, features = ["wasm"] }
|
|||
kanidmd_web_ui_shared = { workspace = true }
|
||||
qrcode = { workspace = true, features = ["svg"] }
|
||||
serde = { workspace = true, features = ["derive"] }
|
||||
serde_json = { workspace = true }
|
||||
serde-wasm-bindgen = { workspace = true }
|
||||
wasm-bindgen = { workspace = true }
|
||||
wasm-bindgen-futures = { workspace = true }
|
||||
|
|
|
@ -4,7 +4,7 @@ use kanidmd_web_ui_shared::do_request;
|
|||
use kanidmd_web_ui_shared::error::FetchError;
|
||||
use kanidmd_web_ui_shared::RequestMethod;
|
||||
use uuid::Uuid;
|
||||
use wasm_bindgen::{JsCast, JsValue, UnwrapThrowExt};
|
||||
use wasm_bindgen::{JsCast, UnwrapThrowExt};
|
||||
use web_sys::{FormData, HtmlFormElement};
|
||||
use yew::prelude::*;
|
||||
|
||||
|
@ -247,14 +247,15 @@ impl Component for ChangeUnixPassword {
|
|||
|
||||
impl ChangeUnixPassword {
|
||||
async fn update_unix_password(id: Uuid, new_password: String) -> Result<Msg, FetchError> {
|
||||
let changereq_jsvalue = serde_json::to_string(&SingleStringRequest {
|
||||
let req_jsvalue = serde_wasm_bindgen::to_value(&SingleStringRequest {
|
||||
value: new_password,
|
||||
})
|
||||
.map(|s| JsValue::from(&s))
|
||||
.expect_throw("Failed to change request");
|
||||
.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);
|
||||
let (kopid, status, value, _) =
|
||||
do_request(&uri, RequestMethod::PUT, Some(changereq_jsvalue)).await?;
|
||||
do_request(&uri, RequestMethod::PUT, Some(req_jsvalue)).await?;
|
||||
|
||||
if status == 200 {
|
||||
Ok(Msg::Success)
|
||||
|
|
|
@ -9,6 +9,7 @@ use yew::prelude::*;
|
|||
|
||||
use qrcode::render::svg;
|
||||
use qrcode::QrCode;
|
||||
use wasm_bindgen::JsValue;
|
||||
use wasm_bindgen::UnwrapThrowExt;
|
||||
use web_sys::Node;
|
||||
|
||||
|
@ -237,7 +238,8 @@ impl CreateResetCode {
|
|||
async fn credential_get_update_intent_token(id: String) -> Result<Msg, FetchError> {
|
||||
let uri = format!("/v1/person/{}/_credential/_update_intent?ttl=0", id);
|
||||
|
||||
let (kopid, status, value, _) = do_request(&uri, RequestMethod::GET, None).await?;
|
||||
let (kopid, status, value, _) =
|
||||
do_request(&uri, RequestMethod::GET, None::<JsValue>).await?;
|
||||
|
||||
if status == 200 {
|
||||
let token: CUIntentToken =
|
||||
|
|
|
@ -7,6 +7,7 @@ use kanidmd_web_ui_shared::models::{
|
|||
use kanidmd_web_ui_shared::utils::do_alert_error;
|
||||
use kanidmd_web_ui_shared::{do_request, error::FetchError, RequestMethod};
|
||||
use time::format_description::well_known::Rfc3339;
|
||||
use wasm_bindgen::JsValue;
|
||||
use wasm_bindgen::UnwrapThrowExt;
|
||||
use yew::prelude::*;
|
||||
use yew_router::prelude::*;
|
||||
|
@ -254,7 +255,8 @@ impl ProfileApp {
|
|||
|
||||
async fn request_credential_update(id: String) -> Result<ProfileMessage, FetchError> {
|
||||
let uri = format!("/v1/person/{}/_credential/_update", id);
|
||||
let (kopid, status, value, _headers) = do_request(&uri, RequestMethod::GET, None).await?;
|
||||
let (kopid, status, value, _headers) =
|
||||
do_request(&uri, RequestMethod::GET, None::<JsValue>).await?;
|
||||
|
||||
if status == 200 {
|
||||
let (token, status): (CUSessionToken, CUStatus) =
|
||||
|
|
|
@ -3,7 +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 wasm_bindgen::JsValue;
|
||||
use wasm_bindgen::UnwrapThrowExt;
|
||||
use wasm_timer::SystemTime;
|
||||
use yew::prelude::*;
|
||||
|
||||
|
@ -55,11 +55,12 @@ impl TotpDisplayApp {
|
|||
async fn renew_totp(other_id: String) -> Msg {
|
||||
let uri = format!("/v1/person/{}/_identify_user", other_id);
|
||||
let request = IdentifyUserRequest::DisplayCode;
|
||||
let Ok(state_as_jsvalue) = serde_json::to_string(&request).map(|s| JsValue::from(&s))
|
||||
else {
|
||||
return Msg::Cancel;
|
||||
};
|
||||
let response = match do_request(&uri, RequestMethod::POST, Some(state_as_jsvalue)).await {
|
||||
|
||||
let req_jsvalue =
|
||||
serde_wasm_bindgen::to_value(&request).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 {
|
||||
Ok((_, _, response, _)) => response,
|
||||
Err(_) => return Msg::Cancel,
|
||||
};
|
||||
|
|
|
@ -3,7 +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 wasm_bindgen::{JsValue, UnwrapThrowExt};
|
||||
use wasm_bindgen::UnwrapThrowExt;
|
||||
use yew::prelude::*;
|
||||
|
||||
use super::reset::{EventBusMsg, ModalProps};
|
||||
|
@ -47,9 +47,9 @@ impl DeleteApp {
|
|||
req: CURequest,
|
||||
cb: Callback<EventBusMsg>,
|
||||
) -> Result<Msg, FetchError> {
|
||||
let req_jsvalue = serde_json::to_string(&(req, token))
|
||||
.map(|s| JsValue::from(&s))
|
||||
.expect_throw("Failed to serialise pw curequest");
|
||||
let req_jsvalue =
|
||||
serde_wasm_bindgen::to_value(&(req, token)).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(
|
||||
"/v1/credential/_update",
|
||||
|
|
|
@ -3,7 +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 wasm_bindgen::{JsValue, UnwrapThrowExt};
|
||||
use wasm_bindgen::UnwrapThrowExt;
|
||||
use wasm_bindgen_futures::JsFuture;
|
||||
use yew::prelude::*;
|
||||
|
||||
|
@ -57,9 +57,9 @@ impl PasskeyModalApp {
|
|||
req: CURequest,
|
||||
cb: Callback<EventBusMsg>,
|
||||
) -> Result<Msg, FetchError> {
|
||||
let req_jsvalue = serde_json::to_string(&(req, token))
|
||||
.map(|s| JsValue::from(&s))
|
||||
.expect_throw("Failed to serialise pw curequest");
|
||||
let req_jsvalue =
|
||||
serde_wasm_bindgen::to_value(&(req, token)).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(
|
||||
"/v1/credential/_update",
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
use gloo::console;
|
||||
use kanidm_proto::v1::{CURegState, CURequest, CUSessionToken, CUStatus};
|
||||
use uuid::Uuid;
|
||||
use wasm_bindgen::{JsValue, UnwrapThrowExt};
|
||||
use wasm_bindgen::UnwrapThrowExt;
|
||||
use yew::prelude::*;
|
||||
|
||||
use super::reset::{EventBusMsg, PasskeyRemoveModalProps};
|
||||
|
@ -63,9 +63,9 @@ impl PasskeyRemoveModalApp {
|
|||
req: CURequest,
|
||||
cb: Callback<EventBusMsg>,
|
||||
) -> Result<Msg, FetchError> {
|
||||
let req_jsvalue = serde_json::to_string(&(req, token))
|
||||
.map(|s| JsValue::from(&s))
|
||||
.expect_throw("Failed to serialise pw curequest");
|
||||
let req_jsvalue =
|
||||
serde_wasm_bindgen::to_value(&(req, token)).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!
|
||||
let (kopid, status, value, _) = do_request(
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
use gloo::console;
|
||||
use kanidm_proto::v1::{CURequest, CUSessionToken, CUStatus, OperationError, PasswordFeedback};
|
||||
use wasm_bindgen::{JsValue, UnwrapThrowExt};
|
||||
use wasm_bindgen::UnwrapThrowExt;
|
||||
|
||||
use yew::prelude::*;
|
||||
|
||||
|
@ -55,9 +55,9 @@ impl PwModalApp {
|
|||
}
|
||||
|
||||
async fn submit_password_update(token: CUSessionToken, pw: String) -> Result<Msg, FetchError> {
|
||||
let req_jsvalue = serde_json::to_string(&(CURequest::Password(pw), token))
|
||||
.map(|s| JsValue::from(&s))
|
||||
.expect_throw("Failed to serialise pw curequest");
|
||||
let req_jsvalue = serde_wasm_bindgen::to_value(&(CURequest::Password(pw), token))
|
||||
.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(
|
||||
"/v1/credential/_update",
|
||||
|
|
|
@ -9,7 +9,7 @@ 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 uuid::Uuid;
|
||||
use wasm_bindgen::{JsValue, UnwrapThrowExt};
|
||||
use wasm_bindgen::UnwrapThrowExt;
|
||||
use yew::prelude::*;
|
||||
use yew_router::prelude::*;
|
||||
|
||||
|
@ -700,9 +700,9 @@ impl CredentialResetApp {
|
|||
}
|
||||
|
||||
async fn exchange_intent_token(token: String) -> Result<Msg, FetchError> {
|
||||
let req_jsvalue = serde_json::to_string(&CUIntentToken { token })
|
||||
.map(|s| JsValue::from(&s))
|
||||
.expect_throw("Failed to serialise intent request");
|
||||
let req_jsvalue = serde_wasm_bindgen::to_value(&CUIntentToken { token })
|
||||
.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(
|
||||
"/v1/credential/_exchange_intent",
|
||||
|
@ -722,9 +722,9 @@ impl CredentialResetApp {
|
|||
}
|
||||
|
||||
async fn end_session(token: CUSessionToken, url: &str) -> Result<Msg, FetchError> {
|
||||
let req_jsvalue = serde_json::to_string(&token)
|
||||
.map(|s| JsValue::from(&s))
|
||||
.expect_throw("Failed to serialise session token");
|
||||
let req_jsvalue =
|
||||
serde_wasm_bindgen::to_value(&token).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(url, RequestMethod::POST, Some(req_jsvalue)).await?;
|
||||
|
|
|
@ -3,7 +3,7 @@ use gloo::console;
|
|||
use kanidm_proto::v1::{CURegState, CURequest, CUSessionToken, CUStatus, TotpSecret};
|
||||
use qrcode::render::svg;
|
||||
use qrcode::QrCode;
|
||||
use wasm_bindgen::{JsValue, UnwrapThrowExt};
|
||||
use wasm_bindgen::UnwrapThrowExt;
|
||||
use web_sys::Node;
|
||||
use yew::prelude::*;
|
||||
|
||||
|
@ -68,9 +68,9 @@ impl TotpModalApp {
|
|||
req: CURequest,
|
||||
cb: Callback<EventBusMsg>,
|
||||
) -> Result<Msg, FetchError> {
|
||||
let req_jsvalue = serde_json::to_string(&(req, token))
|
||||
.map(|s| JsValue::from(&s))
|
||||
.expect_throw("Failed to serialise pw curequest");
|
||||
let req_jsvalue =
|
||||
serde_wasm_bindgen::to_value(&(req, token)).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(
|
||||
"/v1/credential/_update",
|
||||
|
|
|
@ -4,7 +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 wasm_bindgen::{JsValue, UnwrapThrowExt};
|
||||
use wasm_bindgen::UnwrapThrowExt;
|
||||
use yew::prelude::*;
|
||||
|
||||
pub enum Msg {
|
||||
|
@ -101,9 +101,9 @@ impl TotpRemoveComp {
|
|||
req: CURequest,
|
||||
cb: Callback<EventBusMsg>,
|
||||
) -> Result<Msg, FetchError> {
|
||||
let req_jsvalue = serde_json::to_string(&(req, token))
|
||||
.map(|s| JsValue::from(&s))
|
||||
.expect_throw("Failed to serialise pw curequest");
|
||||
let req_jsvalue =
|
||||
serde_wasm_bindgen::to_value(&(req, token)).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(
|
||||
"/v1/credential/_update",
|
||||
|
|
|
@ -182,7 +182,7 @@ impl AppsApp {
|
|||
|
||||
async fn fetch_user_apps() -> Result<Msg, FetchError> {
|
||||
let (kopid, status, value, _) =
|
||||
do_request("/v1/self/_applinks", RequestMethod::GET, None).await?;
|
||||
do_request("/v1/self/_applinks", RequestMethod::GET, None::<JsValue>).await?;
|
||||
|
||||
if status == 200 {
|
||||
let apps: Vec<AppLink> = serde_wasm_bindgen::from_value(value)
|
||||
|
|
|
@ -3,7 +3,7 @@ use gloo::console;
|
|||
use kanidm_proto::internal::{IdentifyUserRequest, IdentifyUserResponse};
|
||||
use kanidmd_web_ui_shared::logo_img;
|
||||
use regex::Regex;
|
||||
use wasm_bindgen::JsValue;
|
||||
use wasm_bindgen::{JsValue, UnwrapThrowExt};
|
||||
use yew::prelude::*;
|
||||
|
||||
use crate::components::totpdisplay::TotpDisplayApp;
|
||||
|
@ -490,13 +490,14 @@ impl IdentityVerificationApp {
|
|||
other_id: &str,
|
||||
) -> Result<IdentifyUserResponse, String> {
|
||||
let uri = format!("/v1/person/{}/_identify_user", other_id);
|
||||
let request_as_jsvalue = serde_json::to_string(&request)
|
||||
.map(|s| JsValue::from(&s))
|
||||
.map_err(|_| "Invalid request!".to_string())?;
|
||||
let (_, status, response, _) =
|
||||
do_request(&uri, RequestMethod::POST, Some(request_as_jsvalue))
|
||||
.await
|
||||
.map_err(|e| e.to_string())?;
|
||||
|
||||
let req_jsvalue =
|
||||
serde_wasm_bindgen::to_value(&request).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))
|
||||
.await
|
||||
.map_err(|e| e.to_string())?;
|
||||
if status != 200 {
|
||||
Err(format!(
|
||||
"The server responded with status code {status}, here is what went wrong: {}",
|
||||
|
@ -511,7 +512,10 @@ impl IdentityVerificationApp {
|
|||
async fn update_self_id(uuid: String) -> IdentifyUserTransition {
|
||||
let uri = format!("/v1/person/{}/_attr/spn", uuid);
|
||||
let outcome: Option<Vec<String>> =
|
||||
match do_request(&uri, RequestMethod::GET, None).await.ok() {
|
||||
match do_request(&uri, RequestMethod::GET, None::<JsValue>)
|
||||
.await
|
||||
.ok()
|
||||
{
|
||||
None => None,
|
||||
Some((_, _, res, ..)) => serde_wasm_bindgen::from_value(res).ok(),
|
||||
};
|
||||
|
|
|
@ -10,7 +10,7 @@ use kanidmd_web_ui_shared::constants::{
|
|||
use kanidmd_web_ui_shared::models::push_return_location;
|
||||
use kanidmd_web_ui_shared::ui::{signout_link, signout_modal, ui_logout};
|
||||
use serde::{Deserialize, Serialize};
|
||||
use wasm_bindgen::UnwrapThrowExt;
|
||||
use wasm_bindgen::{JsValue, UnwrapThrowExt};
|
||||
use yew::prelude::*;
|
||||
use yew_router::prelude::*;
|
||||
|
||||
|
@ -299,7 +299,8 @@ impl ViewsApp {
|
|||
}
|
||||
|
||||
async fn check_session_valid() -> Result<ViewsMsg, FetchError> {
|
||||
let (kopid, status, value, _) = do_request(V1_AUTH_VALID, RequestMethod::GET, None).await?;
|
||||
let (kopid, status, value, _) =
|
||||
do_request(V1_AUTH_VALID, RequestMethod::GET, None::<JsValue>).await?;
|
||||
|
||||
if status == 200 {
|
||||
Ok(ViewsMsg::Verified)
|
||||
|
@ -313,7 +314,7 @@ impl ViewsApp {
|
|||
|
||||
async fn fetch_user_data() -> Result<ViewsMsg, FetchError> {
|
||||
let (kopid, status, value, _) =
|
||||
do_request("/v1/self/_uat", RequestMethod::GET, None).await?;
|
||||
do_request("/v1/self/_uat", RequestMethod::GET, None::<JsValue>).await?;
|
||||
|
||||
if status == 200 {
|
||||
let uat: UserAuthToken = serde_wasm_bindgen::from_value(value)
|
||||
|
|
Loading…
Reference in a new issue