validate($request, [ 'discovery' => 'in:true,false,clear', 'polling' => 'in:true,false,clear', ]); if ($request->has('discovery')) { $discovery = $request->get('discovery'); if ($discovery == 'clear') { $device->forgetAttrib('discover_' . $module); } else { $device->setAttrib('discover_' . $module, $discovery == 'true' ? 1 : 0); } } if ($request->has('polling')) { $polling = $request->get('polling'); if ($polling == 'clear') { $device->forgetAttrib('poll_' . $module); } else { $device->setAttrib('poll_' . $module, $polling == 'true' ? 1 : 0); } } // return the module status return response()->json([ 'discovery' => (bool) $device->getAttrib('discover_' . $module, Config::getCombined($device->os, 'discovery_modules')[$module] ?? false), 'polling' => (bool) $device->getAttrib('poll_' . $module, Config::getCombined($device->os, 'poller_modules')[$module] ?? false), ]); } public function delete(Device $device, string $module): JsonResponse { Gate::authorize('delete', $device); $deleted = Module::fromName($module)->cleanup($device); return response()->json([ 'deleted' => $deleted, ]); } }