Enum, setting
This commit is contained in:
parent
3fc250018d
commit
178ce34399
|
@ -247,6 +247,22 @@
|
||||||
</select>
|
</select>
|
||||||
<button class="btn btn-outline-primary">Update</button>
|
<button class="btn btn-outline-primary">Update</button>
|
||||||
</form>
|
</form>
|
||||||
|
|
||||||
|
<div class="mt-3 mb-1">Select the default suffix generator for aliases.</div>
|
||||||
|
<form method="post" action="#random-alias-suffix" class="form-inline">
|
||||||
|
<input type="hidden" name="form-name" value="random-alias-suffix">
|
||||||
|
<select class="form-control mr-sm-2" name="random-alias-suffix-generator">
|
||||||
|
|
||||||
|
<option value="0" {% if current_user.random_alias_suffix==0 %} selected {% endif %}>
|
||||||
|
Random word from our dictionary
|
||||||
|
</option>
|
||||||
|
<option value="1" {% if current_user.random_alias_suffix==1 %} selected {% endif %}>
|
||||||
|
Random combination of {{ ALIAS_RAND_SUFFIX_LENGTH }} letter and digits
|
||||||
|
</option>
|
||||||
|
</select>
|
||||||
|
<button class="btn btn-outline-primary">Update</button>
|
||||||
|
</form>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<!-- END Random alias -->
|
<!-- END Random alias -->
|
||||||
|
|
|
@ -23,6 +23,7 @@ from app.models import (
|
||||||
User,
|
User,
|
||||||
AliasMailbox,
|
AliasMailbox,
|
||||||
DomainDeletedAlias,
|
DomainDeletedAlias,
|
||||||
|
AliasSuffixEnum,
|
||||||
)
|
)
|
||||||
from app.utils import random_word, word_exist, random_string
|
from app.utils import random_word, word_exist, random_string
|
||||||
|
|
||||||
|
@ -259,7 +260,7 @@ def get_suffix(user: User) -> str:
|
||||||
Returns:
|
Returns:
|
||||||
str: the random suffix generated
|
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_string(ALIAS_RAND_SUFFIX_LENGTH, include_digits = True)
|
||||||
return random_word()
|
return random_word()
|
||||||
|
|
||||||
|
|
|
@ -15,7 +15,7 @@ from wtforms import StringField, validators
|
||||||
from wtforms.fields.html5 import EmailField
|
from wtforms.fields.html5 import EmailField
|
||||||
|
|
||||||
from app import s3, email_utils
|
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.dashboard.base import dashboard_bp
|
||||||
from app.email_utils import (
|
from app.email_utils import (
|
||||||
email_can_be_used_as_mailbox,
|
email_can_be_used_as_mailbox,
|
||||||
|
@ -32,6 +32,7 @@ from app.models import (
|
||||||
Alias,
|
Alias,
|
||||||
CustomDomain,
|
CustomDomain,
|
||||||
AliasGeneratorEnum,
|
AliasGeneratorEnum,
|
||||||
|
AliasSuffixEnum,
|
||||||
ManualSubscription,
|
ManualSubscription,
|
||||||
SenderFormatEnum,
|
SenderFormatEnum,
|
||||||
SLDomain,
|
SLDomain,
|
||||||
|
@ -240,6 +241,14 @@ def setting():
|
||||||
flash("Your preference has been updated", "success")
|
flash("Your preference has been updated", "success")
|
||||||
return redirect(url_for("dashboard.setting"))
|
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":
|
elif request.form.get("form-name") == "change-sender-format":
|
||||||
sender_format = int(request.form.get("sender-format"))
|
sender_format = int(request.form.get("sender-format"))
|
||||||
if SenderFormatEnum.has_value(sender_format):
|
if SenderFormatEnum.has_value(sender_format):
|
||||||
|
@ -292,6 +301,7 @@ def setting():
|
||||||
apple_sub=apple_sub,
|
apple_sub=apple_sub,
|
||||||
coinbase_sub=coinbase_sub,
|
coinbase_sub=coinbase_sub,
|
||||||
FIRST_ALIAS_DOMAIN=FIRST_ALIAS_DOMAIN,
|
FIRST_ALIAS_DOMAIN=FIRST_ALIAS_DOMAIN,
|
||||||
|
ALIAS_RAND_SUFFIX_LENGTH=ALIAS_RAND_SUFFIX_LENGTH,
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -161,6 +161,9 @@ class AliasGeneratorEnum(EnumE):
|
||||||
word = 1 # aliases are generated based on random words
|
word = 1 # aliases are generated based on random words
|
||||||
uuid = 2 # aliases are generated based on uuid
|
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):
|
class Fido(db.Model, ModelMixin):
|
||||||
__tablename__ = "fido"
|
__tablename__ = "fido"
|
||||||
|
@ -288,8 +291,12 @@ class User(db.Model, ModelMixin, UserMixin):
|
||||||
)
|
)
|
||||||
|
|
||||||
# whether to use random string or random word as suffix
|
# 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(
|
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
|
@classmethod
|
||||||
|
|
Loading…
Reference in New Issue