Code Duplication    Length = 23-23 lines in 2 locations

code/model/DNEnvironment.php 2 locations

@@ 463-485 (lines=23) @@
460
	 * @param Member|null $member The {@link Member} object to test against. If null, uses Member::currentMember();
461
	 * @return boolean true if $member can backup, and false if they can't.
462
	 */
463
	public function canBackup($member = null) {
464
		$project = $this->Project();
465
		if($project->HasDiskQuota() && $project->HasExceededDiskQuota()) {
466
			return false;
467
		}
468
469
		if(!$member) {
470
			$member = Member::currentUser();
471
		}
472
		// Must be logged in to check permissions
473
		if(!$member) {
474
			return false;
475
		}
476
477
		if ($this->Usage==='Production' || $this->Usage==='Unspecified') {
478
			if ($this->Project()->allowed(DNRoot::ALLOW_PROD_SNAPSHOT, $member)) return true;
479
		} else {
480
			if ($this->Project()->allowed(DNRoot::ALLOW_NON_PROD_SNAPSHOT, $member)) return true;
481
		}
482
483
		return $this->CanBackupMembers()->byID($member->ID)
484
			|| $member->inGroups($this->CanBackupGroups());
485
	}
486
487
	/**
488
	 * Allows only selected {@link Member} objects to upload {@link DNDataArchive} objects linked to this
@@ 498-520 (lines=23) @@
495
	 * @param Member|null $member The {@link Member} object to test against. If null, uses Member::currentMember();
496
	 * @return boolean true if $member can upload archives linked to this environment, false if they can't.
497
	 */
498
	public function canUploadArchive($member = null) {
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)) return true;
514
		} else {
515
			if ($this->Project()->allowed(DNRoot::ALLOW_NON_PROD_SNAPSHOT, $member)) return true;
516
		}
517
518
		return $this->ArchiveUploaders()->byID($member->ID)
519
			|| $member->inGroups($this->ArchiveUploaderGroups());
520
	}
521
522
	/**
523
	 * Allows only selected {@link Member} objects to download {@link DNDataArchive} objects from this