View Source Plausible.Site.Memberships.CreateInvitation (Plausible v0.0.1)
Service for inviting new or existing users to a sites, including ownershhip transfers.
Summary
Functions
Invites a new team member to the given site. Returns a %Plausible.Auth.Invitation{} struct and sends the invitee an email to accept this invitation.
Types
@type invite_error() :: Ecto.Changeset.t() | :already_a_member | :transfer_to_self | {:over_limit, non_neg_integer()} | :forbidden | :upgrade_required
Functions
Link to this function
bulk_create_invitation(sites, inviter, invitee_email, role, opts \\ [])
View Source@spec bulk_create_invitation( [Plausible.Site.t()], Plausible.Auth.User.t(), String.t(), atom(), Keyword.t() ) :: {:ok, [Plausible.Auth.Invitation.t()]} | {:error, invite_error()}
@spec bulk_transfer_ownership_direct([Plausible.Site.t()], Plausible.Auth.User.t()) :: {:ok, [Plausible.Site.Membership.t()]} | {:error, invite_error()}
@spec create_invitation( Plausible.Site.t(), Plausible.Auth.User.t(), String.t(), atom() ) :: {:ok, Plausible.Auth.Invitation.t()} | {:error, invite_error()}
Invites a new team member to the given site. Returns a %Plausible.Auth.Invitation{} struct and sends the invitee an email to accept this invitation.
The inviter must have enough permissions to invite the new team member,
otherwise this function returns {:error, :forbidden}
.
If the new team member role is :owner
, this function handles the invitation
as an ownership transfer and requires the inviter to be the owner of the site.