diff --git a/src/api/core/organizations.rs b/src/api/core/organizations.rs index c069692d..4a5066ab 100644 --- a/src/api/core/organizations.rs +++ b/src/api/core/organizations.rs @@ -67,6 +67,7 @@ pub fn routes() -> Vec { get_master_password_policy, get_policy, put_policy, + put_policy_vnext, get_plans, post_org_keys, get_organization_keys, @@ -2092,6 +2093,28 @@ async fn put_policy( Ok(Json(policy.to_json())) } +#[derive(Deserialize)] +struct PolicyDataVnext { + policy: PolicyData, + // Ignore metadata for now as we do not yet support this + // "metadata": { + // "defaultUserCollectionName": "2.xx|xx==|xx=" + // } +} + +#[put("/organizations//policies//vnext", data = "")] +async fn put_policy_vnext( + org_id: OrganizationId, + pol_type: i32, + data: Json, + headers: AdminHeaders, + conn: DbConn, +) -> JsonResult { + let data: PolicyDataVnext = data.into_inner(); + let policy: PolicyData = data.policy; + put_policy(org_id, pol_type, Json(policy), headers, conn).await +} + #[get("/plans")] fn get_plans() -> Json { // Respond with a minimal json just enough to allow the creation of an new organization.