Security update enabling update_nn to edit system details

This commit is contained in:
2024-05-21 19:50:57 +10:00
parent ab2e288f06
commit aaec5f8f4a
5 changed files with 52 additions and 43 deletions

View File

@@ -16,7 +16,7 @@ use Illuminate\Support\Facades\Notification;
use Illuminate\Support\ViewErrorBag;
use App\Classes\FTN\Message;
use App\Http\Requests\{AddressMerge,AreafixRequest,SystemEchoareaRequest,SystemRegister,SystemSessionRequest};
use App\Http\Requests\{AddressMerge,AreafixRequest,SystemEchoareaRequest,SystemRegisterRequest,SystemSessionRequest};
use App\Jobs\AddressPoll;
use App\Models\{Address,Echoarea,Echomail,Filearea,Netmail,Setup,System,Zone};
use App\Notifications\Netmails\AddressLink;
@@ -29,13 +29,18 @@ class SystemController extends Controller
/**
* Add or edit a node
*/
public function add_edit(SystemRegister $request,System $o)
public function add_edit(SystemRegisterRequest $request, System $o)
{
if ($request->post()) {
foreach (['name','location','sysop','hold','phone','address','port','active','method','notes','zt_id','pkt_type','heartbeat'] as $key)
$o->{$key} = $request->post($key);
if ($request->validated()) {
foreach (['name','location','phone','address','port','active','method','pkt_type'] as $key)
$o->{$key} = $request->validated($key);
switch ($request->post('pollmode')) {
// Sometimes items
foreach (['sysop','hold','notes','zt_id','heartbeat'] as $key)
if ($request->validated($key))
$o->{$key} = $request->validated($key);
switch ($request->validated('pollmode')) {
case 1: $o->pollmode = FALSE; break;
case 2: $o->pollmode = TRUE; break;
default: $o->pollmode = NULL;
@@ -49,9 +54,9 @@ class SystemController extends Controller
->transform(function($item) { $item['active'] = Arr::get($item,'active',FALSE); return $item; });
$o->mailers()->sync($mailers);
if ($request->post('users')) {
if (array_filter($request->post('users'),function($item) { return $item; }))
$o->users()->sync($request->post('users'));
if ($request->validated('users')) {
if (array_filter($request->validated('users'),function($item) { return $item; }))
$o->users()->sync($request->validated('users'));
else
$o->users()->detach();
}
@@ -62,7 +67,7 @@ class SystemController extends Controller
$o->load(['addresses.zone.domain','addresses.nodes_hub','addresses.system','sessions.domain','sessions.systems']);
return view('system.addedit')
->with('action',$o->exists ? 'update' : 'create')
->with('action',$o->exists ? 'update_nn' : 'create')
->with('o',$o);
}
@@ -767,7 +772,7 @@ class SystemController extends Controller
/**
* Register a system, or link to an existing system
*/
public function register(SystemRegister $request)
public function register(SystemRegisterRequest $request)
{
// Step 1, show the user a form to select an existing defined system
if ($request->isMethod('GET'))