@@ 454-476 (lines=23) @@ | ||
451 | * @param Member|null $member The {@link Member} object to test against. If null, uses Member::currentMember(); |
|
452 | * @return boolean true if $member can backup, and false if they can't. |
|
453 | */ |
|
454 | public function canBackup($member = null) { |
|
455 | $project = $this->Project(); |
|
456 | if($project->HasDiskQuota() && $project->HasExceededDiskQuota()) { |
|
457 | return false; |
|
458 | } |
|
459 | ||
460 | if(!$member) { |
|
461 | $member = Member::currentUser(); |
|
462 | } |
|
463 | // Must be logged in to check permissions |
|
464 | if(!$member) { |
|
465 | return false; |
|
466 | } |
|
467 | ||
468 | if ($this->Usage==='Production' || $this->Usage==='Unspecified') { |
|
469 | if ($this->Project()->allowed(DNRoot::ALLOW_PROD_SNAPSHOT, $member)) return true; |
|
470 | } else { |
|
471 | if ($this->Project()->allowed(DNRoot::ALLOW_NON_PROD_SNAPSHOT, $member)) return true; |
|
472 | } |
|
473 | ||
474 | return $this->CanBackupMembers()->byID($member->ID) |
|
475 | || $member->inGroups($this->CanBackupGroups()); |
|
476 | } |
|
477 | ||
478 | /** |
|
479 | * Allows only selected {@link Member} objects to upload {@link DNDataArchive} objects linked to this |
|
@@ 489-511 (lines=23) @@ | ||
486 | * @param Member|null $member The {@link Member} object to test against. If null, uses Member::currentMember(); |
|
487 | * @return boolean true if $member can upload archives linked to this environment, false if they can't. |
|
488 | */ |
|
489 | public function canUploadArchive($member = null) { |
|
490 | $project = $this->Project(); |
|
491 | if($project->HasDiskQuota() && $project->HasExceededDiskQuota()) { |
|
492 | return false; |
|
493 | } |
|
494 | ||
495 | if(!$member) { |
|
496 | $member = Member::currentUser(); |
|
497 | } |
|
498 | if(!$member) { |
|
499 | return false; |
|
500 | } |
|
501 | // Must be logged in to check permissions |
|
502 | ||
503 | if ($this->Usage==='Production' || $this->Usage==='Unspecified') { |
|
504 | if ($this->Project()->allowed(DNRoot::ALLOW_PROD_SNAPSHOT, $member)) return true; |
|
505 | } else { |
|
506 | if ($this->Project()->allowed(DNRoot::ALLOW_NON_PROD_SNAPSHOT, $member)) return true; |
|
507 | } |
|
508 | ||
509 | return $this->ArchiveUploaders()->byID($member->ID) |
|
510 | || $member->inGroups($this->ArchiveUploaderGroups()); |
|
511 | } |
|
512 | ||
513 | /** |
|
514 | * Allows only selected {@link Member} objects to download {@link DNDataArchive} objects from this |