pub struct AdminUser {
pub id: Uuid,
pub email: String,
pub password_hash: String,
pub display_name: String,
pub active: bool,
pub created_at: Timestamp,
}Expand description
Shipped credential model with unique email, Argon2id PHC hash, display name, and active flag; belongs to no tenant.
Fields§
§id: Uuid§email: String§password_hash: StringArgon2id hash in PHC string format; never stores the plaintext.
display_name: String§active: boolfalse denies login and panel access immediately.
created_at: TimestampImplementations§
Source§impl AdminUser
impl AdminUser
Sourcepub fn fields() -> AdminUserFields<AdminUser>
pub fn fields() -> AdminUserFields<AdminUser>
Returns a handle used to reference AdminUser’s fields when building query expressions.
Sourcepub async fn get_by_id(
executor: &mut dyn Executor,
id: impl IntoExpr<FieldExprTarget<Uuid>>,
) -> Result<AdminUser>
pub async fn get_by_id( executor: &mut dyn Executor, id: impl IntoExpr<FieldExprTarget<Uuid>>, ) -> Result<AdminUser>
Fetches the single AdminUser where id matches, erroring if none exists.
Sourcepub fn update_by_id(id: impl IntoExpr<FieldExprTarget<Uuid>>) -> AdminUserUpdate
pub fn update_by_id(id: impl IntoExpr<FieldExprTarget<Uuid>>) -> AdminUserUpdate
Returns a builder that updates the AdminUser where id matches.
Sourcepub async fn delete_by_id(
executor: &mut dyn Executor,
id: impl IntoExpr<FieldExprTarget<Uuid>>,
) -> Result<()>
pub async fn delete_by_id( executor: &mut dyn Executor, id: impl IntoExpr<FieldExprTarget<Uuid>>, ) -> Result<()>
Deletes the AdminUser where id matches.
Sourcepub fn filter_by_id(id: impl IntoExpr<FieldExprTarget<Uuid>>) -> AdminUserQuery
pub fn filter_by_id(id: impl IntoExpr<FieldExprTarget<Uuid>>) -> AdminUserQuery
Returns a query selecting the AdminUser records where id matches.
Sourcepub async fn get_by_email(
executor: &mut dyn Executor,
email: impl IntoExpr<FieldExprTarget<String>>,
) -> Result<AdminUser>
pub async fn get_by_email( executor: &mut dyn Executor, email: impl IntoExpr<FieldExprTarget<String>>, ) -> Result<AdminUser>
Fetches the single AdminUser where email matches, erroring if none exists.
Sourcepub fn update_by_email(
email: impl IntoExpr<FieldExprTarget<String>>,
) -> AdminUserUpdate
pub fn update_by_email( email: impl IntoExpr<FieldExprTarget<String>>, ) -> AdminUserUpdate
Returns a builder that updates the AdminUser where email matches.
Sourcepub async fn delete_by_email(
executor: &mut dyn Executor,
email: impl IntoExpr<FieldExprTarget<String>>,
) -> Result<()>
pub async fn delete_by_email( executor: &mut dyn Executor, email: impl IntoExpr<FieldExprTarget<String>>, ) -> Result<()>
Deletes the AdminUser where email matches.
Sourcepub fn filter_by_email(
email: impl IntoExpr<FieldExprTarget<String>>,
) -> AdminUserQuery
pub fn filter_by_email( email: impl IntoExpr<FieldExprTarget<String>>, ) -> AdminUserQuery
Returns a query selecting the AdminUser records where email matches.
Sourcepub fn create() -> AdminUserCreate
pub fn create() -> AdminUserCreate
Returns a builder that inserts a new AdminUser record.
Typically constructed through the toasty::create! macro.
Sourcepub fn create_many() -> CreateMany<AdminUser>
pub fn create_many() -> CreateMany<AdminUser>
Returns a builder that inserts multiple AdminUser records at once.
Sourcepub fn update(&mut self) -> AdminUserUpdate<&mut Self>
pub fn update(&mut self) -> AdminUserUpdate<&mut Self>
Returns a builder that updates this AdminUser record in place.
Source§impl AdminUser
impl AdminUser
Sourcepub fn upsert_by_id(
id: impl IntoExpr<FieldExprTarget<Uuid>>,
) -> AdminUserUpsertById
pub fn upsert_by_id( id: impl IntoExpr<FieldExprTarget<Uuid>>, ) -> AdminUserUpsertById
Returns a builder that creates AdminUser or updates the record whose id constraint matches.
The target arguments initialize a new record and remain unchanged when an existing record is updated.
Source§impl AdminUser
impl AdminUser
Sourcepub fn upsert_by_email(
email: impl IntoExpr<FieldExprTarget<String>>,
) -> AdminUserUpsertByEmail
pub fn upsert_by_email( email: impl IntoExpr<FieldExprTarget<String>>, ) -> AdminUserUpsertByEmail
Returns a builder that creates AdminUser or updates the record whose email constraint matches.
The target arguments initialize a new record and remain unchanged when an existing record is updated.
Trait Implementations§
Source§impl Assign<AdminUser> for AdminUser
impl Assign<AdminUser> for AdminUser
Source§fn into_assignment(self) -> Assignment<AdminUser>
fn into_assignment(self) -> Assignment<AdminUser>
Assignment<T> value.Source§fn assign(self, assignments: &mut Assignments, projection: Projection)where
Self: Sized,
fn assign(self, assignments: &mut Assignments, projection: Projection)where
Self: Sized,
Assignments] map at
the specified projection.Source§impl IntoStatement for &AdminUser
impl IntoStatement for &AdminUser
Source§impl IntoStatement for &mut AdminUser
impl IntoStatement for &mut AdminUser
Source§impl IntoStatement for AdminUser
impl IntoStatement for AdminUser
Source§impl Load for AdminUser
impl Load for AdminUser
Source§fn ty() -> Type
fn ty() -> Type
stmt::Type that describes values of this type.Source§fn reload(target: &mut Self, value: Value) -> Result<()>
fn reload(target: &mut Self, value: Value) -> Result<()>
Source§fn ty_relation() -> Type
fn ty_relation() -> Type
stmt::Type used when this type appears as a relation
target. The default delegates to ty().Source§impl Model for AdminUser
impl Model for AdminUser
Source§type Query<__T> = AdminUserQuery<__T>
type Query<__T> = AdminUserQuery<__T>
Source§type UpdateQuery = AdminUserUpdate
type UpdateQuery = AdminUserUpdate
Source§type PrimaryKey = Uuid
type PrimaryKey = Uuid
Source§type ManyField<__Origin> = AdminUserListFields<__Origin>
type ManyField<__Origin> = AdminUserListFields<__Origin>
Source§type OneField<__Origin, __Target> = AdminUserFields<__Origin, __Target>
type OneField<__Origin, __Target> = AdminUserFields<__Origin, __Target>
Source§fn new_path<__Origin>(path: Path<__Origin, Self>) -> Self::Path<__Origin>
fn new_path<__Origin>(path: Path<__Origin, Self>) -> Self::Path<__Origin>
Path targeting this model.Source§fn new_many_field<__Origin>(
path: Path<__Origin, List<Self>>,
) -> AdminUserListFields<__Origin>
fn new_many_field<__Origin>( path: Path<__Origin, List<Self>>, ) -> AdminUserListFields<__Origin>
ManyField from a path targeting a list
of this model.Source§fn find_by_primary_key(id: Expr<Self::PrimaryKey>) -> Self::Query<List<Self>>
fn find_by_primary_key(id: Expr<Self::PrimaryKey>) -> Self::Query<List<Self>>
Source§fn wrap_query<__T>(stmt: Query<__T>) -> Self::Query<__T>
fn wrap_query<__T>(stmt: Query<__T>) -> Self::Query<__T>
Query in this model’s
query builder, preserving the result shape T. This is the single
constructor generic code uses to build any query shape; callers narrow
at the statement level (.one(), .first()) before wrapping.Source§fn query_one(query: Self::Query<List<Self>>) -> Self::Query<Self>
fn query_one(query: Self::Query<List<Self>>) -> Self::Query<Self>
Source§fn query_first(query: Self::Query<List<Self>>) -> Self::Query<Option<Self>>
fn query_first(query: Self::Query<List<Self>>) -> Self::Query<Option<Self>>
Source§fn new_root_path() -> Self::Path<Self>
fn new_root_path() -> Self::Path<Self>
Source§fn path_model_list() -> Path<List<Self>, List<Self>>
fn path_model_list() -> Path<List<Self>, List<Self>>
Path rooted at a list of this model, used as the root of
has-many relation scopes.Source§fn new_create() -> Self::Create
fn new_create() -> Self::Create
Source§impl ModelCodegen for AdminUser
impl ModelCodegen for AdminUser
Source§fn to_relation_expr(&self, fields: &[&str]) -> Expr
fn to_relation_expr(&self, fields: &[&str]) -> Expr
Source§fn new_one_field<__Origin, __Target>(
path: Path<__Origin, __Target>,
) -> Self::OneField<__Origin, __Target>
fn new_one_field<__Origin, __Target>( path: Path<__Origin, __Target>, ) -> Self::OneField<__Origin, __Target>
Source§impl PanelUser for AdminUser
impl PanelUser for AdminUser
Source§fn user_id(&self) -> String
fn user_id(&self) -> String
Authenticator::find_by_id receives. Any string fits.Source§fn display_name(&self) -> &str
fn display_name(&self) -> &str
Source§fn can_access_panel(&self) -> bool
fn can_access_panel(&self) -> bool
true.Source§fn tenants(&self) -> &[Membership]
fn tenants(&self) -> &[Membership]
Source§impl UpdateTarget for &mut AdminUser
impl UpdateTarget for &mut AdminUser
Source§fn to_update_stmt(&mut self, assignments: Assignments) -> Update<AdminUser>
fn to_update_stmt(&mut self, assignments: Assignments) -> Update<AdminUser>
Source§impl ViaTarget for AdminUser
impl ViaTarget for AdminUser
Source§type Query = AdminUserQuery
type Query = AdminUserQuery
Source§type Path<__Origin> = <AdminUser as Model>::ManyField<__Origin>
type Path<__Origin> = <AdminUser as Model>::ManyField<__Origin>
#[has_many(via = …)] field’s accessor returns,
parameterized by the origin model. Mirrors Model::Path for the
via-many case. Read moreSource§fn new_path<__Origin>(
path: Path<__Origin, List<AdminUser>>,
) -> Self::Path<__Origin>
fn new_path<__Origin>( path: Path<__Origin, List<AdminUser>>, ) -> Self::Path<__Origin>
Path handle from the typed path reaching this
terminal. A model terminal wraps the path in its chainable ManyField; a
scalar terminal is a leaf, so the path is the handle.Source§fn via_field_ty(singular: Name, path: Path) -> FieldTy
fn via_field_ty(singular: Name, path: Path) -> FieldTy
FieldTy::Via for a #[has_many(via = …)] field whose
terminal element type is Self. Read moreSource§fn make_via_query(assoc: Association<List<AdminUser>>) -> Self::Query
fn make_via_query(assoc: Association<List<AdminUser>>) -> Self::Query
Auto Trait Implementations§
impl Freeze for AdminUser
impl RefUnwindSafe for AdminUser
impl Send for AdminUser
impl Sync for AdminUser
impl Unpin for AdminUser
impl UnsafeUnpin for AdminUser
impl UnwindSafe for AdminUser
Blanket Implementations§
Source§impl<T> Assign<Arc<T>> for Twhere
T: IntoExpr<T>,
impl<T> Assign<Arc<T>> for Twhere
T: IntoExpr<T>,
Source§fn into_assignment(self) -> Assignment<Arc<T>>
fn into_assignment(self) -> Assignment<Arc<T>>
Assignment<T> value.Source§fn assign(self, assignments: &mut Assignments, projection: Projection)where
Self: Sized,
fn assign(self, assignments: &mut Assignments, projection: Projection)where
Self: Sized,
Assignments] map at
the specified projection.Source§impl<T> Assign<Box<T>> for Twhere
T: IntoExpr<T>,
impl<T> Assign<Box<T>> for Twhere
T: IntoExpr<T>,
Source§fn into_assignment(self) -> Assignment<Box<T>>
fn into_assignment(self) -> Assignment<Box<T>>
Assignment<T> value.Source§fn assign(self, assignments: &mut Assignments, projection: Projection)where
Self: Sized,
fn assign(self, assignments: &mut Assignments, projection: Projection)where
Self: Sized,
Assignments] map at
the specified projection.Source§impl<T> Assign<Option<T>> for Twhere
T: IntoExpr<T>,
impl<T> Assign<Option<T>> for Twhere
T: IntoExpr<T>,
Source§fn into_assignment(self) -> Assignment<Option<T>>
fn into_assignment(self) -> Assignment<Option<T>>
Assignment<T> value.Source§fn assign(self, assignments: &mut Assignments, projection: Projection)where
Self: Sized,
fn assign(self, assignments: &mut Assignments, projection: Projection)where
Self: Sized,
Assignments] map at
the specified projection.Source§impl<T> Assign<Rc<T>> for Twhere
T: IntoExpr<T>,
impl<T> Assign<Rc<T>> for Twhere
T: IntoExpr<T>,
Source§fn into_assignment(self) -> Assignment<Rc<T>>
fn into_assignment(self) -> Assignment<Rc<T>>
Assignment<T> value.Source§fn assign(self, assignments: &mut Assignments, projection: Projection)where
Self: Sized,
fn assign(self, assignments: &mut Assignments, projection: Projection)where
Self: Sized,
Assignments] map at
the specified projection.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
impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
impl<T> CloneAny for T
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> ⓘ
impl<T> Read<Exclusive, BecauseExclusive> for Twhere
T: ?Sized,
Source§impl<M> RelationOneField for Mwhere
M: Model,
impl<M> RelationOneField for Mwhere
M: Model,
Source§type One = <M as Model>::Query<M>
type One = <M as Model>::Query<M>
<Target as Model>::Query<Target>; for nullable impls it is
<Target as Model>::Query<Option<Target>>.Source§type Expr = M
type Expr = M
Self::Target for non-nullable impls and
Option<Self::Target> for nullable impls.Source§fn make_one(
query: <<M as RelationOneField>::Target as Model>::Query<List<<M as RelationOneField>::Target>>,
) -> <M as RelationOneField>::One
fn make_one( query: <<M as RelationOneField>::Target as Model>::Query<List<<M as RelationOneField>::Target>>, ) -> <M as RelationOneField>::One
Query<Model> for non-nullable impls and
Query<Option<Model>> for nullable impls. Read moreSource§fn reload(target: &mut Self, value: Value) -> Result<(), Error>
fn reload(target: &mut Self, value: Value) -> Result<(), Error>
Source§fn belongs_to_relation_field_ty(foreign_key: ForeignKey) -> FieldTy
fn belongs_to_relation_field_ty(foreign_key: ForeignKey) -> FieldTy
FieldTy for a BelongsTo relation field, given the
foreign key resolved from the field’s #[belongs_to(...)] attribute.