Code Duplication    Length = 23-23 lines in 2 locations

code/model/DNEnvironment.php 2 locations

@@ 376-398 (lines=23) @@
373
	 * @param Member|null $member The {@link Member} object to test against. If null, uses Member::currentMember();
374
	 * @return boolean true if $member can backup, and false if they can't.
375
	 */
376
	public function canBackup($member = null) {
377
		$project = $this->Project();
378
		if ($project->HasDiskQuota() && $project->HasExceededDiskQuota()) {
379
			return false;
380
		}
381
382
		if (!$member) {
383
			$member = Member::currentUser();
384
		}
385
		// Must be logged in to check permissions
386
		if (!$member) {
387
			return false;
388
		}
389
390
		if ($this->Usage === self::PRODUCTION || $this->Usage === self::UNSPECIFIED) {
391
			if ($this->Project()->allowed(DNRoot::ALLOW_PROD_SNAPSHOT, $member)) {
392
				return true;
393
			}
394
		} else {
395
			if ($this->Project()->allowed(DNRoot::ALLOW_NON_PROD_SNAPSHOT, $member)) {
396
				return true;
397
			}
398
		}
399
400
		return $this->CanBackupMembers()->byID($member->ID)
401
		|| $member->inGroups($this->CanBackupGroups());
@@ 415-437 (lines=23) @@
412
	 * @param Member|null $member The {@link Member} object to test against. If null, uses Member::currentMember();
413
	 * @return boolean true if $member can upload archives linked to this environment, false if they can't.
414
	 */
415
	public function canUploadArchive($member = null) {
416
		$project = $this->Project();
417
		if ($project->HasDiskQuota() && $project->HasExceededDiskQuota()) {
418
			return false;
419
		}
420
421
		if (!$member) {
422
			$member = Member::currentUser();
423
		}
424
		if (!$member) {
425
			return false;
426
		}
427
		// Must be logged in to check permissions
428
429
		if ($this->Usage === self::PRODUCTION || $this->Usage === self::UNSPECIFIED) {
430
			if ($this->Project()->allowed(DNRoot::ALLOW_PROD_SNAPSHOT, $member)) {
431
				return true;
432
			}
433
		} else {
434
			if ($this->Project()->allowed(DNRoot::ALLOW_NON_PROD_SNAPSHOT, $member)) {
435
				return true;
436
			}
437
		}
438
439
		return $this->ArchiveUploaders()->byID($member->ID)
440
		|| $member->inGroups($this->ArchiveUploaderGroups());