Add logging
authorMagnus Hagander <magnus@hagander.net>
Fri, 17 Aug 2012 19:01:08 +0000 (21:01 +0200)
committerMagnus Hagander <magnus@hagander.net>
Fri, 17 Aug 2012 19:01:08 +0000 (21:01 +0200)
pgmailmgr/mailmgr/admin.py
pgmailmgr/mailmgr/models.py
pgmailmgr/mailmgr/views.py

index 467f932193608aba2fd437726f1a92d97ee16fea..30dd0566cbe37fc08d66fe15d9ec11ca0b024cf0 100644 (file)
@@ -6,3 +6,4 @@ admin.site.register(LocalDomain)
 admin.site.register(Forwarder)
 admin.site.register(VirtualUser)
 admin.site.register(UserPermissions)
+admin.site.register(Log)
index 14257bd0640d25b19f8d64c34691e8ea8de0e35d..f19548767b628836d768ae234c73dd888a7f8749 100644 (file)
@@ -54,3 +54,14 @@ class UserPermissions(models.Model):
 
        def __unicode__(self):
                return "%s -> %s pattern '%s'" % (self.user, self.domain, self.pattern)
+
+class Log(models.Model):
+       user = models.ForeignKey(User, null=False)
+       when = models.DateTimeField(null=False, auto_now=True)
+       what = models.CharField(max_length=2048, null=False, blank=False)
+
+       def __unicode__(self):
+               return "%s (%s): %s" % (self.when, self.user, self.what)
+
+       class Meta:
+               ordering=('-when',)
index 468472b6910106946a73b40b0bb743d47e5fe740..1c98a30f20e13d798b1a303716063ee348e29ae9 100644 (file)
@@ -8,6 +8,13 @@ from django.contrib import messages
 from models import *
 from forms import *
 
+def log(user, what):
+       l = Log()
+       l.user = user
+       l.what = what
+       print l
+       l.save()
+
 @login_required
 def home(request):
        users = VirtualUser.objects.extra(where=["EXISTS (SELECT 1 FROM mailmgr_userpermissions p WHERE p.user_id=%s AND p.domain_id = local_domain_id AND local_part ~* ('^'||p.pattern||'$'))" % request.user.id])
@@ -39,6 +46,9 @@ def userform(request, userparam):
                        messages.add_message(request, messages.INFO, 'User %s updated' % vu)
                        if password_changed:
                                messages.add_message(request, messages.INFO, 'Password changed for user %s' % vu)
+                               log(request.user, "%s user %s, including changing the password" % (userparam=='add' and 'Added' or 'Updated', vu))
+                       else:
+                               log(request.user, "%s user %s, without changing the password" % (userparam=='add' and 'Added' or 'Updated', vu))
                        return HttpResponseRedirect('/')
        else:
                # Generate a new form
@@ -63,6 +73,7 @@ def forwarderform(request, userparam):
                form = ForwarderForm(data=request.POST, instance=fwd, user=request.user)
                if form.is_valid():
                        form.save()
+                       log(request.user, "%s forwarding %s -> %s" % (userparam=='add' and 'Added' or 'Updated', fwd, fwd.remote_name))
                        messages.add_message(request, messages.INFO, 'Forwarder %s updated' % fwd)
                        return HttpResponseRedirect('/')
        else: