Struct lrau::user::User [−][src]
pub struct User { pub username: String, pub password: String, pub permissions: Permissions, pub logged_in: Option<Instant>, pub expire: Option<Duration>, }
Expand description
The User struct stores information about an individual login.
It support serde and so can be serialized to, for example, json or
toml. For diesel support you can convert it to a
DieselUser, which intern supports
Queryable
, Insertable
, and Identifiable
.
Fields
username: String
This is then username / id of the user
password: String
This is the password of the user.
This is stores hashed with Argon2id.
permissions: Permissions
logged_in: Option<Instant>
This stores information about wether the user is logged in or not.
expire: Option<Duration>
This is how long until the user is expire.
Implementations
impl User
[src]
impl User
[src]pub fn new_basic(
username: String,
password: String,
permissions: Permissions
) -> Self
[src]
pub fn new_basic(
username: String,
password: String,
permissions: Permissions
) -> Self
[src]Creates a new user from an existing hash.
pub fn new(username: String, password: String, permissions: Permissions) -> Self
[src]
pub fn new(username: String, password: String, permissions: Permissions) -> Self
[src]Creates a new user. The field password
is the unhashed password.
After this is suplied the program will hash it using the Argon2id
agorithm.
The username
field is any username which you wish to identify
the user by.
Permissions is a representation of the permissions for the user.
pub fn check_login(&self) -> bool
[src]
pub fn check_login(&self) -> bool
[src]Checks if the user is logged in.
This does not check if the user has expired.
pub fn check_valid_login(&self) -> bool
[src]
pub fn check_valid_login(&self) -> bool
[src]Checks for a valid login. This makes sure the user is logged in and has a valid session.
pub fn get_permission(&self, path: &str, mut: bool) -> bool
[src]
pub fn get_permission(&self, path: &str, mut: bool) -> bool
[src]Checks if a user has permissions to do something.
Note this does not check for a valid session.
pub fn get_valid_permissions(
&self,
path: &str,
mut: bool
) -> Result<bool, SessionExpired>
[src]
pub fn get_valid_permissions(
&self,
path: &str,
mut: bool
) -> Result<bool, SessionExpired>
[src]Checks if the user has permissions to do something.
This function also checks if they have a valid
session and will return an Err
if they do not.
Trait Implementations
impl Ord for User
[src]
impl Ord for User
[src]impl PartialOrd<User> for User
[src]
impl PartialOrd<User> for User
[src]fn partial_cmp(&self, other: &User) -> Option<Ordering>
[src]
fn partial_cmp(&self, other: &User) -> Option<Ordering>
[src]This method returns an ordering between self
and other
values if one exists. Read more
#[must_use]fn lt(&self, other: &Rhs) -> bool
1.0.0[src]
#[must_use]fn lt(&self, other: &Rhs) -> bool
1.0.0[src]This method tests less than (for self
and other
) and is used by the <
operator. Read more
#[must_use]fn le(&self, other: &Rhs) -> bool
1.0.0[src]
#[must_use]fn le(&self, other: &Rhs) -> bool
1.0.0[src]This method tests less than or equal to (for self
and other
) and is used by the <=
operator. Read more
impl Eq for User
[src]
impl StructuralEq for User
[src]
impl StructuralPartialEq for User
[src]
Auto Trait Implementations
impl RefUnwindSafe for User
impl Send for User
impl Sync for User
impl Unpin for User
impl UnwindSafe for User
Blanket Implementations
impl<T> BorrowMut<T> for T where
T: ?Sized,
[src]
impl<T> BorrowMut<T> for T where
T: ?Sized,
[src]pub fn borrow_mut(&mut self) -> &mut T
[src]
pub fn borrow_mut(&mut self) -> &mut T
[src]Mutably borrows from an owned value. Read more
impl<T> ToOwned for T where
T: Clone,
[src]
impl<T> ToOwned for T where
T: Clone,
[src]type Owned = T
type Owned = T
The resulting type after obtaining ownership.
pub fn to_owned(&self) -> T
[src]
pub fn to_owned(&self) -> T
[src]Creates owned data from borrowed data, usually by cloning. Read more
pub fn clone_into(&self, target: &mut T)
[src]
pub fn clone_into(&self, target: &mut T)
[src]🔬 This is a nightly-only experimental API. (toowned_clone_into
)
recently added
Uses borrowed data to replace owned data, usually by cloning. Read more
impl<V, T> VZip<V> for T where
V: MultiLane<T>,
impl<V, T> VZip<V> for T where
V: MultiLane<T>,