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)
| 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)), |
no test coverage detected