Skip to main content

OrgBackend

Trait OrgBackend 

Source
pub trait OrgBackend: Send + Sync {
Show 14 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>; fn mark_invite_accepted(&self, id: &str, now: u64) -> bool;
}

Required Methods§

Source

fn put_org(&self, org: &Org)

Source

fn get_org(&self, id: &str) -> Option<Org>

Source

fn delete_org(&self, id: &str) -> bool

Source

fn list_orgs_for_user(&self, user_id: &str) -> Vec<(Org, OrgRole)>

Source

fn put_membership(&self, m: &Membership)

Source

fn get_membership(&self, org_id: &str, user_id: &str) -> Option<Membership>

Source

fn delete_membership(&self, org_id: &str, user_id: &str) -> bool

Source

fn list_members(&self, org_id: &str) -> Vec<Membership>

Source

fn put_invite(&self, inv: &Invite)

Source

fn get_invite(&self, id: &str) -> Option<Invite>

Source

fn list_invites(&self, org_id: &str) -> Vec<Invite>

Source

fn delete_invite(&self, id: &str) -> bool

Source

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.

Source

fn mark_invite_accepted(&self, id: &str, now: u64) -> bool

CAS — atomically stamp accepted_at ONLY when it’s currently NULL. Returns true if we won the race, false if another concurrent verify got there first. Required so two parallel accept calls with the same token can’t BOTH create a membership.

Implementors§