From f4c5f23d00bfae2a2995a84a6f3e2ff553dca65d Mon Sep 17 00:00:00 2001 From: Manuel Raynaud Date: Sat, 14 Dec 2013 14:16:45 +0100 Subject: [PATCH] Change AdminLog logging request behavior, fixing issue #145 --- .../Controller/Admin/SessionController.php | 2 +- core/lib/Thelia/Controller/BaseController.php | 2 +- .../lib/Thelia/Core/HttpFoundation/Request.php | 18 ++++++++++++++++++ core/lib/Thelia/Model/AdminLog.php | 4 ++-- 4 files changed, 22 insertions(+), 4 deletions(-) diff --git a/core/lib/Thelia/Controller/Admin/SessionController.php b/core/lib/Thelia/Controller/Admin/SessionController.php index 0f6f1a105..bddfd32df 100755 --- a/core/lib/Thelia/Controller/Admin/SessionController.php +++ b/core/lib/Thelia/Controller/Admin/SessionController.php @@ -99,7 +99,7 @@ class SessionController extends BaseAdminController $this->getSecurityContext()->setAdminUser($user); // Log authentication success - AdminLog::append("admin", "LOGIN", "Authentication successful", $request, $user); + AdminLog::append("admin", "LOGIN", "Authentication successful", $request, $user, false); /** * FIXME: we have tou find a way to send cookie diff --git a/core/lib/Thelia/Controller/BaseController.php b/core/lib/Thelia/Controller/BaseController.php index a8f7b3a63..775861c32 100755 --- a/core/lib/Thelia/Controller/BaseController.php +++ b/core/lib/Thelia/Controller/BaseController.php @@ -147,7 +147,7 @@ abstract class BaseController extends ContainerAware } /** - * @return \Symfony\Component\HttpFoundation\Request + * @return \Thelia\Core\HttpFoundation\Request */ protected function getRequest() { diff --git a/core/lib/Thelia/Core/HttpFoundation/Request.php b/core/lib/Thelia/Core/HttpFoundation/Request.php index 8e77ad865..84cdcd760 100755 --- a/core/lib/Thelia/Core/HttpFoundation/Request.php +++ b/core/lib/Thelia/Core/HttpFoundation/Request.php @@ -34,6 +34,11 @@ use Symfony\Component\HttpFoundation\Request as BaseRequest; class Request extends BaseRequest { + private $excludeContent = array( + 'username', + 'password' + ); + public function getProductId() { return $this->get("product_id"); @@ -66,4 +71,17 @@ class Request extends BaseRequest { return parent::getSession(); } + + public function toString($withContent = true) + { + $string = + sprintf('%s %s %s', $this->getMethod(), $this->getRequestUri(), $this->server->get('SERVER_PROTOCOL'))."\r\n". + $this->headers."\r\n"; + + if (true === $withContent) { + $string .= $this->getContent(); + } + + return $string; + } } diff --git a/core/lib/Thelia/Model/AdminLog.php b/core/lib/Thelia/Model/AdminLog.php index 018fa00d3..169891c67 100755 --- a/core/lib/Thelia/Model/AdminLog.php +++ b/core/lib/Thelia/Model/AdminLog.php @@ -18,7 +18,7 @@ class AdminLog extends BaseAdminLog * @param Request $request * @param Base\Admin $adminUser */ - public static function append($resource, $action, $message, Request $request, BaseAdminUser $adminUser = null) { + public static function append($resource, $action, $message, Request $request, BaseAdminUser $adminUser = null, $withRequestContent = true) { $log = new AdminLog(); @@ -29,7 +29,7 @@ class AdminLog extends BaseAdminLog ->setResource($resource) ->setAction($action) ->setMessage($message) - ->setRequest($request->__toString()) + ->setRequest($request->toString($withRequestContent)) ; try {