initial commit
This commit is contained in:
commit
9d018e00be
82 files changed
+2407
No files matched your search
@@ -0,0 +1,57 @@
|
||||
from flask import flash
|
||||
|
||||
from max.db import EmailAlreadyExists, create_alias
|
||||
|
||||
from ..base_alias_views import BackToAliasesMixin
|
||||
from ..base_user_views import FetchUserTemplateGetView
|
||||
|
||||
|
||||
class AliasCreate(BackToAliasesMixin, FetchUserTemplateGetView):
|
||||
template_name = "alias/create.html"
|
||||
|
||||
def get_webpagetitle(self):
|
||||
return f"Create new alias for {self.user.email}"
|
||||
|
||||
def post(self):
|
||||
error = False
|
||||
email = self.request.form.get("email")
|
||||
if not isinstance(email, str) or not email:
|
||||
flash("Email must be given", category="error")
|
||||
error = True
|
||||
else:
|
||||
self.email = email
|
||||
|
||||
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")
|
||||
error = True
|
||||
|
||||
note = self.request.form.get("note", "")
|
||||
if not isinstance(note, str):
|
||||
flash("Not emust be a string", category="error")
|
||||
error = True
|
||||
else:
|
||||
self.note = note
|
||||
|
||||
if error:
|
||||
return # force re-rendering
|
||||
|
||||
try:
|
||||
create_alias(self.email, self.user, self.enabled, self.note)
|
||||
except EmailAlreadyExists as e:
|
||||
flash(f"Email already exists: {e.msg}", category="error")
|
||||
return
|
||||
|
||||
flash(f"Creation of alias {email} was successful!", category="success")
|
||||
return self.redirect()
|
||||
|
||||
def get_context(self):
|
||||
context = super().get_context()
|
||||
for key in ("email", "enabled", "note"):
|
||||
if hasattr(self, key):
|
||||
context[key] = getattr(self, key)
|
||||
return context
|
||||
Reference in new issue
Block a user