@@ -75,6 +75,7 @@ discard block  | 
                                                    ||
| 75 | 75 | }  | 
                                                        
| 76 | 76 | |
| 77 | 77 | /**  | 
                                                        
| 78 | + * @param string $code  | 
                                                        |
| 78 | 79 | */  | 
                                                        
| 79 | 80 |  	public function setActionCode($code) { | 
                                                        
| 80 | 81 | $this->actionCode = $code;  | 
                                                        
@@ -89,6 +90,7 @@ discard block  | 
                                                    ||
| 89 | 90 | |
| 90 | 91 | /**  | 
                                                        
| 91 | 92 | * @param int  | 
                                                        
| 93 | + * @param string $seconds  | 
                                                        |
| 92 | 94 | */  | 
                                                        
| 93 | 95 |  	public function setEstimatedTime($seconds) { | 
                                                        
| 94 | 96 | $this->estimatedTime = $seconds;  | 
                                                        
@@ -130,10 +130,10 @@  | 
                                                    ||
| 130 | 130 | */  | 
                                                        
| 131 | 131 |  	public function getChangesModificationNeeded() { | 
                                                        
| 132 | 132 | $filtered = [];  | 
                                                        
| 133 | -		foreach ($this->changes as $change => $details) { | 
                                                        |
| 134 | -			if (array_key_exists('description', $details)) { | 
                                                        |
| 133 | +		foreach($this->changes as $change => $details) { | 
                                                        |
| 134 | +			if(array_key_exists('description', $details)) { | 
                                                        |
| 135 | 135 | $filtered[$change] = $details;  | 
                                                        
| 136 | - } else if (  | 
                                                        |
| 136 | + } else if(  | 
                                                        |
| 137 | 137 |  				(array_key_exists('from', $details) || array_key_exists('to', $details)) | 
                                                        
| 138 | 138 | && $details['from'] !== $details['to']  | 
                                                        
| 139 | 139 |  			) { | 
                                                        
@@ -110,8 +110,12 @@  | 
                                                    ||
| 110 | 110 | // Normalise "empty" values into dashes so comparisons are done properly.  | 
                                                        
| 111 | 111 | // This means there is no diference between an empty string and a null  | 
                                                        
| 112 | 112 | // but "0" is considered to be non-empty.  | 
                                                        
| 113 | - if(empty($from) && !strlen($from)) $from = '-';  | 
                                                        |
| 114 | - if(empty($to) && !strlen($to)) $to = '-';  | 
                                                        |
| 113 | +		if(empty($from) && !strlen($from)) { | 
                                                        |
| 114 | + $from = '-';  | 
                                                        |
| 115 | + }  | 
                                                        |
| 116 | +		if(empty($to) && !strlen($to)) { | 
                                                        |
| 117 | + $to = '-';  | 
                                                        |
| 118 | + }  | 
                                                        |
| 115 | 119 | |
| 116 | 120 | return $this->changes[$title] = array(  | 
                                                        
| 117 | 121 | 'from' => $from,  | 
                                                        
@@ -63,7 +63,7 @@ discard block  | 
                                                    ||
| 63 | 63 | */  | 
                                                        
| 64 | 64 |  	public function asJSONValidatorErrors($code, $validatorErrors) { | 
                                                        
| 65 | 65 | $fieldErrors = [];  | 
                                                        
| 66 | -		foreach ($validatorErrors as $error) { | 
                                                        |
| 66 | +		foreach($validatorErrors as $error) { | 
                                                        |
| 67 | 67 | $fieldErrors[$error['fieldName']] = $error['message'];  | 
                                                        
| 68 | 68 | }  | 
                                                        
| 69 | 69 | return $this->asJSONFormFieldErrors($code, $fieldErrors);  | 
                                                        
@@ -105,7 +105,7 @@ discard block  | 
                                                    ||
| 105 | 105 | // To get around that, upon spotting an active redirect, we change the response code to 200,  | 
                                                        
| 106 | 106 | // and move the redirect into the "RedirectTo" field in the JSON response. Frontend can  | 
                                                        
| 107 | 107 | // then interpret this and trigger a redirect.  | 
                                                        
| 108 | -		if ($this->redirectedTo()) { | 
                                                        |
| 108 | +		if($this->redirectedTo()) { | 
                                                        |
| 109 | 109 |  			$data['RedirectTo'] = $this->response->getHeader('Location'); | 
                                                        
| 110 | 110 | // Pop off the header - we are no longer redirecting via the usual mechanism.  | 
                                                        
| 111 | 111 |  			$this->response->removeHeader('Location'); | 
                                                        
@@ -36,13 +36,17 @@ discard block  | 
                                                    ||
| 36 | 36 | }  | 
                                                        
| 37 | 37 | |
| 38 | 38 |  	protected function getSecurityToken($name = null) { | 
                                                        
| 39 | -		if(is_null($name)) $name = sprintf('%sSecurityID', get_class($this)); | 
                                                        |
| 39 | +		if(is_null($name)) { | 
                                                        |
| 40 | +			$name = sprintf('%sSecurityID', get_class($this)); | 
                                                        |
| 41 | + }  | 
                                                        |
| 40 | 42 | return new \SecurityToken($name);  | 
                                                        
| 41 | 43 | }  | 
                                                        
| 42 | 44 | |
| 43 | 45 |  	protected function checkSecurityToken($name = null) { | 
                                                        
| 44 | 46 | $postVar = is_null($name) ? 'SecurityID' : $name;  | 
                                                        
| 45 | -		if(is_null($name)) $name = sprintf('%sSecurityID', get_class($this)); | 
                                                        |
| 47 | +		if(is_null($name)) { | 
                                                        |
| 48 | +			$name = sprintf('%sSecurityID', get_class($this)); | 
                                                        |
| 49 | + }  | 
                                                        |
| 46 | 50 | $securityToken = $this->getSecurityToken($name);  | 
                                                        
| 47 | 51 | |
| 48 | 52 | // By default the security token is always represented by a "SecurityID" post var,  | 
                                                        
@@ -132,7 +136,9 @@ discard block  | 
                                                    ||
| 132 | 136 | */  | 
                                                        
| 133 | 137 |  	protected function trimWhitespace($val) { | 
                                                        
| 134 | 138 |  		if(is_array($val)) { | 
                                                        
| 135 | - foreach($val as $k => $v) $val[$k] = $this->trimWhitespace($v);  | 
                                                        |
| 139 | +			foreach($val as $k => $v) { | 
                                                        |
| 140 | + $val[$k] = $this->trimWhitespace($v);  | 
                                                        |
| 141 | + }  | 
                                                        |
| 136 | 142 | return $val;  | 
                                                        
| 137 | 143 |  		} else { | 
                                                        
| 138 | 144 | return trim($val);  | 
                                                        
@@ -147,7 +153,9 @@ discard block  | 
                                                    ||
| 147 | 153 | */  | 
                                                        
| 148 | 154 |  	protected function stripNonPrintables($val) { | 
                                                        
| 149 | 155 |  		if(is_array($val)) { | 
                                                        
| 150 | - foreach($val as $k => $v) $val[$k] = $this->stripNonPrintables($v);  | 
                                                        |
| 156 | +			foreach($val as $k => $v) { | 
                                                        |
| 157 | + $val[$k] = $this->stripNonPrintables($v);  | 
                                                        |
| 158 | + }  | 
                                                        |
| 151 | 159 | return $val;  | 
                                                        
| 152 | 160 |  		} else { | 
                                                        
| 153 | 161 |  			return preg_replace('/[[:cntrl:]]/', '', $val); | 
                                                        
@@ -3,7 +3,7 @@  | 
                                                    ||
| 3 | 3 |  class FrontendLink extends DataExtension { | 
                                                        
| 4 | 4 | |
| 5 | 5 |  	public function updateItemEditForm($form) { | 
                                                        
| 6 | -		if ($this->owner->record->hasMethod('Link')) { | 
                                                        |
| 6 | +		if($this->owner->record->hasMethod('Link')) { | 
                                                        |
| 7 | 7 | $link = sprintf(  | 
                                                        
| 8 | 8 | '<a style="margin: 0.5em" target="deploynaut-frontend" href="%s">Preview »</a>',  | 
                                                        
| 9 | 9 | $this->owner->record->Link()  | 
                                                        
@@ -386,9 +386,13 @@ discard block  | 
                                                    ||
| 386 | 386 | // Must be logged in to check permissions  | 
                                                        
| 387 | 387 | |
| 388 | 388 |  		if ($this->Usage==='Production' || $this->Usage==='Unspecified') { | 
                                                        
| 389 | - if ($this->Project()->allowed(DNRoot::ALLOW_PROD_DEPLOYMENT, $member)) return true;  | 
                                                        |
| 389 | +			if ($this->Project()->allowed(DNRoot::ALLOW_PROD_DEPLOYMENT, $member)) { | 
                                                        |
| 390 | + return true;  | 
                                                        |
| 391 | + }  | 
                                                        |
| 390 | 392 |  		} else { | 
                                                        
| 391 | - if ($this->Project()->allowed(DNRoot::ALLOW_NON_PROD_DEPLOYMENT, $member)) return true;  | 
                                                        |
| 393 | +			if ($this->Project()->allowed(DNRoot::ALLOW_NON_PROD_DEPLOYMENT, $member)) { | 
                                                        |
| 394 | + return true;  | 
                                                        |
| 395 | + }  | 
                                                        |
| 392 | 396 | }  | 
                                                        
| 393 | 397 | |
| 394 | 398 | return $this->Deployers()->byID($member->ID)  | 
                                                        
@@ -412,9 +416,13 @@ discard block  | 
                                                    ||
| 412 | 416 | // Must be logged in to check permissions  | 
                                                        
| 413 | 417 | |
| 414 | 418 |  		if ($this->Usage==='Production' || $this->Usage==='Unspecified') { | 
                                                        
| 415 | - if ($this->Project()->allowed(DNRoot::ALLOW_PROD_SNAPSHOT, $member)) return true;  | 
                                                        |
| 419 | +			if ($this->Project()->allowed(DNRoot::ALLOW_PROD_SNAPSHOT, $member)) { | 
                                                        |
| 420 | + return true;  | 
                                                        |
| 421 | + }  | 
                                                        |
| 416 | 422 |  		} else { | 
                                                        
| 417 | - if ($this->Project()->allowed(DNRoot::ALLOW_NON_PROD_SNAPSHOT, $member)) return true;  | 
                                                        |
| 423 | +			if ($this->Project()->allowed(DNRoot::ALLOW_NON_PROD_SNAPSHOT, $member)) { | 
                                                        |
| 424 | + return true;  | 
                                                        |
| 425 | + }  | 
                                                        |
| 418 | 426 | }  | 
                                                        
| 419 | 427 | |
| 420 | 428 | return $this->CanRestoreMembers()->byID($member->ID)  | 
                                                        
@@ -443,9 +451,13 @@ discard block  | 
                                                    ||
| 443 | 451 | }  | 
                                                        
| 444 | 452 | |
| 445 | 453 |  		if ($this->Usage==='Production' || $this->Usage==='Unspecified') { | 
                                                        
| 446 | - if ($this->Project()->allowed(DNRoot::ALLOW_PROD_SNAPSHOT, $member)) return true;  | 
                                                        |
| 454 | +			if ($this->Project()->allowed(DNRoot::ALLOW_PROD_SNAPSHOT, $member)) { | 
                                                        |
| 455 | + return true;  | 
                                                        |
| 456 | + }  | 
                                                        |
| 447 | 457 |  		} else { | 
                                                        
| 448 | - if ($this->Project()->allowed(DNRoot::ALLOW_NON_PROD_SNAPSHOT, $member)) return true;  | 
                                                        |
| 458 | +			if ($this->Project()->allowed(DNRoot::ALLOW_NON_PROD_SNAPSHOT, $member)) { | 
                                                        |
| 459 | + return true;  | 
                                                        |
| 460 | + }  | 
                                                        |
| 449 | 461 | }  | 
                                                        
| 450 | 462 | |
| 451 | 463 | return $this->CanBackupMembers()->byID($member->ID)  | 
                                                        
@@ -478,9 +490,13 @@ discard block  | 
                                                    ||
| 478 | 490 | // Must be logged in to check permissions  | 
                                                        
| 479 | 491 | |
| 480 | 492 |  		if ($this->Usage==='Production' || $this->Usage==='Unspecified') { | 
                                                        
| 481 | - if ($this->Project()->allowed(DNRoot::ALLOW_PROD_SNAPSHOT, $member)) return true;  | 
                                                        |
| 493 | +			if ($this->Project()->allowed(DNRoot::ALLOW_PROD_SNAPSHOT, $member)) { | 
                                                        |
| 494 | + return true;  | 
                                                        |
| 495 | + }  | 
                                                        |
| 482 | 496 |  		} else { | 
                                                        
| 483 | - if ($this->Project()->allowed(DNRoot::ALLOW_NON_PROD_SNAPSHOT, $member)) return true;  | 
                                                        |
| 497 | +			if ($this->Project()->allowed(DNRoot::ALLOW_NON_PROD_SNAPSHOT, $member)) { | 
                                                        |
| 498 | + return true;  | 
                                                        |
| 499 | + }  | 
                                                        |
| 484 | 500 | }  | 
                                                        
| 485 | 501 | |
| 486 | 502 | return $this->ArchiveUploaders()->byID($member->ID)  | 
                                                        
@@ -504,9 +520,13 @@ discard block  | 
                                                    ||
| 504 | 520 | // Must be logged in to check permissions  | 
                                                        
| 505 | 521 | |
| 506 | 522 |  		if ($this->Usage==='Production' || $this->Usage==='Unspecified') { | 
                                                        
| 507 | - if ($this->Project()->allowed(DNRoot::ALLOW_PROD_SNAPSHOT, $member)) return true;  | 
                                                        |
| 523 | +			if ($this->Project()->allowed(DNRoot::ALLOW_PROD_SNAPSHOT, $member)) { | 
                                                        |
| 524 | + return true;  | 
                                                        |
| 525 | + }  | 
                                                        |
| 508 | 526 |  		} else { | 
                                                        
| 509 | - if ($this->Project()->allowed(DNRoot::ALLOW_NON_PROD_SNAPSHOT, $member)) return true;  | 
                                                        |
| 527 | +			if ($this->Project()->allowed(DNRoot::ALLOW_NON_PROD_SNAPSHOT, $member)) { | 
                                                        |
| 528 | + return true;  | 
                                                        |
| 529 | + }  | 
                                                        |
| 510 | 530 | }  | 
                                                        
| 511 | 531 | |
| 512 | 532 | return $this->ArchiveDownloaders()->byID($member->ID)  | 
                                                        
@@ -573,9 +593,13 @@ discard block  | 
                                                    ||
| 573 | 593 | // Must be logged in to check permissions  | 
                                                        
| 574 | 594 | |
| 575 | 595 |  		if ($this->Usage==='Production' || $this->Usage==='Unspecified') { | 
                                                        
| 576 | - if ($this->Project()->allowed(DNRoot::ALLOW_PROD_SNAPSHOT, $member)) return true;  | 
                                                        |
| 596 | +			if ($this->Project()->allowed(DNRoot::ALLOW_PROD_SNAPSHOT, $member)) { | 
                                                        |
| 597 | + return true;  | 
                                                        |
| 598 | + }  | 
                                                        |
| 577 | 599 |  		} else { | 
                                                        
| 578 | - if ($this->Project()->allowed(DNRoot::ALLOW_NON_PROD_SNAPSHOT, $member)) return true;  | 
                                                        |
| 600 | +			if ($this->Project()->allowed(DNRoot::ALLOW_NON_PROD_SNAPSHOT, $member)) { | 
                                                        |
| 601 | + return true;  | 
                                                        |
| 602 | + }  | 
                                                        |
| 579 | 603 | }  | 
                                                        
| 580 | 604 | |
| 581 | 605 | return $this->ArchiveDeleters()->byID($member->ID)  | 
                                                        
@@ -954,7 +954,7 @@  | 
                                                    ||
| 954 | 954 | to other environments, alongside the "Who can restore" permission.<br>  | 
                                                        
| 955 | 955 | Should include all users with upload permissions, otherwise they can't download  | 
                                                        
| 956 | 956 | their own uploads.  | 
                                                        
| 957 | -PHP  | 
                                                        |
| 957 | +php  | 
                                                        |
| 958 | 958 | ),  | 
                                                        
| 959 | 959 | |
| 960 | 960 | // The Main.PipelineApprovers  | 
                                                        
@@ -408,10 +408,10 @@ discard block  | 
                                                    ||
| 408 | 408 | }  | 
                                                        
| 409 | 409 | // Must be logged in to check permissions  | 
                                                        
| 410 | 410 | |
| 411 | -		if ($this->Usage==='Production' || $this->Usage==='Unspecified') { | 
                                                        |
| 412 | - if ($this->Project()->allowed(DNRoot::ALLOW_PROD_DEPLOYMENT, $member)) return true;  | 
                                                        |
| 411 | +		if($this->Usage === 'Production' || $this->Usage === 'Unspecified') { | 
                                                        |
| 412 | + if($this->Project()->allowed(DNRoot::ALLOW_PROD_DEPLOYMENT, $member)) return true;  | 
                                                        |
| 413 | 413 |  		} else { | 
                                                        
| 414 | - if ($this->Project()->allowed(DNRoot::ALLOW_NON_PROD_DEPLOYMENT, $member)) return true;  | 
                                                        |
| 414 | + if($this->Project()->allowed(DNRoot::ALLOW_NON_PROD_DEPLOYMENT, $member)) return true;  | 
                                                        |
| 415 | 415 | }  | 
                                                        
| 416 | 416 | |
| 417 | 417 | return $this->Deployers()->byID($member->ID)  | 
                                                        
@@ -443,10 +443,10 @@ discard block  | 
                                                    ||
| 443 | 443 | }  | 
                                                        
| 444 | 444 | // Must be logged in to check permissions  | 
                                                        
| 445 | 445 | |
| 446 | -		if ($this->Usage==='Production' || $this->Usage==='Unspecified') { | 
                                                        |
| 447 | - if ($this->Project()->allowed(DNRoot::ALLOW_PROD_SNAPSHOT, $member)) return true;  | 
                                                        |
| 446 | +		if($this->Usage === 'Production' || $this->Usage === 'Unspecified') { | 
                                                        |
| 447 | + if($this->Project()->allowed(DNRoot::ALLOW_PROD_SNAPSHOT, $member)) return true;  | 
                                                        |
| 448 | 448 |  		} else { | 
                                                        
| 449 | - if ($this->Project()->allowed(DNRoot::ALLOW_NON_PROD_SNAPSHOT, $member)) return true;  | 
                                                        |
| 449 | + if($this->Project()->allowed(DNRoot::ALLOW_NON_PROD_SNAPSHOT, $member)) return true;  | 
                                                        |
| 450 | 450 | }  | 
                                                        
| 451 | 451 | |
| 452 | 452 | return $this->CanRestoreMembers()->byID($member->ID)  | 
                                                        
@@ -474,10 +474,10 @@ discard block  | 
                                                    ||
| 474 | 474 | return false;  | 
                                                        
| 475 | 475 | }  | 
                                                        
| 476 | 476 | |
| 477 | -		if ($this->Usage==='Production' || $this->Usage==='Unspecified') { | 
                                                        |
| 478 | - if ($this->Project()->allowed(DNRoot::ALLOW_PROD_SNAPSHOT, $member)) return true;  | 
                                                        |
| 477 | +		if($this->Usage === 'Production' || $this->Usage === 'Unspecified') { | 
                                                        |
| 478 | + if($this->Project()->allowed(DNRoot::ALLOW_PROD_SNAPSHOT, $member)) return true;  | 
                                                        |
| 479 | 479 |  		} else { | 
                                                        
| 480 | - if ($this->Project()->allowed(DNRoot::ALLOW_NON_PROD_SNAPSHOT, $member)) return true;  | 
                                                        |
| 480 | + if($this->Project()->allowed(DNRoot::ALLOW_NON_PROD_SNAPSHOT, $member)) return true;  | 
                                                        |
| 481 | 481 | }  | 
                                                        
| 482 | 482 | |
| 483 | 483 | return $this->CanBackupMembers()->byID($member->ID)  | 
                                                        
@@ -509,10 +509,10 @@ discard block  | 
                                                    ||
| 509 | 509 | }  | 
                                                        
| 510 | 510 | // Must be logged in to check permissions  | 
                                                        
| 511 | 511 | |
| 512 | -		if ($this->Usage==='Production' || $this->Usage==='Unspecified') { | 
                                                        |
| 513 | - if ($this->Project()->allowed(DNRoot::ALLOW_PROD_SNAPSHOT, $member)) return true;  | 
                                                        |
| 512 | +		if($this->Usage === 'Production' || $this->Usage === 'Unspecified') { | 
                                                        |
| 513 | + if($this->Project()->allowed(DNRoot::ALLOW_PROD_SNAPSHOT, $member)) return true;  | 
                                                        |
| 514 | 514 |  		} else { | 
                                                        
| 515 | - if ($this->Project()->allowed(DNRoot::ALLOW_NON_PROD_SNAPSHOT, $member)) return true;  | 
                                                        |
| 515 | + if($this->Project()->allowed(DNRoot::ALLOW_NON_PROD_SNAPSHOT, $member)) return true;  | 
                                                        |
| 516 | 516 | }  | 
                                                        
| 517 | 517 | |
| 518 | 518 | return $this->ArchiveUploaders()->byID($member->ID)  | 
                                                        
@@ -535,10 +535,10 @@ discard block  | 
                                                    ||
| 535 | 535 | }  | 
                                                        
| 536 | 536 | // Must be logged in to check permissions  | 
                                                        
| 537 | 537 | |
| 538 | -		if ($this->Usage==='Production' || $this->Usage==='Unspecified') { | 
                                                        |
| 539 | - if ($this->Project()->allowed(DNRoot::ALLOW_PROD_SNAPSHOT, $member)) return true;  | 
                                                        |
| 538 | +		if($this->Usage === 'Production' || $this->Usage === 'Unspecified') { | 
                                                        |
| 539 | + if($this->Project()->allowed(DNRoot::ALLOW_PROD_SNAPSHOT, $member)) return true;  | 
                                                        |
| 540 | 540 |  		} else { | 
                                                        
| 541 | - if ($this->Project()->allowed(DNRoot::ALLOW_NON_PROD_SNAPSHOT, $member)) return true;  | 
                                                        |
| 541 | + if($this->Project()->allowed(DNRoot::ALLOW_NON_PROD_SNAPSHOT, $member)) return true;  | 
                                                        |
| 542 | 542 | }  | 
                                                        
| 543 | 543 | |
| 544 | 544 | return $this->ArchiveDownloaders()->byID($member->ID)  | 
                                                        
@@ -604,10 +604,10 @@ discard block  | 
                                                    ||
| 604 | 604 | }  | 
                                                        
| 605 | 605 | // Must be logged in to check permissions  | 
                                                        
| 606 | 606 | |
| 607 | -		if ($this->Usage==='Production' || $this->Usage==='Unspecified') { | 
                                                        |
| 608 | - if ($this->Project()->allowed(DNRoot::ALLOW_PROD_SNAPSHOT, $member)) return true;  | 
                                                        |
| 607 | +		if($this->Usage === 'Production' || $this->Usage === 'Unspecified') { | 
                                                        |
| 608 | + if($this->Project()->allowed(DNRoot::ALLOW_PROD_SNAPSHOT, $member)) return true;  | 
                                                        |
| 609 | 609 |  		} else { | 
                                                        
| 610 | - if ($this->Project()->allowed(DNRoot::ALLOW_NON_PROD_SNAPSHOT, $member)) return true;  | 
                                                        |
| 610 | + if($this->Project()->allowed(DNRoot::ALLOW_NON_PROD_SNAPSHOT, $member)) return true;  | 
                                                        |
| 611 | 611 | }  | 
                                                        
| 612 | 612 | |
| 613 | 613 | return $this->ArchiveDeleters()->byID($member->ID)  | 
                                                        
@@ -827,7 +827,7 @@ discard block  | 
                                                    ||
| 827 | 827 | * @return string  | 
                                                        
| 828 | 828 | */  | 
                                                        
| 829 | 829 |  	public function Link() { | 
                                                        
| 830 | - return $this->Project()->Link() . "/environment/" . $this->Name;  | 
                                                        |
| 830 | + return $this->Project()->Link()."/environment/".$this->Name;  | 
                                                        |
| 831 | 831 | }  | 
                                                        
| 832 | 832 | |
| 833 | 833 | /**  | 
                                                        
@@ -972,7 +972,7 @@ discard block  | 
                                                    ||
| 972 | 972 |  				->buildPermissionField('ArchiveUploaderGroups', 'ArchiveUploaders', $groups, $members) | 
                                                        
| 973 | 973 |  				->setTitle('Who can upload?') | 
                                                        
| 974 | 974 | ->setDescription(  | 
                                                        
| 975 | - 'Users who can upload archives linked to this environment into Deploynaut.<br />' .  | 
                                                        |
| 975 | + 'Users who can upload archives linked to this environment into Deploynaut.<br />'.  | 
                                                        |
| 976 | 976 | 'Linking them to an environment allows limiting download permissions (see below).'  | 
                                                        
| 977 | 977 | ),  | 
                                                        
| 978 | 978 | |
@@ -1044,7 +1044,7 @@ discard block  | 
                                                    ||
| 1044 | 1044 | // Add actions  | 
                                                        
| 1045 | 1045 |  		$action = new FormAction('check', 'Check Connection'); | 
                                                        
| 1046 | 1046 | $action->setUseButtonTag(true);  | 
                                                        
| 1047 | - $dataURL = Director::absoluteBaseURL() . 'naut/api/' . $this->Project()->Name . '/' . $this->Name . '/ping';  | 
                                                        |
| 1047 | + $dataURL = Director::absoluteBaseURL().'naut/api/'.$this->Project()->Name.'/'.$this->Name.'/ping';  | 
                                                        |
| 1048 | 1048 |  		$action->setAttribute('data-url', $dataURL); | 
                                                        
| 1049 | 1049 | $fields->insertBefore($action, 'Name');  | 
                                                        
| 1050 | 1050 | |
@@ -1110,8 +1110,8 @@ discard block  | 
                                                    ||
| 1110 | 1110 | */  | 
                                                        
| 1111 | 1111 |  	public function onBeforeWrite() { | 
                                                        
| 1112 | 1112 | parent::onBeforeWrite();  | 
                                                        
| 1113 | -		if($this->Name && $this->Name . '.rb' != $this->Filename) { | 
                                                        |
| 1114 | - $this->Filename = $this->Name . '.rb';  | 
                                                        |
| 1113 | +		if($this->Name && $this->Name.'.rb' != $this->Filename) { | 
                                                        |
| 1114 | + $this->Filename = $this->Name.'.rb';  | 
                                                        |
| 1115 | 1115 | }  | 
                                                        
| 1116 | 1116 | $this->checkEnvironmentPath();  | 
                                                        
| 1117 | 1117 | $this->writeConfigFile();  | 
                                                        
@@ -1159,7 +1159,7 @@ discard block  | 
                                                    ||
| 1159 | 1159 | && $this->Filename  | 
                                                        
| 1160 | 1160 | && $this->CreateEnvConfig  | 
                                                        
| 1161 | 1161 |  		) { | 
                                                        
| 1162 | - $templateFile = $this->config()->template_file ?: BASE_PATH . '/deploynaut/environment.template';  | 
                                                        |
| 1162 | + $templateFile = $this->config()->template_file ?: BASE_PATH.'/deploynaut/environment.template';  | 
                                                        |
| 1163 | 1163 | file_put_contents($this->getConfigFilename(), file_get_contents($templateFile));  | 
                                                        
| 1164 | 1164 |  		} else if($this->envFileExists() && $this->DeployConfig) { | 
                                                        
| 1165 | 1165 | file_put_contents($this->getConfigFilename(), $this->DeployConfig);  | 
                                                        
@@ -1231,7 +1231,7 @@ discard block  | 
                                                    ||
| 1231 | 1231 |  		if(!$this->Filename) { | 
                                                        
| 1232 | 1232 | return '';  | 
                                                        
| 1233 | 1233 | }  | 
                                                        
| 1234 | - return $this->DNData()->getEnvironmentDir() . '/' . $this->Project()->Name . '/' . $this->Filename;  | 
                                                        |
| 1234 | + return $this->DNData()->getEnvironmentDir().'/'.$this->Project()->Name.'/'.$this->Filename;  | 
                                                        |
| 1235 | 1235 | }  | 
                                                        
| 1236 | 1236 | |
| 1237 | 1237 | /**  | 
                                                        
@@ -1247,7 +1247,7 @@ discard block  | 
                                                    ||
| 1247 | 1247 | }  | 
                                                        
| 1248 | 1248 | $path = pathinfo($name);  | 
                                                        
| 1249 | 1249 |  		if($path) { | 
                                                        
| 1250 | - return $path['dirname'] . '/' . $path['filename'] . '.yml';  | 
                                                        |
| 1250 | + return $path['dirname'].'/'.$path['filename'].'.yml';  | 
                                                        |
| 1251 | 1251 | }  | 
                                                        
| 1252 | 1252 | }  | 
                                                        
| 1253 | 1253 | |
@@ -929,7 +929,9 @@ discard block  | 
                                                    ||
| 929 | 929 | * @return SS_List  | 
                                                        
| 930 | 930 | */  | 
                                                        
| 931 | 931 |  	public function whoIsAllowedAny($codes) { | 
                                                        
| 932 | - if(!is_array($codes)) $codes = array($codes);  | 
                                                        |
| 932 | +		if(!is_array($codes)) { | 
                                                        |
| 933 | + $codes = array($codes);  | 
                                                        |
| 934 | + }  | 
                                                        |
| 933 | 935 | |
| 934 | 936 | $SQLa_codes = Convert::raw2sql($codes);  | 
                                                        
| 935 | 937 |  		$SQL_codes = join("','", $SQLa_codes); | 
                                                        
@@ -991,7 +993,9 @@ discard block  | 
                                                    ||
| 991 | 993 | $member = Member::currentUser();  | 
                                                        
| 992 | 994 | }  | 
                                                        
| 993 | 995 | |
| 994 | - if(Permission::checkMember($member, 'ADMIN')) return true;  | 
                                                        |
| 996 | +		if(Permission::checkMember($member, 'ADMIN')) { | 
                                                        |
| 997 | + return true;  | 
                                                        |
| 998 | + }  | 
                                                        |
| 995 | 999 | |
| 996 | 1000 |  		$hits = $this->whoIsAllowedAny($codes)->filter('Member.ID', $member->ID)->count(); | 
                                                        
| 997 | 1001 | return ($hits>0 ? true : false);  | 
                                                        
@@ -1018,7 +1022,9 @@ discard block  | 
                                                    ||
| 1018 | 1022 | });  | 
                                                        
| 1019 | 1023 | |
| 1020 | 1024 | // If anything returns false then we're not ready.  | 
                                                        
| 1021 | - if($isDone) return min($isDone);  | 
                                                        |
| 1025 | +			if($isDone) { | 
                                                        |
| 1026 | + return min($isDone);  | 
                                                        |
| 1027 | + }  | 
                                                        |
| 1022 | 1028 | }  | 
                                                        
| 1023 | 1029 | |
| 1024 | 1030 | return true;  | 
                                                        
@@ -1099,8 +1105,12 @@ discard block  | 
                                                    ||
| 1099 | 1105 | * @return bool  | 
                                                        
| 1100 | 1106 | */  | 
                                                        
| 1101 | 1107 |  	public function canCreate($member = null) { | 
                                                        
| 1102 | - if(!$member) $member = Member::currentUser();  | 
                                                        |
| 1103 | - if(!$member) return false;  | 
                                                        |
| 1108 | +		if(!$member) { | 
                                                        |
| 1109 | + $member = Member::currentUser();  | 
                                                        |
| 1110 | + }  | 
                                                        |
| 1111 | +		if(!$member) { | 
                                                        |
| 1112 | + return false;  | 
                                                        |
| 1113 | + }  | 
                                                        |
| 1104 | 1114 | |
| 1105 | 1115 |  		if(Permission::checkMember($member, 'ADMIN')) { | 
                                                        
| 1106 | 1116 | return true;  | 
                                                        
@@ -262,7 +262,7 @@ discard block  | 
                                                    ||
| 262 | 262 | * @return bool  | 
                                                        
| 263 | 263 | */  | 
                                                        
| 264 | 264 |  	public function canRestore($member = null) { | 
                                                        
| 265 | - if ($this->allowedAny(  | 
                                                        |
| 265 | + if($this->allowedAny(  | 
                                                        |
| 266 | 266 | array(  | 
                                                        
| 267 | 267 | DNRoot::ALLOW_PROD_SNAPSHOT,  | 
                                                        
| 268 | 268 | DNRoot::ALLOW_NON_PROD_SNAPSHOT  | 
                                                        
@@ -282,7 +282,7 @@ discard block  | 
                                                    ||
| 282 | 282 | * @return bool  | 
                                                        
| 283 | 283 | */  | 
                                                        
| 284 | 284 |  	public function canBackup($member = null) { | 
                                                        
| 285 | - if ($this->allowedAny(  | 
                                                        |
| 285 | + if($this->allowedAny(  | 
                                                        |
| 286 | 286 | array(  | 
                                                        
| 287 | 287 | DNRoot::ALLOW_PROD_SNAPSHOT,  | 
                                                        
| 288 | 288 | DNRoot::ALLOW_NON_PROD_SNAPSHOT  | 
                                                        
@@ -302,7 +302,7 @@ discard block  | 
                                                    ||
| 302 | 302 | * @return bool  | 
                                                        
| 303 | 303 | */  | 
                                                        
| 304 | 304 |  	public function canUploadArchive($member = null) { | 
                                                        
| 305 | - if ($this->allowedAny(  | 
                                                        |
| 305 | + if($this->allowedAny(  | 
                                                        |
| 306 | 306 | array(  | 
                                                        
| 307 | 307 | DNRoot::ALLOW_PROD_SNAPSHOT,  | 
                                                        
| 308 | 308 | DNRoot::ALLOW_NON_PROD_SNAPSHOT  | 
                                                        
@@ -322,7 +322,7 @@ discard block  | 
                                                    ||
| 322 | 322 | * @return bool  | 
                                                        
| 323 | 323 | */  | 
                                                        
| 324 | 324 |  	public function canDownloadArchive($member = null) { | 
                                                        
| 325 | - if ($this->allowedAny(  | 
                                                        |
| 325 | + if($this->allowedAny(  | 
                                                        |
| 326 | 326 | array(  | 
                                                        
| 327 | 327 | DNRoot::ALLOW_PROD_SNAPSHOT,  | 
                                                        
| 328 | 328 | DNRoot::ALLOW_NON_PROD_SNAPSHOT  | 
                                                        
@@ -391,7 +391,7 @@ discard block  | 
                                                    ||
| 391 | 391 | // Key-pair is available, use it.  | 
                                                        
| 392 | 392 | $processEnv = array(  | 
                                                        
| 393 | 393 | 'IDENT_KEY' => $this->getPrivateKeyPath(),  | 
                                                        
| 394 | - 'GIT_SSH' => BASE_PATH . "/deploynaut/git-deploy.sh"  | 
                                                        |
| 394 | + 'GIT_SSH' => BASE_PATH."/deploynaut/git-deploy.sh"  | 
                                                        |
| 395 | 395 | );  | 
                                                        
| 396 | 396 |  		} else { | 
                                                        
| 397 | 397 | $processEnv = array();  | 
                                                        
@@ -746,7 +746,7 @@ discard block  | 
                                                    ||
| 746 | 746 | */  | 
                                                        
| 747 | 747 |  	public function getPublicKeyPath() { | 
                                                        
| 748 | 748 |  		if($privateKey = $this->getPrivateKeyPath()) { | 
                                                        
| 749 | - return $privateKey . '.pub';  | 
                                                        |
| 749 | + return $privateKey.'.pub';  | 
                                                        |
| 750 | 750 | }  | 
                                                        
| 751 | 751 | return null;  | 
                                                        
| 752 | 752 | }  | 
                                                        
@@ -761,7 +761,7 @@ discard block  | 
                                                    ||
| 761 | 761 |  		if(!empty($keyDir)) { | 
                                                        
| 762 | 762 | $filter = FileNameFilter::create();  | 
                                                        
| 763 | 763 | $name = $filter->filter($this->Name);  | 
                                                        
| 764 | - return $keyDir . '/' . $name;  | 
                                                        |
| 764 | + return $keyDir.'/'.$name;  | 
                                                        |
| 765 | 765 | }  | 
                                                        
| 766 | 766 | return null;  | 
                                                        
| 767 | 767 | }  | 
                                                        
@@ -780,7 +780,7 @@ discard block  | 
                                                    ||
| 780 | 780 | $filter = FileNameFilter::create();  | 
                                                        
| 781 | 781 | $name = $filter->filter($this->Name);  | 
                                                        
| 782 | 782 | |
| 783 | - return $this->DNData()->getKeyDir() . '/' . $name;  | 
                                                        |
| 783 | + return $this->DNData()->getKeyDir().'/'.$name;  | 
                                                        |
| 784 | 784 | }  | 
                                                        
| 785 | 785 | |
| 786 | 786 | /**  | 
                                                        
@@ -869,7 +869,7 @@ discard block  | 
                                                    ||
| 869 | 869 | /* Look for each whitelisted hostname */  | 
                                                        
| 870 | 870 |  		foreach($interfaces as $host => $interface) { | 
                                                        
| 871 | 871 | /* See if the CVS Path is for this hostname, followed by some junk (maybe a port), then the path */  | 
                                                        
| 872 | -			if(preg_match('{^[^.]*' . $host . '(.*?)([/a-zA-Z].+)}', $this->CVSPath, $match)) { | 
                                                        |
| 872 | +			if(preg_match('{^[^.]*'.$host.'(.*?)([/a-zA-Z].+)}', $this->CVSPath, $match)) { | 
                                                        |
| 873 | 873 | |
| 874 | 874 | $path = $match[2];  | 
                                                        
| 875 | 875 | |
@@ -880,10 +880,10 @@ discard block  | 
                                                    ||
| 880 | 880 |  				$components = explode('.', $host); | 
                                                        
| 881 | 881 | |
| 882 | 882 |  				foreach($regex as $pattern => $replacement) { | 
                                                        
| 883 | -					$path = preg_replace('/' . $pattern . '/', $replacement, $path); | 
                                                        |
| 883 | +					$path = preg_replace('/'.$pattern.'/', $replacement, $path); | 
                                                        |
| 884 | 884 | }  | 
                                                        
| 885 | 885 | |
| 886 | - $uxurl = Controller::join_links($scheme . '://', $host, $path);  | 
                                                        |
| 886 | + $uxurl = Controller::join_links($scheme.'://', $host, $path);  | 
                                                        |
| 887 | 887 | |
| 888 | 888 |  				if(array_key_exists('commit', $interface) && $interface['commit'] == false) { | 
                                                        
| 889 | 889 | $commiturl = false;  | 
                                                        
@@ -987,14 +987,14 @@ discard block  | 
                                                    ||
| 987 | 987 | * @return bool  | 
                                                        
| 988 | 988 | */  | 
                                                        
| 989 | 989 |  	public function allowedAny($codes, $member = null) { | 
                                                        
| 990 | -		if (!$member) { | 
                                                        |
| 990 | +		if(!$member) { | 
                                                        |
| 991 | 991 | $member = Member::currentUser();  | 
                                                        
| 992 | 992 | }  | 
                                                        
| 993 | 993 | |
| 994 | 994 | if(Permission::checkMember($member, 'ADMIN')) return true;  | 
                                                        
| 995 | 995 | |
| 996 | 996 |  		$hits = $this->whoIsAllowedAny($codes)->filter('Member.ID', $member->ID)->count(); | 
                                                        
| 997 | - return ($hits>0 ? true : false);  | 
                                                        |
| 997 | + return ($hits > 0 ? true : false);  | 
                                                        |
| 998 | 998 | }  | 
                                                        
| 999 | 999 | |
| 1000 | 1000 | /**  | 
                                                        
@@ -257,7 +257,7 @@  | 
                                                    ||
| 257 | 257 | * @return string  | 
                                                        
| 258 | 258 | */  | 
                                                        
| 259 | 259 |  	public function getTitle() { | 
                                                        
| 260 | -		return "Pipeline {$this->ID} (Status: {$this->Status})"; | 
                                                        |
| 260 | +		return "pipeline {$this->ID} (Status: {$this->Status})"; | 
                                                        |
| 261 | 261 | }  | 
                                                        
| 262 | 262 | |
| 263 | 263 | /**  | 
                                                        
@@ -127,7 +127,7 @@  | 
                                                    ||
| 127 | 127 | curl_setopt($ch, CURLOPT_URL, $test['URL']);  | 
                                                        
| 128 | 128 | |
| 129 | 129 | // Allow individual tests to override number of attempts  | 
                                                        
| 130 | -		$attempts = (int) $this->getConfigSetting('Attempts'); | 
                                                        |
| 130 | +		$attempts = (int)$this->getConfigSetting('Attempts'); | 
                                                        |
| 131 | 131 |  		if(!empty($test['Attempts'])) { | 
                                                        
| 132 | 132 | $attempts = $test['Attempts'];  | 
                                                        
| 133 | 133 | }  | 
                                                        
@@ -282,7 +282,7 @@  | 
                                                    ||
| 282 | 282 | */  | 
                                                        
| 283 | 283 |  	public function startApproval() { | 
                                                        
| 284 | 284 | $this->Status = 'Started';  | 
                                                        
| 285 | -		$this->log("Starting {$this->Title}..."); | 
                                                        |
| 285 | +		$this->log("starting {$this->Title}..."); | 
                                                        |
| 286 | 286 | // Determine if we should use delayed notification  | 
                                                        
| 287 | 287 | $recipientGroup = 'all';  | 
                                                        
| 288 | 288 |  		if($this->getConfigSetting('RecipientsDelay')) { | 
                                                        
@@ -282,7 +282,7 @@  | 
                                                    ||
| 282 | 282 | */  | 
                                                        
| 283 | 283 |  	public function startApproval() { | 
                                                        
| 284 | 284 | $this->Status = 'Started';  | 
                                                        
| 285 | -		$this->log("Starting {$this->Title}..."); | 
                                                        |
| 285 | +		$this->log("starting {$this->Title}..."); | 
                                                        |
| 286 | 286 | // Determine if we should use delayed notification  | 
                                                        
| 287 | 287 | $recipientGroup = 'all';  | 
                                                        
| 288 | 288 |  		if($this->getConfigSetting('RecipientsDelay')) { | 
                                                        
@@ -282,7 +282,7 @@  | 
                                                    ||
| 282 | 282 | */  | 
                                                        
| 283 | 283 |  	public function startApproval() { | 
                                                        
| 284 | 284 | $this->Status = 'Started';  | 
                                                        
| 285 | -		$this->log("Starting {$this->Title}..."); | 
                                                        |
| 285 | +		$this->log("starting {$this->Title}..."); | 
                                                        |
| 286 | 286 | // Determine if we should use delayed notification  | 
                                                        
| 287 | 287 | $recipientGroup = 'all';  | 
                                                        
| 288 | 288 |  		if($this->getConfigSetting('RecipientsDelay')) { |