Improve logging of exceptions catched by SharingMiddleware
This commit is contained in:
@@ -42,11 +42,8 @@ class Application extends App {
|
||||
|
||||
$container->registerService('SharingMiddleware', function($container) use ($server) {
|
||||
return new SharingMiddleware(
|
||||
$container,
|
||||
$server->getRequest(),
|
||||
$server->getUserSession(),
|
||||
$container->query('ControllerMethodReflector'),
|
||||
$container->query('OCA\Deck\Service\PermissionService')
|
||||
$server->getLogger(),
|
||||
$server->getConfig()
|
||||
);
|
||||
});
|
||||
$container->registerMiddleware('SharingMiddleware');
|
||||
|
||||
@@ -23,18 +23,32 @@
|
||||
|
||||
namespace OCA\Deck\Middleware;
|
||||
|
||||
|
||||
|
||||
|
||||
use OCA\Deck\StatusException;
|
||||
use \OCP\AppFramework\Middleware;
|
||||
|
||||
|
||||
use OCP\AppFramework\Middleware;
|
||||
use OCP\AppFramework\Http\JSONResponse;
|
||||
use OCP\ILogger;
|
||||
use OCP\Util;
|
||||
use OCP\IConfig;
|
||||
|
||||
|
||||
class SharingMiddleware extends Middleware {
|
||||
|
||||
/** @var ILogger */
|
||||
private $logger;
|
||||
/** @var IConfig */
|
||||
private $config;
|
||||
|
||||
/**
|
||||
* SharingMiddleware constructor.
|
||||
*
|
||||
* @param ILogger $logger
|
||||
* @param IConfig $config
|
||||
*/
|
||||
public function __construct(ILogger $logger, IConfig $config) {
|
||||
$this->logger = $logger;
|
||||
$this->config = $config;
|
||||
}
|
||||
|
||||
/**
|
||||
* Return JSON error response if the user has no sufficient permission
|
||||
*
|
||||
@@ -46,6 +60,9 @@ class SharingMiddleware extends Middleware {
|
||||
*/
|
||||
public function afterException($controller, $methodName, \Exception $exception) {
|
||||
if ($exception instanceof StatusException) {
|
||||
if($this->config->getSystemValue('loglevel', Util::WARN) === Util::DEBUG) {
|
||||
$this->logger->logException($exception);
|
||||
}
|
||||
return new JSONResponse([
|
||||
"status" => $exception->getStatus(),
|
||||
"message" => $exception->getMessage()
|
||||
|
||||
@@ -23,30 +23,28 @@
|
||||
|
||||
namespace OCA\Deck\Middleware;
|
||||
|
||||
use OC\AppFramework\DependencyInjection\DIContainer;
|
||||
use OC\AppFramework\Utility\ControllerMethodReflector;
|
||||
use OC\AppFramework\Utility\SimpleContainer;
|
||||
use OCA\Deck\Db\DeckMapper;
|
||||
use OCA\Deck\Db\IPermissionMapper;
|
||||
use OCA\Deck\NoPermissionException;
|
||||
use OCA\Deck\NotFoundException;
|
||||
use OCA\Deck\Service\BoardService;
|
||||
use OCA\Deck\Service\PermissionService;
|
||||
use OCP\AppFramework\Controller;
|
||||
use OCP\AppFramework\Http\JSONResponse;
|
||||
use OCP\IContainer;
|
||||
use OCP\IGroupManager;
|
||||
use OCP\IRequest;
|
||||
use OCP\IUser;
|
||||
use OCP\IUserSession;
|
||||
use OCA\Deck\Db\AclMapper;
|
||||
use OCP\ILogger;
|
||||
use OCP\IConfig;
|
||||
|
||||
class SharingMiddlewareTest extends \PHPUnit_Framework_TestCase {
|
||||
|
||||
class SharingMiddlewareTest extends \Test\TestCase {
|
||||
|
||||
/** @var ILogger */
|
||||
private $logger;
|
||||
/** @var IConfig */
|
||||
private $config;
|
||||
private $sharingMiddleware;
|
||||
|
||||
public function setUp() {
|
||||
$this->sharingMiddleware = new SharingMiddleware();
|
||||
$this->logger = $this->createMock(ILogger::class);
|
||||
$this->config = $this->createMock(IConfig::class);
|
||||
$this->sharingMiddleware = new SharingMiddleware(
|
||||
$this->logger,
|
||||
$this->config
|
||||
);
|
||||
}
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user