. * * @package LibreNMS * @link http://librenms.org * @copyright 2018 Tony Murray * @author Tony Murray */ namespace App\Http\Controllers\Table; use App\Models\PortsNac; use LibreNMS\Util\Rewrite; use LibreNMS\Util\Url; class PortNacController extends TableController { public function rules() { return [ 'device_id' => 'required|int', ]; } public function searchFields($request) { return ['username', 'ip_address', 'mac_address']; } protected function sortFields($request) { return [ 'port_id', 'mac_address', 'ip_address', 'vlan', 'domain', 'host_mode', 'username', 'authz_by', 'timeout', 'time_elapsed', 'time_left', 'authc_status', 'authz_status', 'method' ]; } /** * Defines the base query for this resource * * @param \Illuminate\Http\Request $request * @return \Illuminate\Database\Eloquent\Builder|\Illuminate\Database\Query\Builder */ public function baseQuery($request) { return PortsNac::where('device_id', $request->device_id)->hasAccess($request->user())->with('port'); } public function formatItem($nac) { $item = $nac->toArray(); $item['port_id'] = Url::portLink($nac->port, $nac->port->getShortLabel()); $item['mac_address'] = Rewrite::readableMac($item['mac_address']); return $item; } }