client-api: make ThirdpartyIdCredentials an owned type
This commit is contained in:
parent
27a3e70465
commit
6353e06bd5
@ -3,6 +3,9 @@
|
|||||||
Breaking changes:
|
Breaking changes:
|
||||||
|
|
||||||
* Use an enum for user-interactive auth stage type (used to be `&str` / `String`)
|
* Use an enum for user-interactive auth stage type (used to be `&str` / `String`)
|
||||||
|
* Make `r0::uiaa::ThirdpartyIdCredentials` an owned type and remove its `Incoming` equivalent
|
||||||
|
* Previously, we had two fields of type `&'a [ThirdpartyIdCredentials<'a>]` and this kind of
|
||||||
|
nested borrowing can be very annoying
|
||||||
|
|
||||||
Improvements:
|
Improvements:
|
||||||
|
|
||||||
|
@ -333,7 +333,7 @@ impl<'a> OAuth2<'a> {
|
|||||||
pub struct EmailIdentity<'a> {
|
pub struct EmailIdentity<'a> {
|
||||||
/// Thirdparty identifier credentials.
|
/// Thirdparty identifier credentials.
|
||||||
#[serde(rename = "threepidCreds")]
|
#[serde(rename = "threepidCreds")]
|
||||||
pub thirdparty_id_creds: &'a [ThirdpartyIdCredentials<'a>],
|
pub thirdparty_id_creds: &'a [ThirdpartyIdCredentials],
|
||||||
|
|
||||||
/// The value of the session key given by the homeserver, if any.
|
/// The value of the session key given by the homeserver, if any.
|
||||||
pub session: Option<&'a str>,
|
pub session: Option<&'a str>,
|
||||||
@ -350,7 +350,7 @@ pub struct EmailIdentity<'a> {
|
|||||||
pub struct Msisdn<'a> {
|
pub struct Msisdn<'a> {
|
||||||
/// Thirdparty identifier credentials.
|
/// Thirdparty identifier credentials.
|
||||||
#[serde(rename = "threepidCreds")]
|
#[serde(rename = "threepidCreds")]
|
||||||
pub thirdparty_id_creds: &'a [ThirdpartyIdCredentials<'a>],
|
pub thirdparty_id_creds: &'a [ThirdpartyIdCredentials],
|
||||||
|
|
||||||
/// The value of the session key given by the homeserver, if any.
|
/// The value of the session key given by the homeserver, if any.
|
||||||
pub session: Option<&'a str>,
|
pub session: Option<&'a str>,
|
||||||
@ -478,30 +478,30 @@ pub enum UserIdentifier<'a> {
|
|||||||
}
|
}
|
||||||
|
|
||||||
/// Credentials for thirdparty authentification (e.g. email / phone number).
|
/// Credentials for thirdparty authentification (e.g. email / phone number).
|
||||||
#[derive(Clone, Debug, Outgoing, Serialize)]
|
#[derive(Clone, Debug, Deserialize, Serialize)]
|
||||||
#[cfg_attr(not(feature = "unstable-exhaustive-types"), non_exhaustive)]
|
#[cfg_attr(not(feature = "unstable-exhaustive-types"), non_exhaustive)]
|
||||||
pub struct ThirdpartyIdCredentials<'a> {
|
pub struct ThirdpartyIdCredentials {
|
||||||
/// Identity server session ID.
|
/// Identity server session ID.
|
||||||
pub sid: &'a SessionId,
|
pub sid: Box<SessionId>,
|
||||||
|
|
||||||
/// Identity server client secret.
|
/// Identity server client secret.
|
||||||
pub client_secret: &'a ClientSecret,
|
pub client_secret: Box<ClientSecret>,
|
||||||
|
|
||||||
/// Identity server URL.
|
/// Identity server URL.
|
||||||
pub id_server: &'a str,
|
pub id_server: String,
|
||||||
|
|
||||||
/// Identity server access token.
|
/// Identity server access token.
|
||||||
pub id_access_token: &'a str,
|
pub id_access_token: String,
|
||||||
}
|
}
|
||||||
|
|
||||||
impl<'a> ThirdpartyIdCredentials<'a> {
|
impl ThirdpartyIdCredentials {
|
||||||
/// Creates a new `ThirdpartyIdCredentials` with the given session ID, client secret, identity
|
/// Creates a new `ThirdpartyIdCredentials` with the given session ID, client secret, identity
|
||||||
/// server address and access token.
|
/// server address and access token.
|
||||||
pub fn new(
|
pub fn new(
|
||||||
sid: &'a SessionId,
|
sid: Box<SessionId>,
|
||||||
client_secret: &'a ClientSecret,
|
client_secret: Box<ClientSecret>,
|
||||||
id_server: &'a str,
|
id_server: String,
|
||||||
id_access_token: &'a str,
|
id_access_token: String,
|
||||||
) -> Self {
|
) -> Self {
|
||||||
Self { sid, client_secret, id_server, id_access_token }
|
Self { sid, client_secret, id_server, id_access_token }
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user