pub enum AccessDenied {
CapabilityDenied {
operation: String,
required: Capability,
available: Capability,
},
ResourceDenied(SandboxError),
SessionDenied(String),
}Expand description
Unified error for access denied across all permission layers.
Callers can match on the variant to determine which layer denied access and provide appropriate user feedback.
§Example
use orcs_auth::{AccessDenied, Capability};
let err = AccessDenied::CapabilityDenied {
operation: "write".to_string(),
required: Capability::WRITE,
available: Capability::READ,
};
assert!(err.to_string().contains("write"));Variants§
CapabilityDenied
Operation requires a capability the entity does not have.
Fields
§
required: CapabilityThe capability required for the operation.
§
available: CapabilityThe capabilities actually available to the entity.
ResourceDenied(SandboxError)
Resource access denied by sandbox policy.
SessionDenied(String)
Session does not have sufficient privilege for the operation.
Implementations§
Trait Implementations§
Source§impl Debug for AccessDenied
impl Debug for AccessDenied
Source§impl Display for AccessDenied
impl Display for AccessDenied
Source§impl Error for AccessDenied
impl Error for AccessDenied
Source§fn source(&self) -> Option<&(dyn Error + 'static)>
fn source(&self) -> Option<&(dyn Error + 'static)>
Returns the lower-level source of this error, if any. Read more
1.0.0 · Source§fn description(&self) -> &str
fn description(&self) -> &str
👎Deprecated since 1.42.0: use the Display impl or to_string()
Source§impl From<SandboxError> for AccessDenied
impl From<SandboxError> for AccessDenied
Source§fn from(source: SandboxError) -> AccessDenied
fn from(source: SandboxError) -> AccessDenied
Converts to this type from the input type.
Auto Trait Implementations§
impl Freeze for AccessDenied
impl !RefUnwindSafe for AccessDenied
impl Send for AccessDenied
impl Sync for AccessDenied
impl Unpin for AccessDenied
impl UnsafeUnpin for AccessDenied
impl !UnwindSafe for AccessDenied
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