Record current user instead of an old one.

fix #526
This commit is contained in:
Antoine Nguyen
2014-03-04 21:31:16 +01:00
parent ab1d0b15d9
commit 8cec810a54
4 changed files with 25 additions and 3 deletions
+3 -2
View File
@@ -492,12 +492,13 @@ def post_revision_commit(sender, **kwargs):
@receiver(post_delete)
def post_delete_hook(sender, instance, **kwargs):
def log_object_removal(sender, instance, **kwargs):
"""Custom post-delete hook.
We want to know who was responsible for an object deletion.
"""
from reversion.models import Version
from modoboa.lib.signals import get_request
if not reversion.is_registered(sender):
return
@@ -510,6 +511,6 @@ def post_delete_hook(sender, instance, **kwargs):
msg = _("%(object)s '%(name)s' %(action)s by user %(user)s") % {
"object": unicode(version.content_type).capitalize(),
"name": version.object_repr, "action": _("deleted"),
"user": version.revision.user.username
"user": get_request().user.username
}
logger.critical(msg)
+1
View File
@@ -16,6 +16,7 @@ from modoboa.lib.exceptions import (
ModoboaException, PermDeniedException, BadRequest
)
from modoboa.lib.templatetags.lib_tags import pagination_bar
from modoboa.core.models import log_object_removal
from modoboa.extensions.admin.lib import get_sort_order, get_listing_page
from modoboa.extensions.admin.models import Domain, Mailbox
from modoboa.extensions.admin.forms import (
+1 -1
View File
@@ -8,7 +8,7 @@ from django.contrib.auth.decorators import (
from django.views.decorators.csrf import ensure_csrf_cookie
from modoboa.lib import parameters, events
from modoboa.lib.exceptions import (
ModoboaException, PermDeniedException, BadRequest
PermDeniedException, BadRequest
)
from modoboa.lib.webutils import (
_render_to_string, render_to_json_response
+20
View File
@@ -1,4 +1,7 @@
# coding: utf-8
"""
Custom middlewares.
"""
import re
from django.http import Http404, HttpResponseRedirect
from modoboa.core.models import Extension
@@ -7,6 +10,7 @@ from modoboa.lib.webutils import (
_render_error, ajax_response, render_to_json_response
)
from modoboa.lib.exceptions import ModoboaException
from modoboa.lib.signals import request_accessor
class ExtControlMiddleware(object):
@@ -50,3 +54,19 @@ class CommonExceptionCatcher(object):
return render_to_json_response(
unicode(exception), status=exception.http_code
)
class RequestCatcherMiddleware(object):
"""
Simple middleware to store the current request.
"""
def __init__(self):
self._request = None
request_accessor.connect(self)
def process_request(self, request):
self._request = request
def __call__(self, **kwargs):
return self._request