mirror of
https://github.com/getnamingo/registry.git
synced 2025-07-23 11:05:57 +02:00
Improved CP error handling and audit log
This commit is contained in:
parent
0c6cb72852
commit
18e6eafb41
5 changed files with 113 additions and 3 deletions
|
@ -128,6 +128,35 @@ class Logger extends \Monolog\Logger
|
|||
} else {
|
||||
$logger = new Logger('errors');
|
||||
ErrorHandler::register($logger);
|
||||
|
||||
set_exception_handler(function ($e) use ($logger) {
|
||||
http_response_code(500);
|
||||
|
||||
$logger->error("Unhandled exception", [
|
||||
'message' => $e->getMessage(),
|
||||
'file' => $e->getFile(),
|
||||
'line' => $e->getLine(),
|
||||
'trace' => $e->getTraceAsString()
|
||||
]);
|
||||
|
||||
include '/var/www/cp/resources/error.html';
|
||||
});
|
||||
|
||||
register_shutdown_function(function () use ($logger) {
|
||||
$error = error_get_last();
|
||||
if ($error && in_array($error['type'], [E_ERROR, E_PARSE, E_CORE_ERROR, E_COMPILE_ERROR])) {
|
||||
http_response_code(500);
|
||||
|
||||
$logger->error("Fatal error", [
|
||||
'message' => $error['message'],
|
||||
'file' => $error['file'],
|
||||
'line' => $error['line'],
|
||||
'type' => $error['type']
|
||||
]);
|
||||
|
||||
include '/var/www/cp/resources/error.html';
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
|
|
22
cp/app/Middleware/AuditMiddleware.php
Normal file
22
cp/app/Middleware/AuditMiddleware.php
Normal file
|
@ -0,0 +1,22 @@
|
|||
<?php
|
||||
|
||||
namespace App\Middleware;
|
||||
|
||||
use Psr\Http\Message\ServerRequestInterface as Request;
|
||||
use Psr\Http\Server\RequestHandlerInterface as RequestHandler;
|
||||
use Pinga\Session;
|
||||
|
||||
class AuditMiddleware extends Middleware
|
||||
{
|
||||
|
||||
public function __invoke(Request $request, RequestHandler $handler)
|
||||
{
|
||||
if (isset($_SESSION['auth_user_id'])) {
|
||||
$userId = (int)$_SESSION['auth_user_id'];
|
||||
$this->container->get('db')->exec("SET @audit_usr_id = $userId");
|
||||
$this->container->get('db')->exec("SET @audit_ses_id = " . crc32(\Pinga\Session\Session::id()));
|
||||
}
|
||||
return $handler->handle($request);
|
||||
}
|
||||
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue