MCPcopy Create free account
hub / github.com/dfinity/orbit / assert_transfer_access

Method assert_transfer_access

core/station/impl/src/services/transfer.rs:84–98  ·  view source on GitHub ↗
(&self, transfer: &Transfer, ctx: &CallContext)

Source from the content-addressed store, hash-verified

82 }
83
84 fn assert_transfer_access(&self, transfer: &Transfer, ctx: &CallContext) -> ServiceResult<()> {
85 let caller_user = self.user_service.get_user_by_identity(&ctx.caller())?;
86 let is_transfer_creator = caller_user.id == transfer.initiator_user;
87 let has_account_access = Authorization::is_allowed(
88 ctx,
89 &Resource::Account(AccountResourceAction::Read(ResourceId::Id(
90 transfer.from_account,
91 ))),
92 );
93 if !is_transfer_creator && !has_account_access {
94 Err(AccountError::Forbidden)?
95 }
96
97 Ok(())
98 }
99}
100
101#[cfg(test)]

Callers 2

get_transferMethod · 0.80
get_transfersMethod · 0.80

Calls 3

AccountClass · 0.50
get_user_by_identityMethod · 0.45
callerMethod · 0.45

Tested by

no test coverage detected