summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--pgmailmgr/mailmgr/models.py16
1 files changed, 15 insertions, 1 deletions
diff --git a/pgmailmgr/mailmgr/models.py b/pgmailmgr/mailmgr/models.py
index f195487..3f2cb07 100644
--- a/pgmailmgr/mailmgr/models.py
+++ b/pgmailmgr/mailmgr/models.py
@@ -1,5 +1,6 @@
from django.db import models
from django.contrib.auth.models import User
+from django.db.models import signals
class LocalDomain(models.Model):
local_domain_id = models.AutoField(null=False, primary_key=True)
@@ -11,6 +12,7 @@ class LocalDomain(models.Model):
def __unicode__(self):
return self.domain_name
+ trigger_update = True
class Meta:
ordering=('domain_name',)
db_table='mail"."local_domains'
@@ -25,6 +27,7 @@ class Forwarder(models.Model):
def __unicode__(self):
return "%s@%s -> %s" % (self.local_part, self.local_domain.domain_name, self.remote_name)
+ trigger_update = True
class Meta:
ordering=('local_part',)
db_table='mail"."forwarder'
@@ -41,12 +44,14 @@ class VirtualUser(models.Model):
def __unicode__(self):
return "%s@%s (%s)" % (self.local_part, self.local_domain.domain_name, self.full_name or '')
+ trigger_update = True
class Meta:
ordering=('local_part',)
db_table='mail"."virtual_user'
managed=False
unique_together=('local_domain', 'local_part', )
-
+
+
class UserPermissions(models.Model):
user = models.ForeignKey(User, null=False)
domain = models.ForeignKey(LocalDomain, null=False)
@@ -65,3 +70,12 @@ class Log(models.Model):
class Meta:
ordering=('-when',)
+
+def pgmail_save_handler(sender, **kwargs):
+ if hasattr(sender, 'trigger_update') and sender.trigger_update:
+ # Touch a temp file in /tmp/ to inform cronjobs we have
+ # changed something.
+ with open('/tmp/.mailmgr_update', 'w') as f:
+ pass
+
+signals.post_save.connect(pgmail_save_handler)