| @@ 457-479 (lines=23) @@ | ||
| 454 | * @param Member|null $member The {@link Member} object to test against. If null, uses Member::currentMember(); |
|
| 455 | * @return boolean true if $member can backup, and false if they can't. |
|
| 456 | */ |
|
| 457 | public function canBackup($member = null) |
|
| 458 | { |
|
| 459 | $project = $this->Project(); |
|
| 460 | if ($project->HasDiskQuota() && $project->HasExceededDiskQuota()) { |
|
| 461 | return false; |
|
| 462 | } |
|
| 463 | ||
| 464 | if (!$member) { |
|
| 465 | $member = Member::currentUser(); |
|
| 466 | } |
|
| 467 | // Must be logged in to check permissions |
|
| 468 | if (!$member) { |
|
| 469 | return false; |
|
| 470 | } |
|
| 471 | ||
| 472 | if ($this->Usage==='Production' || $this->Usage==='Unspecified') { |
|
| 473 | if ($this->Project()->allowed(DNRoot::ALLOW_PROD_SNAPSHOT, $member)) { |
|
| 474 | return true; |
|
| 475 | } |
|
| 476 | } else { |
|
| 477 | if ($this->Project()->allowed(DNRoot::ALLOW_NON_PROD_SNAPSHOT, $member)) { |
|
| 478 | return true; |
|
| 479 | } |
|
| 480 | } |
|
| 481 | ||
| 482 | return $this->CanBackupMembers()->byID($member->ID) |
|
| @@ 497-519 (lines=23) @@ | ||
| 494 | * @param Member|null $member The {@link Member} object to test against. If null, uses Member::currentMember(); |
|
| 495 | * @return boolean true if $member can upload archives linked to this environment, false if they can't. |
|
| 496 | */ |
|
| 497 | public function canUploadArchive($member = null) |
|
| 498 | { |
|
| 499 | $project = $this->Project(); |
|
| 500 | if ($project->HasDiskQuota() && $project->HasExceededDiskQuota()) { |
|
| 501 | return false; |
|
| 502 | } |
|
| 503 | ||
| 504 | if (!$member) { |
|
| 505 | $member = Member::currentUser(); |
|
| 506 | } |
|
| 507 | if (!$member) { |
|
| 508 | return false; |
|
| 509 | } |
|
| 510 | // Must be logged in to check permissions |
|
| 511 | ||
| 512 | if ($this->Usage==='Production' || $this->Usage==='Unspecified') { |
|
| 513 | if ($this->Project()->allowed(DNRoot::ALLOW_PROD_SNAPSHOT, $member)) { |
|
| 514 | return true; |
|
| 515 | } |
|
| 516 | } else { |
|
| 517 | if ($this->Project()->allowed(DNRoot::ALLOW_NON_PROD_SNAPSHOT, $member)) { |
|
| 518 | return true; |
|
| 519 | } |
|
| 520 | } |
|
| 521 | ||
| 522 | return $this->ArchiveUploaders()->byID($member->ID) |
|