pub struct Role {
pub name: String,
/* private fields */
}Expand description
A role with a set of allowed and denied permissions.
Deny rules take precedence over allow rules.
Fields§
§name: StringRole name (e.g., “admin”, “user”, “analyst”).
Implementations§
Source§impl Role
impl Role
Sourcepub fn allow(self, permission: Permission) -> Self
pub fn allow(self, permission: Permission) -> Self
Allow a permission for this role.
Sourcepub fn deny(self, permission: Permission) -> Self
pub fn deny(self, permission: Permission) -> Self
Deny a permission for this role.
Deny rules take precedence over allow rules.
Sourcepub fn can_access(&self, permission: &Permission) -> bool
pub fn can_access(&self, permission: &Permission) -> bool
Check if this role can access the given permission.
Returns true if the permission is allowed and not denied.
Deny rules take precedence over allow rules.
Sourcepub fn allowed_permissions(&self) -> &HashSet<Permission>
pub fn allowed_permissions(&self) -> &HashSet<Permission>
Get all allowed permissions.
Sourcepub fn denied_permissions(&self) -> &HashSet<Permission>
pub fn denied_permissions(&self) -> &HashSet<Permission>
Get all denied permissions.
Trait Implementations§
Source§impl<'de> Deserialize<'de> for Role
impl<'de> Deserialize<'de> for Role
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
Auto Trait Implementations§
impl Freeze for Role
impl RefUnwindSafe for Role
impl Send for Role
impl Sync for Role
impl Unpin for Role
impl UnwindSafe for Role
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