User can generate quickly a random alias
This commit is contained in:
parent
a8d112646e
commit
bcbe239f60
|
@ -28,7 +28,17 @@
|
|||
<div class="btn-group float-right" role="group">
|
||||
<form method="post">
|
||||
<input type="hidden" name="form-name" value="create-custom-email">
|
||||
<button class="btn btn-primary">Create Email Alias</button>
|
||||
<button data-toggle="tooltip"
|
||||
title="Create a custom alias"
|
||||
class="btn btn-primary mr-2">New Email Alias
|
||||
</button>
|
||||
</form>
|
||||
<form method="post">
|
||||
<input type="hidden" name="form-name" value="create-random-email">
|
||||
<button data-toggle="tooltip"
|
||||
title="Create a totally random alias"
|
||||
class="btn btn-success">Random Alias
|
||||
</button>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
|
|
|
@ -53,10 +53,18 @@ def index():
|
|||
if current_user.can_create_new_alias():
|
||||
return redirect(url_for("dashboard.custom_alias"))
|
||||
else:
|
||||
flash(
|
||||
f"You need to upgrade your plan to create new custom alias.",
|
||||
"warning",
|
||||
)
|
||||
flash(f"You need to upgrade your plan to create new alias.", "warning")
|
||||
|
||||
elif request.form.get("form-name") == "create-random-email":
|
||||
if current_user.can_create_new_alias():
|
||||
gen_email = GenEmail.create_new_random(user_id=current_user.id)
|
||||
db.session.commit()
|
||||
|
||||
LOG.d("generate new email %s for user %s", gen_email, current_user)
|
||||
flash(f"Alias {gen_email.email} has been created", "success")
|
||||
session[HIGHLIGHT_GEN_EMAIL_ID] = gen_email.id
|
||||
else:
|
||||
flash(f"You need to upgrade your plan to create new alias.", "warning")
|
||||
|
||||
elif request.form.get("form-name") == "switch-email-forwarding":
|
||||
gen_email_id = request.form.get("gen-email-id")
|
||||
|
@ -85,7 +93,7 @@ def index():
|
|||
DeletedAlias.create(user_id=current_user.id, email=gen_email.email)
|
||||
|
||||
db.session.commit()
|
||||
flash(f"Email alias {email} has been deleted", "success")
|
||||
flash(f"Alias {email} has been deleted", "success")
|
||||
|
||||
return redirect(url_for("dashboard.index", query=query))
|
||||
|
||||
|
|
|
@ -407,6 +407,12 @@ class GenEmail(db.Model, ModelMixin):
|
|||
|
||||
return GenEmail.create(user_id=user_id, email=email)
|
||||
|
||||
@classmethod
|
||||
def create_new_random(cls, user_id):
|
||||
"""create a new random alias"""
|
||||
random_email = generate_email()
|
||||
return GenEmail.create(user_id=user_id, email=random_email)
|
||||
|
||||
def __repr__(self):
|
||||
return f"<GenEmail {self.id} {self.email}>"
|
||||
|
||||
|
|
|
@ -38,3 +38,13 @@ def test_suggested_emails_for_user_who_cannot_create_new_email(flask_client):
|
|||
# all other emails are generated emails
|
||||
for email in other_emails:
|
||||
assert GenEmail.get_by(email=email)
|
||||
|
||||
|
||||
def test_gen_email_create_random(flask_client):
|
||||
user = User.create(
|
||||
email="a@b.c", password="password", name="Test User", activated=True
|
||||
)
|
||||
db.session.commit()
|
||||
|
||||
alias = GenEmail.create_new_random(user.id)
|
||||
assert alias.email.endswith(EMAIL_DOMAIN)
|
||||
|
|
Loading…
Reference in New Issue