Code Duplication    Length = 18-18 lines in 4 locations

code/model/DNEnvironment.php 4 locations

@@ 395-412 (lines=18) @@
392
     * @param Member|null $member
393
     * @return boolean
394
     */
395
    public function canDeploy($member = null)
396
    {
397
        if (!$member) {
398
            $member = Member::currentUser();
399
        }
400
        if (!$member) {
401
            return false;
402
        }
403
        // Must be logged in to check permissions
404
405
        if ($this->Usage==='Production' || $this->Usage==='Unspecified') {
406
            if ($this->Project()->allowed(DNRoot::ALLOW_PROD_DEPLOYMENT, $member)) {
407
                return true;
408
            }
409
        } else {
410
            if ($this->Project()->allowed(DNRoot::ALLOW_NON_PROD_DEPLOYMENT, $member)) {
411
                return true;
412
            }
413
        }
414
415
        return $this->Deployers()->byID($member->ID)
@@ 426-443 (lines=18) @@
423
     * @param Member|null $member The {@link Member} object to test against. If null, uses Member::currentMember();
424
     * @return boolean true if $member can restore, and false if they can't.
425
     */
426
    public function canRestore($member = null)
427
    {
428
        if (!$member) {
429
            $member = Member::currentUser();
430
        }
431
        if (!$member) {
432
            return false;
433
        }
434
        // Must be logged in to check permissions
435
436
        if ($this->Usage==='Production' || $this->Usage==='Unspecified') {
437
            if ($this->Project()->allowed(DNRoot::ALLOW_PROD_SNAPSHOT, $member)) {
438
                return true;
439
            }
440
        } else {
441
            if ($this->Project()->allowed(DNRoot::ALLOW_NON_PROD_SNAPSHOT, $member)) {
442
                return true;
443
            }
444
        }
445
446
        return $this->CanRestoreMembers()->byID($member->ID)
@@ 533-550 (lines=18) @@
530
     * @param Member|null $member The {@link Member} object to test against. If null, uses Member::currentMember();
531
     * @return boolean true if $member can download archives from this environment, false if they can't.
532
     */
533
    public function canDownloadArchive($member = null)
534
    {
535
        if (!$member) {
536
            $member = Member::currentUser();
537
        }
538
        if (!$member) {
539
            return false;
540
        }
541
        // Must be logged in to check permissions
542
543
        if ($this->Usage==='Production' || $this->Usage==='Unspecified') {
544
            if ($this->Project()->allowed(DNRoot::ALLOW_PROD_SNAPSHOT, $member)) {
545
                return true;
546
            }
547
        } else {
548
            if ($this->Project()->allowed(DNRoot::ALLOW_NON_PROD_SNAPSHOT, $member)) {
549
                return true;
550
            }
551
        }
552
553
        return $this->ArchiveDownloaders()->byID($member->ID)
@@ 609-626 (lines=18) @@
606
     * @param Member|null $member The {@link Member} object to test against. If null, uses Member::currentMember();
607
     * @return boolean true if $member can delete archives from this environment, false if they can't.
608
     */
609
    public function canDeleteArchive($member = null)
610
    {
611
        if (!$member) {
612
            $member = Member::currentUser();
613
        }
614
        if (!$member) {
615
            return false;
616
        }
617
        // Must be logged in to check permissions
618
619
        if ($this->Usage==='Production' || $this->Usage==='Unspecified') {
620
            if ($this->Project()->allowed(DNRoot::ALLOW_PROD_SNAPSHOT, $member)) {
621
                return true;
622
            }
623
        } else {
624
            if ($this->Project()->allowed(DNRoot::ALLOW_NON_PROD_SNAPSHOT, $member)) {
625
                return true;
626
            }
627
        }
628
629
        return $this->ArchiveDeleters()->byID($member->ID)