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

Method to_expanded_list

core/station/impl/src/models/resource.rs:299–733  ·  view source on GitHub ↗

Returns the expanded list of resources that the resource represents. E.g. if the resource is for account_id = 1, it will also return the resource for account_id = any.

(&self)

Source from the content-addressed store, hash-verified

297 ///
298 /// E.g. if the resource is for account_id = 1, it will also return the resource for account_id = any.
299 pub fn to_expanded_list(&self) -> Vec<Resource> {
300 match self {
301 Resource::Account(action) => match action {
302 AccountResourceAction::List => vec![Resource::Account(AccountResourceAction::List)],
303 AccountResourceAction::Create => {
304 vec![Resource::Account(AccountResourceAction::Create)]
305 }
306 AccountResourceAction::Transfer(ResourceId::Id(id)) => {
307 vec![
308 Resource::Account(AccountResourceAction::Transfer(ResourceId::Id(*id))),
309 Resource::Account(AccountResourceAction::Transfer(ResourceId::Any)),
310 ]
311 }
312 AccountResourceAction::Read(ResourceId::Id(id)) => {
313 vec![
314 Resource::Account(AccountResourceAction::Read(ResourceId::Id(*id))),
315 Resource::Account(AccountResourceAction::Read(ResourceId::Any)),
316 ]
317 }
318 AccountResourceAction::Update(ResourceId::Id(id)) => {
319 vec![
320 Resource::Account(AccountResourceAction::Update(ResourceId::Id(*id))),
321 Resource::Account(AccountResourceAction::Update(ResourceId::Any)),
322 ]
323 }
324 AccountResourceAction::Transfer(ResourceId::Any) => {
325 vec![Resource::Account(AccountResourceAction::Transfer(
326 ResourceId::Any,
327 ))]
328 }
329 AccountResourceAction::Read(ResourceId::Any) => {
330 vec![Resource::Account(AccountResourceAction::Read(
331 ResourceId::Any,
332 ))]
333 }
334 AccountResourceAction::Update(ResourceId::Any) => {
335 vec![Resource::Account(AccountResourceAction::Update(
336 ResourceId::Any,
337 ))]
338 }
339 },
340 Resource::Permission(action) => match action {
341 PermissionResourceAction::Read => {
342 vec![
343 Resource::Permission(PermissionResourceAction::Read),
344 Resource::Permission(PermissionResourceAction::Update),
345 ]
346 }
347 PermissionResourceAction::Update => {
348 vec![Resource::Permission(PermissionResourceAction::Update)]
349 }
350 },
351 Resource::AddressBook(action) => match action {
352 ResourceAction::Create => vec![Resource::AddressBook(ResourceAction::Create)],
353 ResourceAction::Delete(ResourceId::Id(id)) => {
354 vec![
355 Resource::AddressBook(ResourceAction::Delete(ResourceId::Id(*id))),
356 Resource::AddressBook(ResourceAction::Delete(ResourceId::Any)),

Callers 1

is_allowedMethod · 0.80

Calls 3

ExternalCanisterClass · 0.70
AssetClass · 0.70
NamedRuleClass · 0.70

Tested by

no test coverage detected