pub struct RestrictedConnection { /* private fields */ }rbac only.Expand description
Wrapper of DatabaseConnection that performs authorization on all executed
queries for the current user. Note that raw SQL Statement is not allowed
currently.
Implementationsยง
Sourceยงimpl RestrictedConnection
impl RestrictedConnection
Sourcepub fn user_can_run<S: StatementBuilder>(&self, stmt: &S) -> Result<(), DbErr>
pub fn user_can_run<S: StatementBuilder>(&self, stmt: &S) -> Result<(), DbErr>
Returns () if the current user can execute / query the given SQL statement.
Returns DbErr::AccessDenied otherwise.
Sourcepub fn user_can<P, R>(&self, permission: P, resource: R) -> Result<bool, DbErr>
pub fn user_can<P, R>(&self, permission: P, resource: R) -> Result<bool, DbErr>
Returns true if the current user can perform action on resource
Sourcepub fn current_user_role_permissions(
&self,
) -> Result<RbacUserRolePermissions, DbErr>
pub fn current_user_role_permissions( &self, ) -> Result<RbacUserRolePermissions, DbErr>
Get current userโs role and associated permissions. This includes permissions โinheritedโ from child roles.
Sourcepub fn roles_and_ranks(&self) -> Result<RbacRolesAndRanks, DbErr>
pub fn roles_and_ranks(&self) -> Result<RbacRolesAndRanks, DbErr>
Get a list of all roles and their ranks. Rank is defined as (1 + number of child roles).
Sourcepub fn resources_and_permissions(
&self,
) -> Result<RbacResourcesAndPermissions, DbErr>
pub fn resources_and_permissions( &self, ) -> Result<RbacResourcesAndPermissions, DbErr>
Get two lists of all resources and permissions, excluding wildcards.
Sourcepub fn role_hierarchy_edges(
&self,
role_id: RoleId,
) -> Result<RbacRoleHierarchyList, DbErr>
pub fn role_hierarchy_edges( &self, role_id: RoleId, ) -> Result<RbacRoleHierarchyList, DbErr>
Get a list of edges walking the role hierarchy tree
Sourcepub fn role_permissions_by_resources(
&self,
role_id: RoleId,
) -> Result<RbacPermissionsByResources, DbErr>
pub fn role_permissions_by_resources( &self, role_id: RoleId, ) -> Result<RbacPermissionsByResources, DbErr>
Get a list of permissions for the specific role, grouped by resources. This does not include permissions of child roles.
Trait Implementationsยง
Sourceยงimpl Clone for RestrictedConnection
impl Clone for RestrictedConnection
Sourceยงfn clone(&self) -> RestrictedConnection
fn clone(&self) -> RestrictedConnection
1.0.0 ยท Sourceยงfn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSourceยงimpl ConnectionTrait for RestrictedConnection
impl ConnectionTrait for RestrictedConnection
Sourceยงfn get_database_backend(&self) -> DbBackend
fn get_database_backend(&self) -> DbBackend
Sourceยงfn execute_raw(&self, stmt: Statement) -> Result<ExecResult, DbErr>
fn execute_raw(&self, stmt: Statement) -> Result<ExecResult, DbErr>
Sourceยงfn execute<S: StatementBuilder>(&self, stmt: &S) -> Result<ExecResult, DbErr>
fn execute<S: StatementBuilder>(&self, stmt: &S) -> Result<ExecResult, DbErr>
Sourceยงfn execute_unprepared(&self, sql: &str) -> Result<ExecResult, DbErr>
fn execute_unprepared(&self, sql: &str) -> Result<ExecResult, DbErr>
Sourceยงfn query_one_raw(&self, stmt: Statement) -> Result<Option<QueryResult>, DbErr>
fn query_one_raw(&self, stmt: Statement) -> Result<Option<QueryResult>, DbErr>
QueryResultSourceยงfn query_one<S: StatementBuilder>(
&self,
stmt: &S,
) -> Result<Option<QueryResult>, DbErr>
fn query_one<S: StatementBuilder>( &self, stmt: &S, ) -> Result<Option<QueryResult>, DbErr>
QueryResultSourceยงfn query_all_raw(&self, stmt: Statement) -> Result<Vec<QueryResult>, DbErr>
fn query_all_raw(&self, stmt: Statement) -> Result<Vec<QueryResult>, DbErr>
QueryResultSourceยงfn query_all<S: StatementBuilder>(
&self,
stmt: &S,
) -> Result<Vec<QueryResult>, DbErr>
fn query_all<S: StatementBuilder>( &self, stmt: &S, ) -> Result<Vec<QueryResult>, DbErr>
QueryResultSourceยงfn support_returning(&self) -> bool
fn support_returning(&self) -> bool
RETURNING syntax on insert and updateSourceยงfn is_mock_connection(&self) -> bool
fn is_mock_connection(&self) -> bool
Sourceยงimpl Debug for RestrictedConnection
impl Debug for RestrictedConnection
Sourceยงimpl TransactionTrait for RestrictedConnection
impl TransactionTrait for RestrictedConnection
Sourceยงfn transaction<F, T, E>(&self, callback: F) -> Result<T, TransactionError<E>>
fn transaction<F, T, E>(&self, callback: F) -> Result<T, TransactionError<E>>
Execute the function inside a transaction. If the function returns an error, the transaction will be rolled back. If it does not return an error, the transaction will be committed.
Sourceยงfn transaction_with_config<F, T, E>(
&self,
callback: F,
isolation_level: Option<IsolationLevel>,
access_mode: Option<AccessMode>,
) -> Result<T, TransactionError<E>>
fn transaction_with_config<F, T, E>( &self, callback: F, isolation_level: Option<IsolationLevel>, access_mode: Option<AccessMode>, ) -> Result<T, TransactionError<E>>
Execute the function inside a transaction. If the function returns an error, the transaction will be rolled back. If it does not return an error, the transaction will be committed.
Sourceยงtype Transaction = RestrictedTransaction
type Transaction = RestrictedTransaction
Sourceยงfn begin(&self) -> Result<RestrictedTransaction, DbErr>
fn begin(&self) -> Result<RestrictedTransaction, DbErr>
BEGIN transaction.
Returns a Transaction that can be committed or rolled backSourceยงfn begin_with_config(
&self,
isolation_level: Option<IsolationLevel>,
access_mode: Option<AccessMode>,
) -> Result<RestrictedTransaction, DbErr>
fn begin_with_config( &self, isolation_level: Option<IsolationLevel>, access_mode: Option<AccessMode>, ) -> Result<RestrictedTransaction, DbErr>
BEGIN transaction with isolation level and/or access mode.
Returns a Transaction that can be committed or rolled backAuto Trait Implementationsยง
impl Freeze for RestrictedConnection
impl !RefUnwindSafe for RestrictedConnection
impl !Send for RestrictedConnection
impl !Sync for RestrictedConnection
impl Unpin for RestrictedConnection
impl !UnwindSafe for RestrictedConnection
Blanket Implementationsยง
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> 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>
Sourceยงimpl<T> IntoEither for T
impl<T> IntoEither for T
Sourceยงfn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSourceยงfn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more