Fix deprecation warnings

This commit is contained in:
Jan Dittberner 2023-02-18 19:07:33 +01:00
parent b3588b5e6c
commit 0f18e59d67
6 changed files with 67 additions and 75 deletions

View file

@ -7,24 +7,20 @@ from __future__ import unicode_literals
from django.db import models
from django.utils.encoding import python_2_unicode_compatible
from django.utils.translation import ugettext as _
from passlib.hash import sha512_crypt
from model_utils.models import TimeStampedModel
from passlib.hash import sha512_crypt
from domains.models import MailDomain
from fileservertasks.tasks import create_file_mailbox, delete_file_mailbox
from osusers.models import User as OsUser
from fileservertasks.tasks import (
create_file_mailbox,
delete_file_mailbox,
)
class ActivateAbleMixin(models.Model):
"""
Mixin for model classes that can be active or inactive.
"""
active = models.BooleanField(default=True)
class Meta:
@ -51,10 +47,8 @@ class MailboxManager(models.Manager):
mailboxformat = "{0}p{1:02d}"
mailboxname = mailboxformat.format(osuser.username, count)
for box in self.values('username').filter(osuser=osuser).order_by(
'username'
):
if box['username'] == mailboxname:
for box in self.values("username").filter(osuser=osuser).order_by("username"):
if box["username"] == mailboxname:
count += 1
mailboxname = mailboxformat.format(osuser.username, count)
else:
@ -69,9 +63,10 @@ class MailboxManager(models.Manager):
"""
return self.filter(
models.Q(mailaddressmailbox__isnull=True) |
models.Q(mailaddressmailbox__mailaddress=mailaddress),
active=True, osuser=osuser,
models.Q(mailaddressmailbox__isnull=True)
| models.Q(mailaddressmailbox__mailaddress=mailaddress),
active=True,
osuser=osuser,
)
def unused(self, osuser):
@ -82,7 +77,8 @@ class MailboxManager(models.Manager):
"""
return self.filter(
mailaddressmailbox__isnull=True,
active=True, osuser=osuser,
active=True,
osuser=osuser,
)
def create_mailbox(self, osuser, password=None, commit=True):
@ -97,7 +93,8 @@ class MailboxManager(models.Manager):
"""
mailbox = self.create(
osuser=osuser, username=self.get_next_mailbox_name(osuser))
osuser=osuser, username=self.get_next_mailbox_name(osuser)
)
if password is not None:
mailbox.set_password(password)
return mailbox
@ -109,6 +106,7 @@ class Mailbox(ActivateAbleMixin, TimeStampedModel):
This is the model class for a mailbox.
"""
osuser = models.ForeignKey(OsUser, on_delete=models.CASCADE)
username = models.CharField(max_length=128, unique=True)
password = models.CharField(max_length=255)
@ -116,9 +114,9 @@ class Mailbox(ActivateAbleMixin, TimeStampedModel):
objects = MailboxManager()
class Meta:
ordering = ['osuser', 'username']
verbose_name = _('Mailbox')
verbose_name_plural = _('Mailboxes')
ordering = ["osuser", "username"]
verbose_name = _("Mailbox")
verbose_name_plural = _("Mailboxes")
def set_password(self, password):
"""
@ -127,7 +125,7 @@ class Mailbox(ActivateAbleMixin, TimeStampedModel):
:param str password: the clear text password
"""
self.password = sha512_crypt.encrypt(password)
self.password = sha512_crypt.hash(password)
def save(self, *args, **kwargs):
# TODO: refactor to use signals
@ -144,11 +142,9 @@ class Mailbox(ActivateAbleMixin, TimeStampedModel):
Get a list of mail addresses assigned to this mailbox.
"""
addrs = [
mbadr.mailaddress for mbadr in
self.mailaddressmailbox_set.all()
]
addrs = [mbadr.mailaddress for mbadr in self.mailaddressmailbox_set.all()]
return addrs
mailaddresses = property(get_mailaddresses)
def __str__(self):
@ -161,15 +157,17 @@ class MailAddress(ActivateAbleMixin, TimeStampedModel, models.Model):
This is the model class for a mail address.
"""
localpart = models.CharField(_('local part'), max_length=128)
localpart = models.CharField(_("local part"), max_length=128)
domain = models.ForeignKey(
MailDomain, verbose_name=_('domain'), on_delete=models.CASCADE)
MailDomain, verbose_name=_("domain"), on_delete=models.CASCADE
)
class Meta:
ordering = ['domain', 'localpart']
unique_together = ('localpart', 'domain')
verbose_name = _('Mail address')
verbose_name_plural = _('Mail addresses')
ordering = ["domain", "localpart"]
unique_together = ("localpart", "domain")
verbose_name = _("Mail address")
verbose_name_plural = _("Mail addresses")
def __str__(self):
return "{0}@{1}".format(self.localpart, self.domain)
@ -220,8 +218,7 @@ class MailAddress(ActivateAbleMixin, TimeStampedModel, models.Model):
if MailAddressMailbox.objects.filter(mailaddress=self).exists():
mabox = MailAddressMailbox.objects.get(mailaddress=self)
mabox.delete()
forwards = MailAddressForward.objects.filter(
mailaddress=self).all()
forwards = MailAddressForward.objects.filter(mailaddress=self).all()
for item in forwards:
if item.target not in addresses:
item.delete()
@ -250,14 +247,19 @@ class MailAddressMailbox(TimeStampedModel, models.Model):
This is the model class to assign a mail address to a mailbox.
"""
mailaddress = models.OneToOneField(
MailAddress, verbose_name=_('mailaddress'), primary_key=True,
on_delete=models.CASCADE)
MailAddress,
verbose_name=_("mailaddress"),
primary_key=True,
on_delete=models.CASCADE,
)
mailbox = models.ForeignKey(
Mailbox, verbose_name=_('mailbox'), on_delete=models.CASCADE)
Mailbox, verbose_name=_("mailbox"), on_delete=models.CASCADE
)
class Meta:
unique_together = ('mailaddress', 'mailbox')
unique_together = ("mailaddress", "mailbox")
def __str__(self):
return self.mailbox.username
@ -268,8 +270,9 @@ class MailAddressForward(TimeStampedModel, models.Model):
This is a model class to map mail addresses to forwarding addresses.
"""
mailaddress = models.ForeignKey(MailAddress, on_delete=models.CASCADE)
target = models.EmailField(max_length=254)
class Meta:
unique_together = ('mailaddress', 'target')
unique_together = ("mailaddress", "target")