$server->id, 'type' => $input['type'], 'protocol' => $input['protocol'], 'port' => $input['port'], 'source' => $input['source'], 'mask' => $input['mask'] ?? null, ]); /** @var Firewall $firewallHandler */ $firewallHandler = $server->firewall()->handler(); $firewallHandler->addRule( $rule->type, $rule->getRealProtocol(), $rule->port, $rule->source, $rule->mask ); $rule->status = FirewallRuleStatus::READY; $rule->save(); return $rule; } public static function rules(): array { return [ 'type' => [ 'required', 'in:allow,deny', ], 'protocol' => [ 'required', Rule::in(array_keys(config('core.firewall_protocols_port'))), ], 'port' => [ 'required', 'numeric', 'min:1', 'max:65535', ], 'source' => [ 'required', 'ip', ], 'mask' => [ 'required', 'numeric', ], ]; } }