diff --git a/app/Exceptions/Handler.php b/app/Exceptions/Handler.php index 008b302..fdf4d0f 100644 --- a/app/Exceptions/Handler.php +++ b/app/Exceptions/Handler.php @@ -46,7 +46,7 @@ public function register() */ public function report(Throwable $e) { - if (app()->bound('sentry') && $this->shouldReport($e)) { + if (config('app.env') != 'local' && app()->bound('sentry') && $this->shouldReport($e)) { app('sentry')->captureException($e); } diff --git a/app/Http/Controllers/DashboardController.php b/app/Http/Controllers/DashboardController.php index 463d321..b267c36 100644 --- a/app/Http/Controllers/DashboardController.php +++ b/app/Http/Controllers/DashboardController.php @@ -2,6 +2,8 @@ namespace App\Http\Controllers; +use App\Models\Network; +use Auth; use Illuminate\Http\Request; use Inertia\Inertia; @@ -14,6 +16,23 @@ class DashboardController extends Controller */ public function index() { - return Inertia::render('Dashboard/Index'); + return Inertia::render('Dashboard/Index', [ + 'newHosts' => Network::whereUser(Auth::id())->rightJoin('network_ips', 'networks.id', '=', 'network_ips.network_id')->orderByDesc('created_at')->limit(5)->get([ + 'networks.name as network_name', + 'network_ips.network_id', + 'network_ips.name', + 'network_ips.address', + 'network_ips.created_at', + 'network_ips.updated_at', + ]), + 'updatedHosts' => Network::whereUser(Auth::id())->rightJoin('network_ips', 'networks.id', '=', 'network_ips.network_id')->orderByDesc('updated_at')->limit(5)->get([ + 'networks.name as network_name', + 'network_ips.network_id', + 'network_ips.name', + 'network_ips.address', + 'network_ips.created_at', + 'network_ips.updated_at', + ]), + ]); } } diff --git a/app/Http/Controllers/NetworkController.php b/app/Http/Controllers/NetworkController.php index c6531aa..85c5d27 100644 --- a/app/Http/Controllers/NetworkController.php +++ b/app/Http/Controllers/NetworkController.php @@ -5,6 +5,7 @@ use App\Http\Requests\Network\StoreRequest; use App\Http\Requests\Network\UpdateRequest; use App\Models\Network; +use Auth; use Illuminate\Http\Request; use Inertia\Inertia; @@ -19,7 +20,7 @@ public function index(): \Inertia\Response { return Inertia::render('Networks/Index', [ 'networks' => function () { - return Network::where('user_id', \Auth::user()->id)->orWhereNull('user_id')->get()->map(function (Network $network) { + return Network::whereUser(Auth::id())->with('ips')->orderBy('name')->get()->map(function (Network $network) { return [ 'id' => $network->id, 'name' => $network->name, @@ -55,7 +56,7 @@ public function store(StoreRequest $request) $data = $request->validated(); $network = new Network(); - $network->user_id = \Auth::id(); + $network->user_id = Auth::id(); $network->name = $data['name']; $network->range = $data['range']; diff --git a/app/Models/Network.php b/app/Models/Network.php index 189b33f..1dcdd2d 100644 --- a/app/Models/Network.php +++ b/app/Models/Network.php @@ -20,6 +20,15 @@ class Network extends Model 'range', ]; + /** + * @param $userId + * @return \Illuminate\Database\Eloquent\Builder|static + */ + public static function whereUser($userId) + { + return self::whereNull('user_id')->orWhere('user_id', $userId); + } + /** * @return string */ diff --git a/app/Models/NetworkIp.php b/app/Models/NetworkIp.php index 590c535..73f33d5 100644 --- a/app/Models/NetworkIp.php +++ b/app/Models/NetworkIp.php @@ -25,6 +25,6 @@ class NetworkIp extends Model */ public function network(): \Illuminate\Database\Eloquent\Relations\BelongsTo { - return $this->belongsTo(Network::class, 'id', 'network_id'); + return $this->belongsTo(Network::class, 'network_id', 'id'); } } diff --git a/resources/js/Pages/About/Index.vue b/resources/js/Pages/About/Index.vue index 0329498..66001ab 100644 --- a/resources/js/Pages/About/Index.vue +++ b/resources/js/Pages/About/Index.vue @@ -60,7 +60,7 @@