Struct User

Source
pub struct User {
Show 35 fields pub id: usize, pub created: usize, pub username: String, pub password: String, pub salt: String, pub settings: UserSettings, pub tokens: Vec<Token>, pub permissions: FinePermission, pub is_verified: bool, pub notification_count: usize, pub follower_count: usize, pub following_count: usize, pub last_seen: usize, pub totp: String, pub recovery_codes: Vec<String>, pub post_count: usize, pub request_count: usize, pub connections: UserConnections, pub stripe_id: String, pub grants: Vec<AuthGrant>, pub associated: Vec<usize>, pub invite_code: usize, pub secondary_permissions: SecondaryPermission, pub achievements: Vec<Achievement>, pub awaiting_purchase: bool, pub was_purchased: bool, pub browser_session: String, pub ban_reason: String, pub channel_mutes: Vec<usize>, pub is_deactivated: bool, pub ban_expire: usize, pub coins: i32, pub checkouts: Vec<String>, pub applied_configurations: Vec<(AppliedConfigType, usize)>, pub last_policy_consent: usize,
}

Fields§

§id: usize§created: usize§username: String§password: String§salt: String§settings: UserSettings§tokens: Vec<Token>§permissions: FinePermission§is_verified: bool§notification_count: usize§follower_count: usize§following_count: usize§last_seen: usize§totp: String

The TOTP secret for this profile. An empty value means the user has TOTP disabled.

§recovery_codes: Vec<String>

The TOTP recovery codes for this profile.

§post_count: usize§request_count: usize§connections: UserConnections

External service connection details.

§stripe_id: String

The user’s Stripe customer ID.

§grants: Vec<AuthGrant>

The grants associated with the user’s account.

§associated: Vec<usize>

A list of the IDs of all accounts the user has signed into through the UI.

§invite_code: usize

The ID of the InviteCode this user provided during registration.

§secondary_permissions: SecondaryPermission

Secondary permissions because the regular permissions struct ran out of possible bits.

§achievements: Vec<Achievement>

Users collect achievements through little actions across the site.

§awaiting_purchase: bool

If the account was registered as a “bought” account, the user should not be allowed to actually use the account if they haven’t paid for supporter yet.

§was_purchased: bool

This value cannot be changed after account creation. This value is used to lock the user’s account again if the subscription is cancelled and they haven’t used an invite code.

§browser_session: String

This value is updated for every new littleweb browser session.

This means the user can only have one of these sessions open at once (unless this token is stored somewhere with a way to say we already have one, but this does not happen yet).

Without this token, the user can still use the browser, they just cannot view pages which require authentication (all $ routes).

§ban_reason: String

The reason the user was banned.

§channel_mutes: Vec<usize>

IDs of channels the user has muted.

§is_deactivated: bool

If the user is deactivated. Deactivated users act almost like deleted users, but their data is not wiped.

§ban_expire: usize

The time at which the user’s ban will automatically expire.

§coins: i32

The number of coins the user has.

§checkouts: Vec<String>

The IDs of Stripe checkout sessions that this user has successfully completed.

This should be checked BEFORE applying purchases to ensure that the user hasn’t already applied this purchase.

§applied_configurations: Vec<(AppliedConfigType, usize)>

The IDs of products to be applied to the user’s profile.

§last_policy_consent: usize

The time in which the user last consented to the site’s policies.

Implementations§

Source§

impl User

Source

pub fn new(username: String, password: String) -> Self

Create a new User.

Source

pub fn deleted() -> Self

Deleted user profile.

Source

pub fn banned() -> Self

Banned user profile.

Source

pub fn anonymous() -> Self

Anonymous user profile.

Source

pub fn create_token(ip: &str) -> (String, Token)

Create a new token

§Returns

(unhashed id, token)

Source

pub fn check_password(&self, against: String) -> bool

Check if the given password is correct for the user.

Source

pub fn parse_mentions(input: &str) -> Vec<String>

Parse user mentions in a given input.

Source

pub fn totp(&self, issuer: Option<String>) -> Option<TOTP>

Get a TOTP from the profile’s totp secret value.

Source

pub fn clean(&mut self)

Clean the struct for public viewing.

Source

pub fn get_grant_by_app_id(&self, id: usize) -> Option<&AuthGrant>

Get a grant from the user given the grant’s app ID.

Should be used before adding another grant (to ensure the app doesn’t already have a grant for this user).

Trait Implementations§

Source§

impl Clone for User

Source§

fn clone(&self) -> User

Returns a duplicate of the value. Read more
1.0.0 · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Debug for User

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl Default for User

Source§

fn default() -> Self

Returns the “default value” for a type. Read more
Source§

impl<'de> Deserialize<'de> for User

Source§

fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
where __D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
Source§

impl Serialize for User

Source§

fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error>
where __S: Serializer,

Serialize this value into the given Serde serializer. Read more

Auto Trait Implementations§

§

impl Freeze for User

§

impl RefUnwindSafe for User

§

impl Send for User

§

impl Sync for User

§

impl Unpin for User

§

impl UnwindSafe for User

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T> Instrument for T

Source§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more
Source§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> PolicyExt for T
where T: ?Sized,

Source§

fn and<P, B, E>(self, other: P) -> And<T, P>
where T: Policy<B, E>, P: Policy<B, E>,

Create a new Policy that returns Action::Follow only if self and other return Action::Follow. Read more
Source§

fn or<P, B, E>(self, other: P) -> Or<T, P>
where T: Policy<B, E>, P: Policy<B, E>,

Create a new Policy that returns Action::Follow if either self or other returns Action::Follow. Read more
Source§

impl<T> Same for T

Source§

type Output = T

Should always be Self
Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
Source§

impl<V, T> VZip<V> for T
where V: MultiLane<T>,

Source§

fn vzip(self) -> V

Source§

impl<T> WithSubscriber for T

Source§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more
Source§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more
Source§

impl<T> DeserializeOwned for T
where T: for<'de> Deserialize<'de>,

Source§

impl<T> ErasedDestructor for T
where T: 'static,