propelauth 0.23.3

A Rust crate for managing authentication and authorization with support for multi-tenant / B2B products, powered by PropelAuth
Documentation
#[derive(Clone, Debug, PartialEq, Default, Serialize, Deserialize)]
pub struct InviteUserToOrgRequest {
    #[serde(rename = "org_id")]
    pub org_id: String,
    #[serde(rename = "email")]
    pub email: String,
    #[serde(rename = "role")]
    pub role: String,
    #[serde(rename = "additional_roles")]
    pub additional_roles: Vec<String>,
}

impl InviteUserToOrgRequest {
    pub fn new(org_id: String, email: String, role: String) -> InviteUserToOrgRequest {
        InviteUserToOrgRequest {
            org_id,
            email,
            role,
            additional_roles: vec![],
        }
    }

    pub fn with_multiple_roles(
        org_id: String,
        email: String,
        mut roles: Vec<String>,
    ) -> Option<InviteUserToOrgRequest> {
        let role = roles.pop()?;

        Some(InviteUserToOrgRequest {
            org_id,
            email,
            role,
            additional_roles: roles,
        })
    }
}