Skip to main content Module provision_user Copy item path Source use std::collections::BTreeSet ; π use axum::extract::State; π use futures::StreamExt; π use futures::TryStreamExt; π use ruma::MilliSecondsSinceUnixEpoch; π use ruma::UserId; π use ruma::profile::ProfileFieldName; π use ruma::thirdparty::Medium; π use synapse_admin_api::mas::provision_user::Request; π use synapse_admin_api::mas::provision_user::Response; π use tuwunel_core::Result ; π use tuwunel_core::arrayvec::ArrayVec ; π use tuwunel_core::utils::IterStream ; π use tuwunel_core::utils::ReadyExt ; π use tuwunel_core::utils::option::OptionExt ; π use tuwunel_core::utils::stream::TryBroadbandExt ; π use tuwunel_core::utils::stream::automatic_width ; π use tuwunel_core::utils::string::truncate_chars ; π use tuwunel_core::warn ; π use tuwunel_service::profile::MAX_DISPLAYNAME_LENGTH ; π use tuwunel_service::profile::ProfileValue ; π use tuwunel_service::profile::string_field ; π use tuwunel_service::threepid::canonicalize_email ; π use tuwunel_service::users::PASSWORD_SENTINEL ; π use super::Mas ; π use super::local_user ; π use crate::Ruma; π canonicalize_emails π create_account π fitted_displayname π provision_user_route π POST /_synapse/mas/provision_userrequested_profile π The display name and avatar URL the request sets or unsets. sync_emails π Reconcile the userβs bound email addresses to exactly desired. A desired
address bound to another user is reassigned, its prior binding removed first
so no dangling forward row survives. ProfileWrites π