Fixes for saving a new system
Create Docker Image / Build Docker Image (x86_64) (push) Successful in 41s Details
Create Docker Image / Build Docker Image (arm64) (push) Successful in 2m8s Details
Create Docker Image / Final Docker Image Manifest (push) Successful in 11s Details

This commit is contained in:
Deon George 2024-06-03 22:31:38 +10:00
parent 434226f8bc
commit 27cdb02b06
6 changed files with 23 additions and 12 deletions

View File

@ -45,6 +45,7 @@ class SystemController extends Controller
default: $o->pollmode = NULL;
}
$o->active = (! is_null($x=$request->validated('active'))) && $x;
$o->autohold = FALSE;
$o->save();
@ -60,7 +61,9 @@ class SystemController extends Controller
$o->users()->detach();
}
return redirect()->to('system');
return redirect()
->to('system/addedit/'.$o->id)
->with('saved',TRUE);
}
$o->load(['addresses.zone.domain','addresses.nodes_hub','addresses.system','sessions.domain','sessions.systems']);

View File

@ -8,7 +8,6 @@ use Illuminate\Support\Facades\Gate;
use Illuminate\Validation\Rule;
use App\Classes\FTN\Packet;
use App\Models\Setup;
class SystemRegisterRequest extends FormRequest
{
@ -19,12 +18,10 @@ class SystemRegisterRequest extends FormRequest
*/
public function authorize(Request $request)
{
if (! $request->post())
if (! $request->post() || (! $this->route('o')))
return TRUE;
// Cannot claim this site
if ($this->route('o')->id === Setup::findOrFail(config('app.id'))->system_id)
return FALSE;
// @todo Also disallow claiming this hosts system
return Gate::allows($this->route('o')->users->count() ? 'update_nn' : 'register',$this->route('o'));
}

View File

@ -14,6 +14,7 @@ use App\Models\Address;
<h1>
{{ $o->name }}@if($o->setup)<sup class="success">*</sup>@endif
@if($o->setup)<small class="success float-end">* This Host</small>@endif
<span style="top: 0.25em;position: relative;">@includeWhen(session()->has('saved'),'widgets.saved')</span>
</h1>
@endif

View File

@ -3,6 +3,10 @@
Systems
@endsection
@php
use App\Models\System;
@endphp
@section('content')
<div class="row">
<div class="col-12">
@ -14,12 +18,12 @@
<div class="row">
<div class="col-12">
<p>This system is aware of the following systems
@can('create',(new \App\Models\System))(you can <a href="{{ url('user/system/register') }}">register</a> more):@endcan
@can('admin',(new \App\Models\System))(you can <a href="{{ url('system/addedit') }}">add</a> more):@endcan
@can('create',(new System))(you can <a href="{{ url('user/system/register') }}">register</a> more):@endcan
@can('admin',(new System))(you can <a href="{{ url('system/addedit') }}">add</a> more):@endcan
</p>
@if (\App\Models\System::active()->count() === 0)
@can('create',(new \App\Models\System))
@if (System::active()->count() === 0)
@can('create',(new System))
<p>There are no systems setup, to <a href="{{ url('system/addedit') }}">set up your first</a>.</p>
@else
<p class="pad">There are no systems - you need to ask an admin to create one for you.</p>
@ -40,7 +44,7 @@
</thead>
<tbody>
@foreach (\App\Models\System::active()->with(['addresses.zone.domain'])->get() as $oo)
@foreach (System::active()->with(['addresses.zone.domain'])->get() as $oo)
<tr>
<td><a href="{{ url('system/addedit',[$oo->id]) }}" @cannot('update_nn',$oo)class="disabled" @endcannot>{{ $oo->id }}</a></td>
<td>{{ $oo->name }} @if(! $oo->active)<span class="float-end"><small>[i]</small></span>@endif</td>

View File

@ -4,6 +4,10 @@
Register System
@endsection
@php
use App\Models\{Setup,System};
@endphp
@section('content')
<form class="needs-validation" method="post" autocomplete="off" novalidate>
@csrf
@ -22,8 +26,9 @@
<span class="input-group-text"><i class="bi bi-laptop-fill"></i></span>
<select style="width: 80%;" class="form-select @error('system_id') is-invalid @enderror" id="system" name="id" required>
<option value="">&nbsp;</option>
@foreach (\App\Models\System::select(['systems.id','systems.name'])
@foreach (System::select(['systems.id','systems.name'])
->active()
->where('id','<>',Setup::findOrFail(config('app.id'))->system_id)
->whereRaw('id NOT IN (SELECT system_id FROM system_user)')
->cursor() as $oo)
<option value="{{ $oo->id }}" @if(old('id')===$oo->id)selected @endif>{{ $oo->name }}</option>

View File

@ -0,0 +1 @@
<button class="btn btn-success btn-sm float-end">Saved</button>