pub struct UserStore { /* private fields */ }Expand description
User store (in-memory for now, should be persisted in production)
Implementations§
Source§impl UserStore
impl UserStore
Sourcepub fn add_user(&self, user: User) -> AuthResult<()>
pub fn add_user(&self, user: User) -> AuthResult<()>
Add a user to the store
Sourcepub fn get_user(&self, username: &str) -> AuthResult<User>
pub fn get_user(&self, username: &str) -> AuthResult<User>
Get a user by username
Sourcepub fn get_by_id(&self, user_id: &Uuid) -> AuthResult<User>
pub fn get_by_id(&self, user_id: &Uuid) -> AuthResult<User>
Get a user by ID
Sourcepub fn authenticate(&self, username: &str, password: &str) -> AuthResult<User>
pub fn authenticate(&self, username: &str, password: &str) -> AuthResult<User>
Authenticate a user with username and password
Sourcepub fn update_permissions(
&self,
username: &str,
permissions: HashSet<Permission>,
) -> AuthResult<()>
pub fn update_permissions( &self, username: &str, permissions: HashSet<Permission>, ) -> AuthResult<()>
Update user permissions
Sourcepub fn deactivate_user(&self, username: &str) -> AuthResult<()>
pub fn deactivate_user(&self, username: &str) -> AuthResult<()>
Deactivate a user
Trait Implementations§
Auto Trait Implementations§
impl Freeze for UserStore
impl !RefUnwindSafe for UserStore
impl Send for UserStore
impl Sync for UserStore
impl Unpin for UserStore
impl UnwindSafe for UserStore
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
Mutably borrows from an owned value. Read more
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
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>
Converts
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>
Converts
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 moreSource§impl<T> Pointable for T
impl<T> Pointable for T
Source§impl<SS, SP> SupersetOf<SS> for SPwhere
SS: SubsetOf<SP>,
impl<SS, SP> SupersetOf<SS> for SPwhere
SS: SubsetOf<SP>,
Source§fn to_subset(&self) -> Option<SS>
fn to_subset(&self) -> Option<SS>
The inverse inclusion map: attempts to construct
self from the equivalent element of its
superset. Read moreSource§fn is_in_subset(&self) -> bool
fn is_in_subset(&self) -> bool
Checks if
self is actually part of its subset T (and can be converted to it).Source§fn to_subset_unchecked(&self) -> SS
fn to_subset_unchecked(&self) -> SS
Use with care! Same as
self.to_subset but without any property checks. Always succeeds.Source§fn from_subset(element: &SS) -> SP
fn from_subset(element: &SS) -> SP
The inclusion map: converts
self to the equivalent element of its superset.