Code Duplication    Length = 23-23 lines in 2 locations

code/model/DNEnvironment.php 2 locations

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