More work

This commit is contained in:
Finn Stutzenstein committed 2022-01-22 18:37:56 +01:00
1 parent 9d018e00be
commit add153d8a6
98 files changed
+18520 -333

No files matched your search

+23 -6
View File
@@ -1,12 +1,17 @@
from flask import flash
from max.db import EmailAlreadyExists, create_alias
from max.permissions import AllowAdminOrSelf
from max.translations import t
from ..base_alias_views import BackToAliasesMixin
from ..base_user_views import FetchUserTemplateGetView
from ..check_email_mixin import CheckEmailMixin
class AliasCreate(BackToAliasesMixin, FetchUserTemplateGetView):
class AliasCreate(
AllowAdminOrSelf, CheckEmailMixin, BackToAliasesMixin, FetchUserTemplateGetView
):
template_name = "alias/create.html"
def get_webpagetitle(self):
@@ -16,23 +21,26 @@ class AliasCreate(BackToAliasesMixin, FetchUserTemplateGetView):
error = False
email = self.request.form.get("email")
if not isinstance(email, str) or not email:
flash("Email must be given", category="error")
flash(t("Email must be given"), category="error")
error = True
else:
self.email = email
if not self.is_email_valid(email):
error = True
enabled = self.request.form.get("enabled")
if enabled == "on":
self.enabled = True
elif enabled is None:
self.enabled = False
else:
flash("Enabled is not set", category="error")
flash(t("Enabled is not set"), category="error")
error = True
note = self.request.form.get("note", "")
if not isinstance(note, str):
flash("Not emust be a string", category="error")
flash(t("Note must be a string"), category="error")
error = True
else:
self.note = note
@@ -43,10 +51,19 @@ class AliasCreate(BackToAliasesMixin, FetchUserTemplateGetView):
try:
create_alias(self.email, self.user, self.enabled, self.note)
except EmailAlreadyExists as e:
flash(f"Email already exists: {e.msg}", category="error")
if self.auth_user.is_admin:
flash(
t("Email already exists: {msg}", msg=t(e.msg, **e.arguments)),
category="error",
)
else:
flash(t("Email already exists."))
return
flash(f"Creation of alias {email} was successful!", category="success")
flash(
t("Creation of alias {email} was successful!", email=email),
category="success",
)
return self.redirect()
def get_context(self):