| @@ 338-352 (lines=15) @@ | ||
| 335 | * |
|
| 336 | * @return bool |
|
| 337 | */ |
|
| 338 | public function canRestore($member = null) { |
|
| 339 | if ($this->allowedAny( |
|
| 340 | [ |
|
| 341 | DNRoot::ALLOW_PROD_SNAPSHOT, |
|
| 342 | DNRoot::ALLOW_NON_PROD_SNAPSHOT |
|
| 343 | ], |
|
| 344 | $member |
|
| 345 | ) |
|
| 346 | ) { |
|
| 347 | return true; |
|
| 348 | } |
|
| 349 | ||
| 350 | return (bool) $this->Environments()->filterByCallback(function ($env) use ($member) { |
|
| 351 | return $env->canRestore($member); |
|
| 352 | })->Count(); |
|
| 353 | } |
|
| 354 | ||
| 355 | /** |
|
| @@ 359-373 (lines=15) @@ | ||
| 356 | * @param Member|null $member |
|
| 357 | * @return bool |
|
| 358 | */ |
|
| 359 | public function canBackup($member = null) { |
|
| 360 | if ($this->allowedAny( |
|
| 361 | [ |
|
| 362 | DNRoot::ALLOW_PROD_SNAPSHOT, |
|
| 363 | DNRoot::ALLOW_NON_PROD_SNAPSHOT |
|
| 364 | ], |
|
| 365 | $member |
|
| 366 | ) |
|
| 367 | ) { |
|
| 368 | return true; |
|
| 369 | } |
|
| 370 | ||
| 371 | return (bool) $this->Environments()->filterByCallback(function ($env) use ($member) { |
|
| 372 | return $env->canBackup($member); |
|
| 373 | })->Count(); |
|
| 374 | } |
|
| 375 | ||
| 376 | /** |
|
| @@ 380-394 (lines=15) @@ | ||
| 377 | * @param Member|null $member |
|
| 378 | * @return bool |
|
| 379 | */ |
|
| 380 | public function canUploadArchive($member = null) { |
|
| 381 | if ($this->allowedAny( |
|
| 382 | [ |
|
| 383 | DNRoot::ALLOW_PROD_SNAPSHOT, |
|
| 384 | DNRoot::ALLOW_NON_PROD_SNAPSHOT |
|
| 385 | ], |
|
| 386 | $member |
|
| 387 | ) |
|
| 388 | ) { |
|
| 389 | return true; |
|
| 390 | } |
|
| 391 | ||
| 392 | return (bool) $this->Environments()->filterByCallback(function ($env) use ($member) { |
|
| 393 | return $env->canUploadArchive($member); |
|
| 394 | })->Count(); |
|
| 395 | } |
|
| 396 | ||
| 397 | /** |
|
| @@ 401-415 (lines=15) @@ | ||
| 398 | * @param Member|null $member |
|
| 399 | * @return bool |
|
| 400 | */ |
|
| 401 | public function canDownloadArchive($member = null) { |
|
| 402 | if ($this->allowedAny( |
|
| 403 | [ |
|
| 404 | DNRoot::ALLOW_PROD_SNAPSHOT, |
|
| 405 | DNRoot::ALLOW_NON_PROD_SNAPSHOT |
|
| 406 | ], |
|
| 407 | $member |
|
| 408 | ) |
|
| 409 | ) { |
|
| 410 | return true; |
|
| 411 | } |
|
| 412 | ||
| 413 | return (bool) $this->Environments()->filterByCallback(function ($env) use ($member) { |
|
| 414 | return $env->canDownloadArchive($member); |
|
| 415 | })->Count(); |
|
| 416 | } |
|
| 417 | ||
| 418 | /** |
|