From 178ce34399c376c1eb1f014683e0ec2b4ab2653a Mon Sep 17 00:00:00 2001
From: devStorm <59678453+developStorm@users.noreply.github.com>
Date: Thu, 13 May 2021 16:53:01 -0700
Subject: [PATCH] Enum, setting
---
app/dashboard/templates/dashboard/setting.html | 16 ++++++++++++++++
app/dashboard/views/custom_alias.py | 3 ++-
app/dashboard/views/setting.py | 12 +++++++++++-
app/models.py | 9 ++++++++-
4 files changed, 37 insertions(+), 3 deletions(-)
diff --git a/app/dashboard/templates/dashboard/setting.html b/app/dashboard/templates/dashboard/setting.html
index 16322884..233915c6 100644
--- a/app/dashboard/templates/dashboard/setting.html
+++ b/app/dashboard/templates/dashboard/setting.html
@@ -247,6 +247,22 @@
+
+
Select the default suffix generator for aliases.
+
+
diff --git a/app/dashboard/views/custom_alias.py b/app/dashboard/views/custom_alias.py
index 5a080a19..d96b7f05 100644
--- a/app/dashboard/views/custom_alias.py
+++ b/app/dashboard/views/custom_alias.py
@@ -23,6 +23,7 @@ from app.models import (
User,
AliasMailbox,
DomainDeletedAlias,
+ AliasSuffixEnum,
)
from app.utils import random_word, word_exist, random_string
@@ -259,7 +260,7 @@ def get_suffix(user: User) -> str:
Returns:
str: the random suffix generated
"""
- if user.random_alias_suffix:
+ if user.random_alias_suffix == AliasSuffixEnum.rnd_string.value:
return random_string(ALIAS_RAND_SUFFIX_LENGTH, include_digits = True)
return random_word()
diff --git a/app/dashboard/views/setting.py b/app/dashboard/views/setting.py
index b4b837d8..3c1f906a 100644
--- a/app/dashboard/views/setting.py
+++ b/app/dashboard/views/setting.py
@@ -15,7 +15,7 @@ from wtforms import StringField, validators
from wtforms.fields.html5 import EmailField
from app import s3, email_utils
-from app.config import URL, FIRST_ALIAS_DOMAIN, JOB_DELETE_ACCOUNT
+from app.config import URL, FIRST_ALIAS_DOMAIN, JOB_DELETE_ACCOUNT, ALIAS_RAND_SUFFIX_LENGTH
from app.dashboard.base import dashboard_bp
from app.email_utils import (
email_can_be_used_as_mailbox,
@@ -32,6 +32,7 @@ from app.models import (
Alias,
CustomDomain,
AliasGeneratorEnum,
+ AliasSuffixEnum,
ManualSubscription,
SenderFormatEnum,
SLDomain,
@@ -240,6 +241,14 @@ def setting():
flash("Your preference has been updated", "success")
return redirect(url_for("dashboard.setting"))
+ elif request.form.get("form-name") == "random-alias-suffix":
+ scheme = int(request.form.get("random-alias-suffix-generator"))
+ if AliasSuffixEnum.has_value(scheme):
+ current_user.random_alias_suffix = scheme
+ db.session.commit()
+ flash("Your preference has been updated", "success")
+ return redirect(url_for("dashboard.setting"))
+
elif request.form.get("form-name") == "change-sender-format":
sender_format = int(request.form.get("sender-format"))
if SenderFormatEnum.has_value(sender_format):
@@ -292,6 +301,7 @@ def setting():
apple_sub=apple_sub,
coinbase_sub=coinbase_sub,
FIRST_ALIAS_DOMAIN=FIRST_ALIAS_DOMAIN,
+ ALIAS_RAND_SUFFIX_LENGTH=ALIAS_RAND_SUFFIX_LENGTH,
)
diff --git a/app/models.py b/app/models.py
index 6ef39f94..d1fb71f5 100644
--- a/app/models.py
+++ b/app/models.py
@@ -161,6 +161,9 @@ class AliasGeneratorEnum(EnumE):
word = 1 # aliases are generated based on random words
uuid = 2 # aliases are generated based on uuid
+class AliasSuffixEnum(EnumE):
+ word = 0 # Random word from dictionary file
+ rnd_string = 1 # Completely random string
class Fido(db.Model, ModelMixin):
__tablename__ = "fido"
@@ -288,8 +291,12 @@ class User(db.Model, ModelMixin, UserMixin):
)
# whether to use random string or random word as suffix
+ # Random word from dictionary file -> 0
+ # Completely random string -> 1
random_alias_suffix = db.Column(
- db.Boolean, default=True, nullable=False, server_default="1"
+ db.Integer, nullable=False,
+ default=AliasSuffixEnum.rnd_string.value,
+ server_default=str(AliasSuffixEnum.rnd_string.value),
)
@classmethod