Code Duplication    Length = 23-23 lines in 2 locations

code/model/DNEnvironment.php 2 locations

@@ 440-462 (lines=23) @@
437
	 * @param Member|null $member The {@link Member} object to test against. If null, uses Member::currentMember();
438
	 * @return boolean true if $member can backup, and false if they can't.
439
	 */
440
	public function canBackup($member = null) {
441
		$project = $this->Project();
442
		if($project->HasDiskQuota() && $project->HasExceededDiskQuota()) {
443
			return false;
444
		}
445
446
		if(!$member) {
447
			$member = Member::currentUser();
448
		}
449
		// Must be logged in to check permissions
450
		if(!$member) {
451
			return false;
452
		}
453
454
		if ($this->Usage==='Production' || $this->Usage==='Unspecified') {
455
			if ($this->Project()->allowed(DNRoot::ALLOW_PROD_SNAPSHOT, $member)) return true;
456
		} else {
457
			if ($this->Project()->allowed(DNRoot::ALLOW_NON_PROD_SNAPSHOT, $member)) return true;
458
		}
459
460
		return $this->CanBackupMembers()->byID($member->ID)
461
			|| $member->inGroups($this->CanBackupGroups());
462
	}
463
464
	/**
465
	 * Allows only selected {@link Member} objects to upload {@link DNDataArchive} objects linked to this
@@ 475-497 (lines=23) @@
472
	 * @param Member|null $member The {@link Member} object to test against. If null, uses Member::currentMember();
473
	 * @return boolean true if $member can upload archives linked to this environment, false if they can't.
474
	 */
475
	public function canUploadArchive($member = null) {
476
		$project = $this->Project();
477
		if($project->HasDiskQuota() && $project->HasExceededDiskQuota()) {
478
			return false;
479
		}
480
481
		if(!$member) {
482
			$member = Member::currentUser();
483
		}
484
		if(!$member) {
485
			return false;
486
		}
487
		// Must be logged in to check permissions
488
489
		if ($this->Usage==='Production' || $this->Usage==='Unspecified') {
490
			if ($this->Project()->allowed(DNRoot::ALLOW_PROD_SNAPSHOT, $member)) return true;
491
		} else {
492
			if ($this->Project()->allowed(DNRoot::ALLOW_NON_PROD_SNAPSHOT, $member)) return true;
493
		}
494
495
		return $this->ArchiveUploaders()->byID($member->ID)
496
			|| $member->inGroups($this->ArchiveUploaderGroups());
497
	}
498
499
	/**
500
	 * Allows only selected {@link Member} objects to download {@link DNDataArchive} objects from this