pub trait OrgBackend: Send + Sync {
Show 13 methods
// Required methods
fn put_org(&self, org: &Org);
fn get_org(&self, id: &str) -> Option<Org>;
fn delete_org(&self, id: &str) -> bool;
fn list_orgs_for_user(&self, user_id: &str) -> Vec<(Org, OrgRole)>;
fn put_membership(&self, m: &Membership);
fn get_membership(&self, org_id: &str, user_id: &str) -> Option<Membership>;
fn delete_membership(&self, org_id: &str, user_id: &str) -> bool;
fn list_members(&self, org_id: &str) -> Vec<Membership>;
fn put_invite(&self, inv: &Invite);
fn get_invite(&self, id: &str) -> Option<Invite>;
fn list_invites(&self, org_id: &str) -> Vec<Invite>;
fn delete_invite(&self, id: &str) -> bool;
fn invites_by_prefix(&self, prefix: &str) -> Vec<Invite>;
}Required Methods§
fn put_org(&self, org: &Org)
fn get_org(&self, id: &str) -> Option<Org>
fn delete_org(&self, id: &str) -> bool
fn list_orgs_for_user(&self, user_id: &str) -> Vec<(Org, OrgRole)>
fn put_membership(&self, m: &Membership)
fn get_membership(&self, org_id: &str, user_id: &str) -> Option<Membership>
fn delete_membership(&self, org_id: &str, user_id: &str) -> bool
fn list_members(&self, org_id: &str) -> Vec<Membership>
fn put_invite(&self, inv: &Invite)
fn get_invite(&self, id: &str) -> Option<Invite>
fn list_invites(&self, org_id: &str) -> Vec<Invite>
fn delete_invite(&self, id: &str) -> bool
Sourcefn invites_by_prefix(&self, prefix: &str) -> Vec<Invite>
fn invites_by_prefix(&self, prefix: &str) -> Vec<Invite>
All non-accepted invites whose plaintext starts with prefix.
SQL backends use a WHERE token_prefix = $1 AND accepted_at IS NULL
SELECT; the in-memory backend scans all invites. Argon2 verify
then runs against the candidate set in accept_invite.