Code Duplication    Length = 23-23 lines in 2 locations

code/model/DNEnvironment.php 2 locations

@@ 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