Skip to main content

AuthorizerContext

Enum AuthorizerContext 

Source
#[non_exhaustive]
pub enum AuthorizerContext<'a> {
Show 34 variants CreateIndex(CreateIndex<'a>), CreateTable(CreateTable<'a>), CreateTempIndex(CreateTempIndex<'a>), CreateTempTable(CreateTempTable<'a>), CreateTempTrigger(CreateTempTrigger<'a>), CreateTempView(CreateTempView<'a>), CreateTrigger(CreateTrigger<'a>), CreateView(CreateView<'a>), Delete(Delete<'a>), DropIndex(DropIndex<'a>), DropTable(DropTable<'a>), DropTempIndex(DropTempIndex<'a>), DropTempTable(DropTempTable<'a>), DropTempTrigger(DropTempTrigger<'a>), DropTempView(DropTempView<'a>), DropTrigger(DropTrigger<'a>), DropView(DropView<'a>), Insert(Insert<'a>), Pragma(Pragma<'a>), Read(Read<'a>), Select(Select<'a>), Transaction(Transaction<'a>), Update(Update<'a>), Attach(Attach<'a>), Detach(Detach<'a>), AlterTable(AlterTable<'a>), Reindex(Reindex<'a>), Analyze(Analyze<'a>), CreateVTable(CreateVTable<'a>), DropVTable(DropVTable<'a>), Function(Function<'a>), Savepoint(Savepoint<'a>), Recursive(Recursive<'a>), Unknown(Unknown<'a>),
}
Available on crate feature __sqlite-shared only.
Expand description

Context information passed to the authorizer callback.

One variant per SQLite action code. Each variant carries the arguments for that action under descriptive field names, so there is no need to consult a table of what each positional argument means. The callback is invoked during SQL statement compilation (not during execution).

Added in SQLite 3.0.0 (June 2004).

Variants (Non-exhaustive)§

This enum is marked as non-exhaustive
Non-exhaustive enums could have additional variants added in future. Therefore, when matching against variants of non-exhaustive enums, an extra wildcard arm must be added to account for any future variants.
§

CreateIndex(CreateIndex<'a>)

CREATE INDEX

§

CreateTable(CreateTable<'a>)

CREATE TABLE

§

CreateTempIndex(CreateTempIndex<'a>)

CREATE TEMP INDEX

§

CreateTempTable(CreateTempTable<'a>)

CREATE TEMP TABLE

§

CreateTempTrigger(CreateTempTrigger<'a>)

CREATE TEMP TRIGGER

§

CreateTempView(CreateTempView<'a>)

CREATE TEMP VIEW

§

CreateTrigger(CreateTrigger<'a>)

CREATE TRIGGER

§

CreateView(CreateView<'a>)

CREATE VIEW

§

Delete(Delete<'a>)

DELETE

§

DropIndex(DropIndex<'a>)

DROP INDEX

§

DropTable(DropTable<'a>)

DROP TABLE

§

DropTempIndex(DropTempIndex<'a>)

DROP TEMP INDEX

§

DropTempTable(DropTempTable<'a>)

DROP TEMP TABLE

§

DropTempTrigger(DropTempTrigger<'a>)

DROP TEMP TRIGGER

§

DropTempView(DropTempView<'a>)

DROP TEMP VIEW

§

DropTrigger(DropTrigger<'a>)

DROP TRIGGER

§

DropView(DropView<'a>)

DROP VIEW

§

Insert(Insert<'a>)

INSERT

§

Pragma(Pragma<'a>)

PRAGMA

§

Read(Read<'a>)

Reading a column value.

§

Select(Select<'a>)

SELECT

§

Transaction(Transaction<'a>)

Transaction control (BEGIN, COMMIT, ROLLBACK).

§

Update(Update<'a>)

UPDATE

§

Attach(Attach<'a>)

ATTACH DATABASE

§

Detach(Detach<'a>)

DETACH DATABASE

§

AlterTable(AlterTable<'a>)

ALTER TABLE

§

Reindex(Reindex<'a>)

REINDEX

§

Analyze(Analyze<'a>)

ANALYZE

§

CreateVTable(CreateVTable<'a>)

CREATE VIRTUAL TABLE

§

DropVTable(DropVTable<'a>)

DROP VIRTUAL TABLE

§

Function(Function<'a>)

A SQL function call.

§

Savepoint(Savepoint<'a>)

SAVEPOINT

§

Recursive(Recursive<'a>)

A recursive SELECT.

§

Unknown(Unknown<'a>)

An action code this version of diesel does not model.

Implementations§

Source§

impl<'a> AuthorizerContext<'a>

Source

pub fn is_schema_modifying(&self) -> bool

Returns true if this action modifies the database schema.

Schema-modifying actions include creating, dropping, or altering tables, indexes, triggers, views, and virtual tables.

§Example
use diesel::sqlite::{SqliteConnection, AuthorizerContext, AuthorizerDecision};

conn.on_authorize(|ctx| {
    if ctx.is_schema_modifying() {
        AuthorizerDecision::Deny
    } else {
        AuthorizerDecision::Allow
    }
});

Trait Implementations§

Source§

impl<'a> Clone for AuthorizerContext<'a>

Source§

fn clone(&self) -> AuthorizerContext<'a>

Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§

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

Performs copy-assignment from source. Read more
Source§

impl<'a> Copy for AuthorizerContext<'a>

Source§

impl<'a> Debug for AuthorizerContext<'a>

Source§

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

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

impl<'a> Eq for AuthorizerContext<'a>

Source§

impl<'a> PartialEq for AuthorizerContext<'a>

Source§

fn eq(&self, other: &AuthorizerContext<'a>) -> bool

Equality operator ==. Read more
1.0.0 (const: unstable) · Source§

fn ne(&self, other: &Rhs) -> bool

Inequality operator !=. Read more
Source§

impl<'a> StructuralPartialEq for AuthorizerContext<'a>

Auto Trait Implementations§

§

impl<'a> Freeze for AuthorizerContext<'a>

§

impl<'a> RefUnwindSafe for AuthorizerContext<'a>

§

impl<'a> Send for AuthorizerContext<'a>

§

impl<'a> Sync for AuthorizerContext<'a>

§

impl<'a> Unpin for AuthorizerContext<'a>

§

impl<'a> UnsafeUnpin for AuthorizerContext<'a>

§

impl<'a> UnwindSafe for AuthorizerContext<'a>

Blanket Implementations§

Source§

impl<T> AggregateExpressionMethods for T

Source§

fn aggregate_distinct(self) -> AggregateDistinct<Self>
where Self: DistinctDsl,

DISTINCT modifier for aggregate functions Read more
Source§

fn aggregate_all(self) -> AggregateAll<Self>
where Self: AllDsl,

ALL modifier for aggregate functions Read more
Source§

fn aggregate_filter<P>(self, f: P) -> AggregateFilter<Self, P>
where P: AsExpression<Bool>, Self: FilterDsl<P::Expression>,

Add an aggregate function filter Read more
Source§

fn aggregate_order<O>(self, o: O) -> AggregateOrder<Self, O>
where Self: OrderAggregateDsl<O>,

Add an aggregate function order Read more
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> Downcast for T
where T: Any,

Source§

fn into_any(self: Box<T>) -> Box<dyn Any>

Converts Box<dyn Trait> (where Trait: Downcast) to Box<dyn Any>, which can then be downcast into Box<dyn ConcreteType> where ConcreteType implements Trait.
Source§

fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>

Converts Rc<Trait> (where Trait: Downcast) to Rc<Any>, which can then be further downcast into Rc<ConcreteType> where ConcreteType implements Trait.
Source§

fn as_any(&self) -> &(dyn Any + 'static)

Converts &Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot generate &Any’s vtable from &Trait’s.
Source§

fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)

Converts &mut Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot generate &mut Any’s vtable from &mut Trait’s.
Source§

impl<T> DowncastSend for T
where T: Any + Send,

Source§

fn into_any_send(self: Box<T>) -> Box<dyn Any + Send>

Converts Box<Trait> (where Trait: DowncastSend) to Box<dyn Any + Send>, which can then be downcast into Box<ConcreteType> where ConcreteType implements Trait.
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

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> IntoSql for T

Source§

fn into_sql<T>(self) -> AsExprOf<Self, T>

Convert self to an expression for Diesel’s query builder. Read more
Source§

fn as_sql<'a, T>(&'a self) -> AsExprOf<&'a Self, T>
where &'a Self: AsExpression<T>, T: SqlType + TypedExpressionType,

Convert &self to an expression for Diesel’s query builder. Read more
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<T> WindowExpressionMethods for T

Source§

fn over(self) -> Over<Self>
where Self: OverDsl,

Turn a function call into a window function call Read more
Source§

fn window_filter<P>(self, f: P) -> WindowFilter<Self, P>
where P: AsExpression<Bool>, Self: FilterDsl<P::Expression>,

Add a filter to the current window function Read more
Source§

fn partition_by<E>(self, expr: E) -> PartitionBy<Self, E>
where Self: PartitionByDsl<E>,

Add a partition clause to the current window function Read more
Source§

fn window_order<E>(self, expr: E) -> WindowOrder<Self, E>
where Self: OrderWindowDsl<E>,

Add a order clause to the current window function Read more
Source§

fn frame_by<E>(self, expr: E) -> FrameBy<Self, E>
where Self: FrameDsl<E>,

Add a frame clause to the current window function Read more