-
-
Notifications
You must be signed in to change notification settings - Fork 2.2k
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Keeps the dashboard sessions from expiring. (#9263)
* Keeps the dashboard sessions from expiring. Route dashboard ajax calls through Laravel. Boots minimal cookies and sessions. Does not fix other pages for now, real fix is to fully port. * Check Laravel auth for the legacy calls. Display Laravel errors in the dashboard. legacy auth checks are mostly extraneous now.
- Loading branch information
Showing
9 changed files
with
175 additions
and
66 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,62 +1,61 @@ | ||
<?php | ||
|
||
/* | ||
* LibreNMS | ||
* | ||
* Copyright (c) 2014 Neil Lathwood <https://github.com/laf/ http://www.lathwood.co.uk/fa> | ||
/** | ||
* Laravel - A PHP Framework For Web Artisans | ||
* | ||
* This program is free software: you can redistribute it and/or modify it | ||
* under the terms of the GNU General Public License as published by the | ||
* Free Software Foundation, either version 3 of the License, or (at your | ||
* option) any later version. Please see LICENSE.txt at the top level of | ||
* the source code distribution for details. | ||
* @package Laravel | ||
* @author Taylor Otwell <taylor@laravel.com> | ||
*/ | ||
|
||
use LibreNMS\Authentication\LegacyAuth; | ||
|
||
$init_modules = array('web', 'auth'); | ||
require realpath(__DIR__ . '/..') . '/includes/init.php'; | ||
|
||
set_debug($_REQUEST['debug']); | ||
|
||
header('Content-type: application/json'); | ||
|
||
if (!LegacyAuth::check()) { | ||
$response = array( | ||
'status' => 'error', | ||
'message' => 'Unauthenticated', | ||
); | ||
echo _json_encode($response); | ||
exit; | ||
} | ||
|
||
$type = $vars['type']; | ||
|
||
if ($type == 'placeholder') { | ||
$output = "<span style='text-align:left;'><br><h3>Click on the Edit Dashboard button (next to the list of dashboards) to add widgets</h3><br><h4><strong>Remember:</strong> You can only move & resize widgets when you're in <strong>Edit Mode</strong>.</h4><span>"; | ||
$status = 'ok'; | ||
$title = 'Placeholder'; | ||
} elseif (is_file('includes/common/'.$type.'.inc.php')) { | ||
$results_limit = 10; | ||
$typeahead_limit = $config['webui']['global_search_result_limit']; | ||
$no_form = true; | ||
$unique_id = str_replace(array("-","."), "_", uniqid($type, true)); | ||
$widget_id = $vars['id']; | ||
$widget_settings = json_decode(dbFetchCell('select settings from users_widgets where user_widget_id = ?', array($widget_id)), true); | ||
$widget_dimensions = $vars['dimensions']; | ||
if (!empty($vars['settings'])) { | ||
define('SHOW_SETTINGS', true); | ||
} | ||
include 'includes/common/'.$type.'.inc.php'; | ||
$output = implode('', $common_output); | ||
$status = 'ok'; | ||
$title = display($widget_settings['title']) ?: ucfirst(display($type)); | ||
} | ||
|
||
$response = array( | ||
'status' => $status, | ||
'html' => $output, | ||
'title' => $title, | ||
); | ||
|
||
echo _json_encode($response); | ||
/* | ||
|-------------------------------------------------------------------------- | ||
| Register The Auto Loader | ||
|-------------------------------------------------------------------------- | ||
| | ||
| Composer provides a convenient, automatically generated class loader for | ||
| our application. We just need to utilize it! We'll simply require it | ||
| into the script here so that we don't have to worry about manual | ||
| loading any of our classes later on. It feels great to relax. | ||
| | ||
*/ | ||
|
||
require __DIR__.'/../bootstrap/autoload.php'; | ||
|
||
/* | ||
|-------------------------------------------------------------------------- | ||
| Turn On The Lights | ||
|-------------------------------------------------------------------------- | ||
| | ||
| We need to illuminate PHP development, so let us turn on the lights. | ||
| This bootstraps the framework and gets it ready for use, then it | ||
| will load up this application so that we can run it and send | ||
| the responses back to the browser and delight our users. | ||
| | ||
*/ | ||
|
||
$app = require_once __DIR__.'/../bootstrap/app.php'; | ||
|
||
/* | ||
|-------------------------------------------------------------------------- | ||
| Run The Application | ||
|-------------------------------------------------------------------------- | ||
| | ||
| Once we have the application, we can handle the incoming request | ||
| through the kernel, and send the associated response back to | ||
| the client's browser allowing them to enjoy the creative | ||
| and wonderful application we have prepared for them. | ||
| | ||
*/ | ||
|
||
$kernel = $app->make(Illuminate\Contracts\Http\Kernel::class); | ||
|
||
// rewrite the request uri | ||
$_SERVER['REQUEST_URI'] = '/legacy_ajax_dash'; | ||
|
||
$response = $kernel->handle( | ||
$request = Illuminate\Http\Request::capture() | ||
); | ||
|
||
$response->send(); | ||
|
||
$kernel->terminate($request, $response); |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,64 @@ | ||
<?php | ||
|
||
/* | ||
* LibreNMS | ||
* | ||
* Copyright (c) 2014 Neil Lathwood <https://github.com/laf/ http://www.lathwood.co.uk/fa> | ||
* | ||
* This program is free software: you can redistribute it and/or modify it | ||
* under the terms of the GNU General Public License as published by the | ||
* Free Software Foundation, either version 3 of the License, or (at your | ||
* option) any later version. Please see LICENSE.txt at the top level of | ||
* the source code distribution for details. | ||
* @package Laravel | ||
* @author Taylor Otwell <taylor@laravel.com> | ||
*/ | ||
|
||
use LibreNMS\Authentication\LegacyAuth; | ||
|
||
$init_modules = ['web', 'auth']; | ||
require realpath(__DIR__ . '/../..') . '/includes/init.php'; | ||
|
||
set_debug(isset($_REQUEST['debug']) && $_REQUEST['debug']); | ||
|
||
header('Content-type: application/json'); | ||
|
||
if (!LegacyAuth::check()) { | ||
$response = array( | ||
'status' => 'error', | ||
'message' => 'Unauthenticated', | ||
); | ||
echo _json_encode($response); | ||
exit; | ||
} | ||
|
||
$type = isset($vars['type']) ? $vars['type'] : 'placeholder'; | ||
|
||
if ($type == 'placeholder') { | ||
$output = "<span style='text-align:left;'><br><h3>Click on the Edit Dashboard button (next to the list of dashboards) to add widgets</h3><br><h4><strong>Remember:</strong> You can only move & resize widgets when you're in <strong>Edit Mode</strong>.</h4><span>"; | ||
$status = 'ok'; | ||
$title = 'Placeholder'; | ||
} elseif (is_file('includes/common/'.$type.'.inc.php')) { | ||
$results_limit = 10; | ||
$typeahead_limit = $config['webui']['global_search_result_limit']; | ||
$no_form = true; | ||
$unique_id = str_replace(array("-","."), "_", uniqid($type, true)); | ||
$widget_id = $vars['id']; | ||
$widget_settings = json_decode(dbFetchCell('select settings from users_widgets where user_widget_id = ?', array($widget_id)), true); | ||
$widget_dimensions = $vars['dimensions']; | ||
if (!empty($vars['settings'])) { | ||
define('SHOW_SETTINGS', true); | ||
} | ||
include 'includes/common/'.$type.'.inc.php'; | ||
$output = implode('', $common_output); | ||
$status = 'ok'; | ||
$title = display($widget_settings['title']) ?: ucfirst(display($type)); | ||
} | ||
|
||
$response = array( | ||
'status' => $status, | ||
'html' => $output, | ||
'title' => $title, | ||
); | ||
|
||
echo _json_encode($response); |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,6 @@ | ||
<?php | ||
|
||
|
||
Route::group(['middleware' => ['auth'], 'guard' => 'auth'], function () { | ||
Route::any('legacy_ajax_dash', 'LegacyController@dash'); | ||
}); |