#[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>),
}__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
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>
impl<'a> AuthorizerContext<'a>
Sourcepub fn is_schema_modifying(&self) -> bool
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>
impl<'a> Clone for AuthorizerContext<'a>
Source§fn clone(&self) -> AuthorizerContext<'a>
fn clone(&self) -> AuthorizerContext<'a>
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreimpl<'a> Copy for AuthorizerContext<'a>
Source§impl<'a> Debug for AuthorizerContext<'a>
impl<'a> Debug for AuthorizerContext<'a>
impl<'a> Eq for AuthorizerContext<'a>
Source§impl<'a> PartialEq for AuthorizerContext<'a>
impl<'a> PartialEq for AuthorizerContext<'a>
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
impl<T> AggregateExpressionMethods for T
Source§fn aggregate_distinct(self) -> AggregateDistinct<Self>where
Self: DistinctDsl,
fn aggregate_distinct(self) -> AggregateDistinct<Self>where
Self: DistinctDsl,
DISTINCT modifier for aggregate functions Read moreSource§fn aggregate_all(self) -> AggregateAll<Self>where
Self: AllDsl,
fn aggregate_all(self) -> AggregateAll<Self>where
Self: AllDsl,
ALL modifier for aggregate functions Read moreSource§fn aggregate_filter<P>(self, f: P) -> AggregateFilter<Self, P>
fn aggregate_filter<P>(self, f: P) -> AggregateFilter<Self, P>
Source§fn aggregate_order<O>(self, o: O) -> AggregateOrder<Self, O>where
Self: OrderAggregateDsl<O>,
fn aggregate_order<O>(self, o: O) -> AggregateOrder<Self, O>where
Self: OrderAggregateDsl<O>,
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
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<T> Downcast for Twhere
T: Any,
impl<T> Downcast for Twhere
T: Any,
Source§fn into_any(self: Box<T>) -> Box<dyn Any>
fn into_any(self: Box<T>) -> Box<dyn Any>
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>
fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
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)
fn as_any(&self) -> &(dyn Any + 'static)
&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)
fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
&mut Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &mut Any’s vtable from &mut Trait’s.