pub struct UserService { /* private fields */ }Implementations§
Source§impl UserService
impl UserService
pub fn new(db: &DbPool) -> Result<Self>
pub async fn find_by_id(&self, id: &UserId) -> Result<Option<User>>
pub async fn find_by_email(&self, email: &str) -> Result<Option<User>>
pub async fn find_by_name(&self, name: &str) -> Result<Option<User>>
pub async fn find_by_role(&self, role: UserRole) -> Result<Vec<User>>
pub async fn find_first_user(&self) -> Result<Option<User>>
pub async fn find_first_admin(&self) -> Result<Option<User>>
pub async fn find_authenticated_user( &self, user_id: &UserId, ) -> Result<Option<User>>
pub async fn find_with_sessions( &self, user_id: &UserId, ) -> Result<Option<UserWithSessions>>
pub async fn get_activity(&self, user_id: &UserId) -> Result<UserActivity>
pub async fn list(&self, limit: i64, offset: i64) -> Result<Vec<User>>
pub async fn list_all(&self) -> Result<Vec<User>>
pub async fn search(&self, query: &str, limit: i64) -> Result<Vec<User>>
pub async fn count(&self) -> Result<i64>
pub async fn is_temporary_anonymous(&self, id: &UserId) -> Result<bool>
pub async fn list_non_anonymous_with_sessions( &self, limit: i64, ) -> Result<Vec<UserWithSessions>>
pub async fn list_sessions(&self, user_id: &UserId) -> Result<Vec<UserSession>>
pub async fn list_active_sessions( &self, user_id: &UserId, ) -> Result<Vec<UserSession>>
pub async fn list_recent_sessions( &self, user_id: &UserId, limit: i64, ) -> Result<Vec<UserSession>>
pub async fn end_session(&self, session_id: &SessionId) -> Result<bool>
pub async fn end_all_sessions(&self, user_id: &UserId) -> Result<u64>
pub async fn create( &self, name: &str, email: &str, full_name: Option<&str>, display_name: Option<&str>, ) -> Result<User>
pub async fn create_anonymous(&self, fingerprint: &str) -> Result<User>
pub async fn update_email(&self, id: &UserId, email: &str) -> Result<User>
pub async fn update_full_name( &self, id: &UserId, full_name: &str, ) -> Result<User>
pub async fn update_status( &self, id: &UserId, status: UserStatus, ) -> Result<User>
pub async fn update_email_verified( &self, id: &UserId, verified: bool, ) -> Result<User>
pub async fn update_display_name( &self, id: &UserId, display_name: &str, ) -> Result<User>
pub async fn update_all_fields( &self, id: &UserId, params: UpdateUserParams<'_>, ) -> Result<User>
pub async fn assign_roles(&self, id: &UserId, roles: &[String]) -> Result<User>
pub async fn delete(&self, id: &UserId) -> Result<()>
pub async fn cleanup_old_anonymous(&self, days: i32) -> Result<u64>
pub async fn count_with_breakdown(&self) -> Result<UserCountBreakdown>
pub async fn get_stats(&self) -> Result<UserStats>
pub async fn list_by_filter( &self, status: Option<&str>, role: Option<&str>, older_than_days: Option<i64>, limit: i64, ) -> Result<Vec<User>>
pub async fn bulk_update_status( &self, user_ids: &[UserId], new_status: &str, ) -> Result<u64>
pub async fn bulk_delete(&self, user_ids: &[UserId]) -> Result<u64>
pub async fn merge_users( &self, source_id: &UserId, target_id: &UserId, ) -> Result<MergeResult>
Trait Implementations§
Source§impl Clone for UserService
impl Clone for UserService
Source§fn clone(&self) -> UserService
fn clone(&self) -> UserService
Returns a duplicate of the value. Read more
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreSource§impl Debug for UserService
impl Debug for UserService
Source§impl RoleProvider for UserService
impl RoleProvider for UserService
fn get_roles<'life0, 'life1, 'async_trait>(
&'life0 self,
user_id: &'life1 str,
) -> Pin<Box<dyn Future<Output = AuthResult<Vec<String>>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn assign_role<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
user_id: &'life1 str,
role: &'life2 str,
) -> Pin<Box<dyn Future<Output = AuthResult<()>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
fn revoke_role<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
user_id: &'life1 str,
role: &'life2 str,
) -> Pin<Box<dyn Future<Output = AuthResult<()>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
fn list_users_by_role<'life0, 'life1, 'async_trait>(
&'life0 self,
role: &'life1 str,
) -> Pin<Box<dyn Future<Output = AuthResult<Vec<AuthUser>>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Source§impl UserProvider for UserService
impl UserProvider for UserService
fn find_by_id<'life0, 'life1, 'async_trait>(
&'life0 self,
id: &'life1 str,
) -> Pin<Box<dyn Future<Output = AuthResult<Option<AuthUser>>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn find_by_email<'life0, 'life1, 'async_trait>(
&'life0 self,
email: &'life1 str,
) -> Pin<Box<dyn Future<Output = AuthResult<Option<AuthUser>>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn find_by_name<'life0, 'life1, 'async_trait>(
&'life0 self,
name: &'life1 str,
) -> Pin<Box<dyn Future<Output = AuthResult<Option<AuthUser>>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn create_user<'life0, 'life1, 'life2, 'life3, 'async_trait>(
&'life0 self,
name: &'life1 str,
email: &'life2 str,
full_name: Option<&'life3 str>,
) -> Pin<Box<dyn Future<Output = AuthResult<AuthUser>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
'life3: 'async_trait,
fn create_anonymous<'life0, 'life1, 'async_trait>(
&'life0 self,
fingerprint: &'life1 str,
) -> Pin<Box<dyn Future<Output = AuthResult<AuthUser>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn assign_roles<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
user_id: &'life1 str,
roles: &'life2 [String],
) -> Pin<Box<dyn Future<Output = AuthResult<()>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
Auto Trait Implementations§
impl Freeze for UserService
impl !RefUnwindSafe for UserService
impl Send for UserService
impl Sync for UserService
impl Unpin for UserService
impl UnsafeUnpin for UserService
impl !UnwindSafe for UserService
Blanket Implementations§
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 more