diff --git a/app/Http/Controllers/HomeController.php b/app/Http/Controllers/HomeController.php index 4f64b46..1b3a23b 100644 --- a/app/Http/Controllers/HomeController.php +++ b/app/Http/Controllers/HomeController.php @@ -27,6 +27,7 @@ public function __construct() public function index(Request $request) { $tab = $request->input('tab', 'my-apps'); + $limit = $request->input('limit', 20); $user = Auth::user(); $servers = YnhServer::forUser($user); $memory_usage = collect(); @@ -41,11 +42,11 @@ public function index(Request $request) if ($tab === 'security') { $security_events = [ - 'authorized_keys' => YnhOsquery::authorizedKeys($servers), - 'kernel_modules' => YnhOsquery::kernelModules($servers), - 'suid_bin' => YnhOsquery::suidBin($servers), - 'last_logins_and_logouts' => YnhOsquery::loginsAndLogouts($servers), - 'users' => YnhOsquery::users($servers), + 'authorized_keys' => YnhOsquery::authorizedKeys($servers, $limit), + 'kernel_modules' => YnhOsquery::kernelModules($servers, $limit), + 'suid_bin' => YnhOsquery::suidBinaries($servers, $limit), + 'last_logins_and_logouts' => YnhOsquery::loginsAndLogouts($servers, $limit), + 'users' => YnhOsquery::users($servers, $limit), ]; } @@ -116,6 +117,7 @@ public function index(Request $request) } return view('home.index', compact( 'tab', + 'limit', 'servers', 'orders', 'users', diff --git a/app/Http/Controllers/YnhServerController.php b/app/Http/Controllers/YnhServerController.php index 19d397e..44f7daa 100644 --- a/app/Http/Controllers/YnhServerController.php +++ b/app/Http/Controllers/YnhServerController.php @@ -53,6 +53,7 @@ public function __construct() public function index(YnhServer $server, Request $request) { $tab = $request->input('tab', 'settings'); + $limit = $request->input('limit', 40); $user = Auth::user(); $servers = collect([$server]); $memory_usage = collect(); @@ -67,11 +68,11 @@ public function index(YnhServer $server, Request $request) if ($tab === 'security') { $security_events = [ - 'authorized_keys' => YnhOsquery::authorizedKeys($servers), - 'kernel_modules' => YnhOsquery::kernelModules($servers), - 'suid_bin' => YnhOsquery::suidBin($servers), - 'last_logins_and_logouts' => YnhOsquery::loginsAndLogouts($servers), - 'users' => YnhOsquery::users($servers), + 'authorized_keys' => YnhOsquery::authorizedKeys($servers, $limit), + 'kernel_modules' => YnhOsquery::kernelModules($servers, $limit), + 'suid_bin' => YnhOsquery::suidBinaries($servers, $limit), + 'last_logins_and_logouts' => YnhOsquery::loginsAndLogouts($servers, $limit), + 'users' => YnhOsquery::users($servers, $limit), ]; } @@ -94,6 +95,7 @@ public function index(YnhServer $server, Request $request) } return view('home.pages._servers', compact( 'tab', + 'limit', 'server', 'memory_usage', 'disk_usage', diff --git a/app/Models/YnhOsquery.php b/app/Models/YnhOsquery.php index 52611ba..db09f79 100644 --- a/app/Models/YnhOsquery.php +++ b/app/Models/YnhOsquery.php @@ -36,7 +36,7 @@ class YnhOsquery extends Model 'packed' => 'boolean', ]; - public static function memoryUsage(Collection $servers): Collection + public static function memoryUsage(Collection $servers, int $limit = 1000): Collection { return $servers->isEmpty() ? collect() : collect(DB::select(" SELECT @@ -69,7 +69,7 @@ public static function memoryUsage(Collection $servers): Collection FROM ynh_memory_usage ORDER BY timestamp DESC - LIMIT 1000 + LIMIT {$limit} ) AS t INNER JOIN ynh_servers ON ynh_servers.id = t.ynh_server_id WHERE ynh_servers.id IN ({$servers->pluck('id')->join(',')}) @@ -77,7 +77,7 @@ public static function memoryUsage(Collection $servers): Collection ")); } - public static function diskUsage(Collection $servers): Collection + public static function diskUsage(Collection $servers, int $limit = 1000): Collection { return $servers->isEmpty() ? collect() : collect(DB::select(" SELECT @@ -110,7 +110,7 @@ public static function diskUsage(Collection $servers): Collection FROM ynh_disk_usage ORDER BY timestamp DESC - LIMIT 1000 + LIMIT {$limit} ) AS t INNER JOIN ynh_servers ON ynh_servers.id = t.ynh_server_id WHERE ynh_servers.id IN ({$servers->pluck('id')->join(',')}) @@ -118,7 +118,7 @@ public static function diskUsage(Collection $servers): Collection ")); } - public static function users(Collection $servers): Collection + public static function users(Collection $servers, int $limit): Collection { // { // "description":null, @@ -147,11 +147,11 @@ public static function users(Collection $servers): Collection WHERE ynh_osquery.name = 'users' AND ynh_osquery.ynh_server_id IN ({$servers->pluck('id')->join(',')}) ORDER BY timestamp DESC - LIMIT 20; + LIMIT {$limit}; ")); } - public static function loginsAndLogouts(Collection $servers): Collection + public static function loginsAndLogouts(Collection $servers, int $limit): Collection { // { // "host":null, @@ -185,11 +185,11 @@ public static function loginsAndLogouts(Collection $servers): Collection WHERE ynh_osquery.name = 'last' AND ynh_osquery.ynh_server_id IN ({$servers->pluck('id')->join(',')}) ORDER BY timestamp DESC, entry_timestamp DESC - LIMIT 20; + LIMIT {$limit}; ")); } - public static function suidBin(Collection $servers): Collection + public static function suidBinaries(Collection $servers, int $limit): Collection { // { // "groupname":"tty", @@ -212,11 +212,11 @@ public static function suidBin(Collection $servers): Collection WHERE ynh_osquery.name = 'suid_bin' AND ynh_osquery.ynh_server_id IN ({$servers->pluck('id')->join(',')}) ORDER BY timestamp DESC - LIMIT 20; + LIMIT {$limit}; ")); } - public static function kernelModules(Collection $servers): Collection + public static function kernelModules(Collection $servers, int $limit): Collection { // { // "address":"0xffffffffc0223000", @@ -241,11 +241,11 @@ public static function kernelModules(Collection $servers): Collection WHERE ynh_osquery.name = 'kernel_modules' AND ynh_osquery.ynh_server_id IN ({$servers->pluck('id')->join(',')}) ORDER BY timestamp DESC - LIMIT 20 + LIMIT {$limit} ")); } - public static function authorizedKeys(Collection $servers): Collection + public static function authorizedKeys(Collection $servers, int $limit): Collection { // { // "algorithm":"ssh-rsa", @@ -281,7 +281,7 @@ public static function authorizedKeys(Collection $servers): Collection WHERE ynh_osquery.name = 'authorized_keys' AND ynh_osquery.ynh_server_id IN ({$servers->pluck('id')->join(',')}) ORDER BY timestamp DESC - LIMIT 20 + LIMIT {$limit} ")); } diff --git a/resources/views/home/cards/_security.blade.php b/resources/views/home/cards/_security.blade.php index 2f41b47..b0b3988 100644 --- a/resources/views/home/cards/_security.blade.php +++ b/resources/views/home/cards/_security.blade.php @@ -3,7 +3,7 @@ @if($security_events['authorized_keys'])