pub struct TableAccessPolicy {
pub operations: BTreeSet<AccessOperation>,
pub denied_operations: BTreeSet<AccessOperation>,
pub read_columns: ColumnRule,
pub write_columns: ColumnRule,
pub returning_columns: ColumnRule,
pub require_any_role: BTreeSet<String>,
pub require_scopes: BTreeSet<String>,
}Expand description
Access rule for one table.
Fields§
§operations: BTreeSet<AccessOperation>Allowed operations.
denied_operations: BTreeSet<AccessOperation>Explicitly denied operations.
read_columns: ColumnRuleRead projection rule.
write_columns: ColumnRuleWrite payload rule.
returning_columns: ColumnRuleRETURNING projection rule. Enforced together with read_columns.
require_any_role: BTreeSet<String>At least one of these roles is required. Empty means no role gate.
require_scopes: BTreeSet<String>All listed scopes are required. Empty means no scope gate.
Implementations§
Source§impl TableAccessPolicy
impl TableAccessPolicy
Sourcepub fn allow_operations<I>(self, operations: I) -> Selfwhere
I: IntoIterator<Item = AccessOperation>,
pub fn allow_operations<I>(self, operations: I) -> Selfwhere
I: IntoIterator<Item = AccessOperation>,
Allow the listed operations.
Sourcepub fn deny_operations<I>(self, operations: I) -> Selfwhere
I: IntoIterator<Item = AccessOperation>,
pub fn deny_operations<I>(self, operations: I) -> Selfwhere
I: IntoIterator<Item = AccessOperation>,
Deny the listed operations even if otherwise allowed.
Sourcepub fn read_columns(self, rule: ColumnRule) -> Self
pub fn read_columns(self, rule: ColumnRule) -> Self
Restrict read projection columns.
Sourcepub fn write_columns(self, rule: ColumnRule) -> Self
pub fn write_columns(self, rule: ColumnRule) -> Self
Restrict write payload columns.
Sourcepub fn returning_columns(self, rule: ColumnRule) -> Self
pub fn returning_columns(self, rule: ColumnRule) -> Self
Restrict RETURNING columns.
Sourcepub fn require_any_role<I, S>(self, roles: I) -> Self
pub fn require_any_role<I, S>(self, roles: I) -> Self
Require at least one role.
Sourcepub fn require_scopes<I, S>(self, scopes: I) -> Self
pub fn require_scopes<I, S>(self, scopes: I) -> Self
Require all scopes.
Trait Implementations§
Source§impl Clone for TableAccessPolicy
impl Clone for TableAccessPolicy
Source§fn clone(&self) -> TableAccessPolicy
fn clone(&self) -> TableAccessPolicy
Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreSource§impl Debug for TableAccessPolicy
impl Debug for TableAccessPolicy
Source§impl Default for TableAccessPolicy
impl Default for TableAccessPolicy
Source§impl<'de> Deserialize<'de> for TableAccessPolicy
impl<'de> Deserialize<'de> for TableAccessPolicy
Source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
Deserialize this value from the given Serde deserializer. Read more
impl Eq for TableAccessPolicy
Source§impl PartialEq for TableAccessPolicy
impl PartialEq for TableAccessPolicy
Source§fn eq(&self, other: &TableAccessPolicy) -> bool
fn eq(&self, other: &TableAccessPolicy) -> bool
Tests for
self and other values to be equal, and is used by ==.Source§impl Serialize for TableAccessPolicy
impl Serialize for TableAccessPolicy
impl StructuralPartialEq for TableAccessPolicy
Auto Trait Implementations§
impl Freeze for TableAccessPolicy
impl RefUnwindSafe for TableAccessPolicy
impl Send for TableAccessPolicy
impl Sync for TableAccessPolicy
impl Unpin for TableAccessPolicy
impl UnsafeUnpin for TableAccessPolicy
impl UnwindSafe for TableAccessPolicy
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
Mutably borrows from an owned value. Read more