Code Duplication    Length = 23-23 lines in 2 locations

code/model/DNEnvironment.php 2 locations

@@ 366-388 (lines=23) @@
363
	 * @param Member|null $member The {@link Member} object to test against. If null, uses Member::currentMember();
364
	 * @return boolean true if $member can backup, and false if they can't.
365
	 */
366
	public function canBackup($member = null) {
367
		$project = $this->Project();
368
		if($project->HasDiskQuota() && $project->HasExceededDiskQuota()) {
369
			return false;
370
		}
371
372
		if(!$member) {
373
			$member = Member::currentUser();
374
		}
375
		// Must be logged in to check permissions
376
		if(!$member) {
377
			return false;
378
		}
379
380
		if ($this->Usage === self::PRODUCTION || $this->Usage === self::UNSPECIFIED) {
381
			if ($this->Project()->allowed(DNRoot::ALLOW_PROD_SNAPSHOT, $member)) return true;
382
		} else {
383
			if ($this->Project()->allowed(DNRoot::ALLOW_NON_PROD_SNAPSHOT, $member)) return true;
384
		}
385
386
		return $this->CanBackupMembers()->byID($member->ID)
387
			|| $member->inGroups($this->CanBackupGroups());
388
	}
389
390
	/**
391
	 * Allows only selected {@link Member} objects to upload {@link DNDataArchive} objects linked to this
@@ 401-423 (lines=23) @@
398
	 * @param Member|null $member The {@link Member} object to test against. If null, uses Member::currentMember();
399
	 * @return boolean true if $member can upload archives linked to this environment, false if they can't.
400
	 */
401
	public function canUploadArchive($member = null) {
402
		$project = $this->Project();
403
		if($project->HasDiskQuota() && $project->HasExceededDiskQuota()) {
404
			return false;
405
		}
406
407
		if(!$member) {
408
			$member = Member::currentUser();
409
		}
410
		if(!$member) {
411
			return false;
412
		}
413
		// Must be logged in to check permissions
414
415
		if ($this->Usage === self::PRODUCTION || $this->Usage === self::UNSPECIFIED) {
416
			if ($this->Project()->allowed(DNRoot::ALLOW_PROD_SNAPSHOT, $member)) return true;
417
		} else {
418
			if ($this->Project()->allowed(DNRoot::ALLOW_NON_PROD_SNAPSHOT, $member)) return true;
419
		}
420
421
		return $this->ArchiveUploaders()->byID($member->ID)
422
			|| $member->inGroups($this->ArchiveUploaderGroups());
423
	}
424
425
	/**
426
	 * Allows only selected {@link Member} objects to download {@link DNDataArchive} objects from this