Don’t need this anymore
This commit is contained in:
		
							parent
							
								
									eb5c304f69
								
							
						
					
					
						commit
						3c43f3aa18
					
				| @ -2,7 +2,6 @@ | ||||
| 
 | ||||
| namespace App\Http\Requests\Admin\Node; | ||||
| 
 | ||||
| use App\Rules\Fqdn; | ||||
| use App\Models\Node; | ||||
| use App\Http\Requests\Admin\AdminFormRequest; | ||||
| 
 | ||||
| @ -17,9 +16,6 @@ class NodeFormRequest extends AdminFormRequest | ||||
|             return Node::getRulesForUpdate($this->route()->parameter('node')); | ||||
|         } | ||||
| 
 | ||||
|         $data = Node::getRules(); | ||||
|         $data['fqdn'][] = Fqdn::make('scheme'); | ||||
| 
 | ||||
|         return $data; | ||||
|         return Node::getRules(); | ||||
|     } | ||||
| } | ||||
|  | ||||
| @ -1,80 +0,0 @@ | ||||
| <?php | ||||
| 
 | ||||
| namespace App\Rules; | ||||
| 
 | ||||
| use Illuminate\Support\Arr; | ||||
| use Illuminate\Contracts\Validation\Rule; | ||||
| use Illuminate\Contracts\Validation\DataAwareRule; | ||||
| 
 | ||||
| class Fqdn implements DataAwareRule, Rule | ||||
| { | ||||
|     protected array $data = []; | ||||
|     protected string $message = ''; | ||||
|     protected ?string $schemeField = null; | ||||
| 
 | ||||
|     /** | ||||
|      * @param array $data | ||||
|      */ | ||||
|     public function setData($data): self | ||||
|     { | ||||
|         $this->data = $data; | ||||
| 
 | ||||
|         return $this; | ||||
|     } | ||||
| 
 | ||||
|     /** | ||||
|      * Validates that the value provided resolves to an IP address. If a scheme is | ||||
|      * specified when this rule is created additional checks will be applied. | ||||
|      * | ||||
|      * @param string $attribute | ||||
|      * @param mixed $value | ||||
|      */ | ||||
|     public function passes($attribute, $value): bool | ||||
|     { | ||||
|         if (filter_var($value, FILTER_VALIDATE_IP)) { | ||||
|             // Check if the scheme is set to HTTPS.
 | ||||
|             //
 | ||||
|             // Unless someone owns their IP blocks and decides to pay who knows how much for a
 | ||||
|             // custom SSL cert, IPs will not be able to use HTTPS.  This should prevent most
 | ||||
|             // home users from making this mistake and wondering why their node is not working.
 | ||||
|             if ($this->schemeField && Arr::get($this->data, $this->schemeField) === 'https') { | ||||
|                 $this->message = 'The :attribute must not be an IP address when HTTPS is enabled.'; | ||||
| 
 | ||||
|                 return false; | ||||
|             } | ||||
| 
 | ||||
|             return true; | ||||
|         } | ||||
| 
 | ||||
|         // Lookup A and AAAA DNS records for the FQDN. Note, this function will also resolve CNAMEs
 | ||||
|         // for us automatically, there is no need to manually resolve them here.
 | ||||
|         //
 | ||||
|         // The error suppression is intentional, see https://bugs.php.net/bug.php?id=73149
 | ||||
|         $records = @dns_get_record($value, DNS_A + DNS_AAAA); | ||||
|         // If no records were returned fall back to trying to resolve the value using the hosts DNS
 | ||||
|         // resolution. This will not work for IPv6 which is why we prefer to use `dns_get_record`
 | ||||
|         // first.
 | ||||
|         if (!empty($records) || filter_var(gethostbyname($value), FILTER_VALIDATE_IP)) { | ||||
|             return true; | ||||
|         } | ||||
| 
 | ||||
|         $this->message = 'The :attribute could not be resolved to a valid IP address.'; | ||||
| 
 | ||||
|         return false; | ||||
|     } | ||||
| 
 | ||||
|     public function message(): string | ||||
|     { | ||||
|         return $this->message; | ||||
|     } | ||||
| 
 | ||||
|     /** | ||||
|      * Returns a new instance of the rule with a defined scheme set. | ||||
|      */ | ||||
|     public static function make(string $schemeField = null): self | ||||
|     { | ||||
|         return tap(new self(), function ($fqdn) use ($schemeField) { | ||||
|             $fqdn->schemeField = $schemeField; | ||||
|         }); | ||||
|     } | ||||
| } | ||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user
	 Lance Pioch
						Lance Pioch