Enum holochain_types::prelude::CapGrant
[−]pub enum CapGrant {
ChainAuthor(HoloHash<Agent>),
RemoteAgent(ZomeCallCapGrant),
}
Expand description
Represents a potentially valid access grant to a zome call. Zome call response will be Unauthorized without a valid grant.
The CapGrant is not always a dedicated entry in the chain. Notably AgentPubKey entries in the current chain act like root access to local zome calls.
A CapGrant
is valid if it matches the function, agent and secret for a given zome call.
See .is_valid()
Variants
ChainAuthor(HoloHash<Agent>)
Grants the capability of calling every extern to the calling agent, provided the calling
agent is the local chain author.
This grant is compared to the current Entry::Agent
entry on the source chain.
RemoteAgent(ZomeCallCapGrant)
Any agent other than the chain author is attempting to call an extern. The pubkey of the calling agent is secured by the cryptographic handshake at the network layer and the caller must provide a secret that we check for in a private entry in the local chain.
Implementations
impl CapGrant
impl CapGrant
pub fn is_valid(
&self,
check_function: &(ZomeName, FunctionName),
check_agent: &HoloHash<Agent>,
check_secret: Option<&CapSecret>
) -> bool
pub fn is_valid(
&self,
check_function: &(ZomeName, FunctionName),
check_agent: &HoloHash<Agent>,
check_secret: Option<&CapSecret>
) -> bool
Given a grant, is it valid in isolation? In a world of CRUD, some new entry might update or delete an existing one, but we can check if a grant is valid in a standalone way.
Trait Implementations
impl<'de> Deserialize<'de> for CapGrant
impl<'de> Deserialize<'de> for CapGrant
fn deserialize<__D>(
__deserializer: __D
) -> Result<CapGrant, <__D as Deserializer<'de>>::Error> where
__D: Deserializer<'de>,
fn deserialize<__D>(
__deserializer: __D
) -> Result<CapGrant, <__D as Deserializer<'de>>::Error> where
__D: Deserializer<'de>,
Deserialize this value from the given Serde deserializer. Read more
impl From<ZomeCallCapGrant> for CapGrant
impl From<ZomeCallCapGrant> for CapGrant
fn from(zccg: ZomeCallCapGrant) -> CapGrant
fn from(zccg: ZomeCallCapGrant) -> CapGrant
Create a new ZomeCall capability grant
impl Serialize for CapGrant
impl Serialize for CapGrant
fn serialize<__S>(
&self,
__serializer: __S
) -> Result<<__S as Serializer>::Ok, <__S as Serializer>::Error> where
__S: Serializer,
fn serialize<__S>(
&self,
__serializer: __S
) -> Result<<__S as Serializer>::Ok, <__S as Serializer>::Error> where
__S: Serializer,
Serialize this value into the given Serde serializer. Read more
impl Eq for CapGrant
impl StructuralEq for CapGrant
impl StructuralPartialEq for CapGrant
Auto Trait Implementations
impl RefUnwindSafe for CapGrant
impl Send for CapGrant
impl Sync for CapGrant
impl Unpin for CapGrant
impl UnwindSafe for CapGrant
Blanket Implementations
sourceimpl<T> BorrowMut<T> for T where
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized,
const: unstable · sourcefn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
sourceimpl<Q, K> Equivalent<K> for Q where
Q: Eq + ?Sized,
K: Borrow<Q> + ?Sized,
impl<Q, K> Equivalent<K> for Q where
Q: Eq + ?Sized,
K: Borrow<Q> + ?Sized,
sourcefn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
Compare self to key
and return true
if they are equal.
impl<T> FutureExt for T
impl<T> FutureExt for T
fn with_context(self, otel_cx: Context) -> WithContext<Self>
fn with_context(self, otel_cx: Context) -> WithContext<Self>
fn with_current_context(self) -> WithContext<Self>
fn with_current_context(self) -> WithContext<Self>
sourceimpl<T> Instrument for T
impl<T> Instrument for T
sourcefn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
sourcefn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
sourceimpl<T> Instrument for T
impl<T> Instrument for T
sourcefn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Instruments this type with the provided Span
, returning an
Instrumented
wrapper. Read more
sourcefn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
impl<T> Pointable for T
impl<T> Pointable for T
impl<V, T> VZip<V> for T where
V: MultiLane<T>,
impl<V, T> VZip<V> for T where
V: MultiLane<T>,
fn vzip(self) -> V
sourceimpl<T> WithSubscriber for T
impl<T> WithSubscriber for T
sourcefn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self> where
S: Into<Dispatch>,
fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self> where
S: Into<Dispatch>,
Attaches the provided Subscriber
to this type, returning a
WithDispatch
wrapper. Read more
sourcefn with_current_subscriber(self) -> WithDispatch<Self>
fn with_current_subscriber(self) -> WithDispatch<Self>
Attaches the current default Subscriber
to this type, returning a
WithDispatch
wrapper. Read more
sourceimpl<T> WithSubscriber for T
impl<T> WithSubscriber for T
sourcefn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self> where
S: Into<Dispatch>,
fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self> where
S: Into<Dispatch>,
Attaches the provided Subscriber
to this type, returning a
WithDispatch
wrapper. Read more
sourcefn with_current_subscriber(self) -> WithDispatch<Self>
fn with_current_subscriber(self) -> WithDispatch<Self>
Attaches the current default Subscriber
to this type, returning a
WithDispatch
wrapper. Read more