pub struct SessionData {
pub session_id: String,
pub user_id: String,
pub roles: Vec<String>,
pub permissions: Vec<String>,
pub attributes: HashMap<String, Value>,
pub created_at: DateTime<Utc>,
pub expires_at: DateTime<Utc>,
pub last_accessed_at: DateTime<Utc>,
pub ip_address: Option<String>,
pub user_agent: Option<String>,
}Expand description
Session data structure
Fields§
§session_id: String§user_id: String§roles: Vec<String>§permissions: Vec<String>§attributes: HashMap<String, Value>§created_at: DateTime<Utc>§expires_at: DateTime<Utc>§last_accessed_at: DateTime<Utc>§ip_address: Option<String>§user_agent: Option<String>Implementations§
Source§impl SessionData
impl SessionData
Sourcepub fn new(
session_id: String,
user_id: String,
roles: Vec<String>,
permissions: Vec<String>,
max_age_seconds: Option<u64>,
ip_address: Option<String>,
user_agent: Option<String>,
) -> Self
pub fn new( session_id: String, user_id: String, roles: Vec<String>, permissions: Vec<String>, max_age_seconds: Option<u64>, ip_address: Option<String>, user_agent: Option<String>, ) -> Self
Create new session data
Sourcepub fn is_expired(&self) -> bool
pub fn is_expired(&self) -> bool
Check if session is expired
Sourcepub fn time_until_expiry(&self) -> i64
pub fn time_until_expiry(&self) -> i64
Get remaining time until expiration in seconds
Sourcepub fn has_permission(&self, permission: &str) -> bool
pub fn has_permission(&self, permission: &str) -> bool
Check if user has specific permission
Sourcepub fn set_attribute(&mut self, key: String, value: Value)
pub fn set_attribute(&mut self, key: String, value: Value)
Add custom attribute
Sourcepub fn get_attribute(&self, key: &str) -> Option<&Value>
pub fn get_attribute(&self, key: &str) -> Option<&Value>
Get custom attribute
Sourcepub fn remove_attribute(&mut self, key: &str) -> Option<Value>
pub fn remove_attribute(&mut self, key: &str) -> Option<Value>
Remove custom attribute
Trait Implementations§
Source§impl Clone for SessionData
impl Clone for SessionData
Source§fn clone(&self) -> SessionData
fn clone(&self) -> SessionData
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 SessionData
impl Debug for SessionData
Source§impl<'de> Deserialize<'de> for SessionData
impl<'de> Deserialize<'de> for SessionData
Source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
Deserialize this value from the given Serde deserializer. Read more
Auto Trait Implementations§
impl Freeze for SessionData
impl RefUnwindSafe for SessionData
impl Send for SessionData
impl Sync for SessionData
impl Unpin for SessionData
impl UnwindSafe for SessionData
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