pub struct OrganizationConfig {Show 24 fields
pub organization_fields: SessionFields,
pub allow_user_to_create_organization: bool,
pub organization_limit: Option<f64>,
pub creation_policy: Option<Arc<dyn OrganizationCreationPolicy>>,
pub creation_hooks: Option<Arc<dyn OrganizationCreationHooks>>,
pub deletion_hooks: Option<Arc<dyn OrganizationDeletionHooks>>,
pub update_hooks: Option<Arc<dyn OrganizationUpdateHooks>>,
pub member_role_hooks: Option<Arc<dyn OrganizationMemberRoleHooks>>,
pub member_removal_hooks: Option<Arc<dyn OrganizationMemberRemovalHooks>>,
pub member_addition_hooks: Option<Arc<dyn OrganizationMemberAdditionHooks>>,
pub invitation_acceptance_hooks: Option<Arc<dyn OrganizationInvitationAcceptanceHooks>>,
pub membership_limit: Option<MembershipLimit>,
pub creator_role: String,
pub invitation_expires_in: Option<f64>,
pub invitation_limit: Option<InvitationLimit>,
pub cancel_pending_invitations_on_reinvite: bool,
pub invitation_hooks: Option<Arc<dyn OrganizationInvitationHooks>>,
pub send_invitation_email: Option<Arc<dyn OrganizationInvitationEmailSender>>,
pub disable_organization_deletion: bool,
pub roles: Option<HashMap<String, RolePermissions>>,
pub require_email_verification_on_invitation: Option<bool>,
pub teams: TeamsConfig,
pub dynamic_access_control: DynamicAccessControlConfig,
pub access_control: Option<OrganizationPermissions>,
}Expand description
Configuration for the Organization plugin
Fields§
§organization_fields: SessionFieldsInput policies for additional organization model fields.
allow_user_to_create_organization: boolAllow users to create organizations (default: true)
organization_limit: Option<f64>Maximum organization memberships per user (None = unlimited).
Uses JavaScript Number comparisons: fractional, negative, NaN and infinite
limits retain their upstream meanings.
creation_policy: Option<Arc<dyn OrganizationCreationPolicy>>Optional asynchronous policy overrides, evaluated against the actual user.
creation_hooks: Option<Arc<dyn OrganizationCreationHooks>>Awaited creation callbacks with immutable authority and persisted snapshots.
deletion_hooks: Option<Arc<dyn OrganizationDeletionHooks>>Awaited deletion callbacks over raw rows and original authority snapshots.
update_hooks: Option<Arc<dyn OrganizationUpdateHooks>>Awaited update callbacks over validated input and original authority.
member_role_hooks: Option<Arc<dyn OrganizationMemberRoleHooks>>Awaited member role callbacks with immutable target snapshots.
member_removal_hooks: Option<Arc<dyn OrganizationMemberRemovalHooks>>Awaited member removal callbacks over immutable original target rows.
member_addition_hooks: Option<Arc<dyn OrganizationMemberAdditionHooks>>Awaited server-only addition callbacks over the target and raw organization.
invitation_acceptance_hooks: Option<Arc<dyn OrganizationInvitationAcceptanceHooks>>Awaited acceptance callbacks around conditional claim and membership transaction.
membership_limit: Option<MembershipLimit>Admission policy. Absent or falsy fixed numbers use 100; resolver results retain JavaScript Number comparison semantics without a second fallback. Read pages use only a fixed number, and never call an admission resolver.
creator_role: StringRole assigned to organization creator (default: “owner”)
invitation_expires_in: Option<f64>Invitation expiration in seconds (default: 48 hours)
invitation_limit: Option<InvitationLimit>Pending admission limit: None uses 100; every numeric value is compared raw.
cancel_pending_invitations_on_reinvite: boolCancel the first prior pending invitation before later admission checks.
invitation_hooks: Option<Arc<dyn OrganizationInvitationHooks>>§send_invitation_email: Option<Arc<dyn OrganizationInvitationEmailSender>>§disable_organization_deletion: boolDisable organization deletion (default: false)
roles: Option<HashMap<String, RolePermissions>>Static role definitions. None uses the upstream default roles; an explicitly empty map grants no static permissions.
require_email_verification_on_invitation: Option<bool>Require verified email to view, accept, or reject an invitation by ID. None requires it when the configured database uses numeric IDs.
teams: TeamsConfig§dynamic_access_control: DynamicAccessControlConfig§access_control: Option<OrganizationPermissions>Implementations§
Source§impl OrganizationConfig
impl OrganizationConfig
Sourcepub fn effective_creator_role(&self) -> &str
pub fn effective_creator_role(&self) -> &str
The pinned creator-role option uses JavaScript’s nonempty-string fallback.
Trait Implementations§
Source§impl Clone for OrganizationConfig
impl Clone for OrganizationConfig
Source§impl Debug for OrganizationConfig
impl Debug for OrganizationConfig
Auto Trait Implementations§
impl !RefUnwindSafe for OrganizationConfig
impl !UnwindSafe for OrganizationConfig
impl Freeze for OrganizationConfig
impl Send for OrganizationConfig
impl Sync for OrganizationConfig
impl Unpin for OrganizationConfig
impl UnsafeUnpin for OrganizationConfig
Blanket Implementations§
Source§impl<'a, T, E> AsTaggedExplicit<'a, E> for Twhere
T: 'a,
impl<'a, T, E> AsTaggedExplicit<'a, E> for Twhere
T: 'a,
Source§impl<'a, T, E> AsTaggedImplicit<'a, E> for Twhere
T: 'a,
impl<'a, T, E> AsTaggedImplicit<'a, E> for Twhere
T: 'a,
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> ErasedDestructor for Twhere
T: 'static,
impl<A, B, T> HttpServerConnExec<A, B> for Twhere
B: Body,
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
Source§fn in_current_span(self) -> Instrumented<Self> ⓘ
fn in_current_span(self) -> Instrumented<Self> ⓘ
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more