Support cancelled premium users in custom domain & directory

- Freemium user can see custom domain and directory but could not add new.
- user who has added custom domain or directory before could delete them
This commit is contained in:
Son NK 2020-01-16 22:21:19 +01:00
parent 3f0aae6f02
commit 13283b6327
6 changed files with 25 additions and 21 deletions

View File

@ -13,6 +13,12 @@
<div class="col-md-8 offset-md-2">
<h1 class="h3"> Custom Domains </h1>
{% if not current_user.is_premium() %}
<div class="alert alert-danger" role="alert">
This feature is only available in premium plan.
</div>
{% endif %}
{% for custom_domain in custom_domains %}
<div class="card" style="max-width: 50rem">
<div class="card-body">

View File

@ -10,6 +10,12 @@
<div class="col-md-8 offset-md-2">
<h1 class="h3"> Directories </h1>
{% if not current_user.is_premium() %}
<div class="alert alert-danger" role="alert">
This feature is only available in premium plan.
</div>
{% endif %}
<div class="alert alert-primary" role="alert">
Directory allows you to create aliases <b>on the fly</b>. <br>
Simply use <em>directory/<b>anything</b>@{{ EMAIL_DOMAIN }}</em>

View File

@ -17,11 +17,6 @@ class NewCustomDomainForm(FlaskForm):
@dashboard_bp.route("/custom_domain", methods=["GET", "POST"])
@login_required
def custom_domain():
# only premium user can add custom domain
if not current_user.is_premium():
flash("Only premium user can add custom domains", "warning")
return redirect(url_for("dashboard.index"))
custom_domains = CustomDomain.query.filter_by(user_id=current_user.id).all()
new_custom_domain_form = NewCustomDomainForm()
@ -30,6 +25,10 @@ def custom_domain():
if request.method == "POST":
if request.form.get("form-name") == "create":
if not current_user.is_premium():
flash("Only premium plan can add custom domain", "warning")
return redirect(url_for("dashboard.custom_domain"))
if new_custom_domain_form.validate():
new_domain = new_custom_domain_form.domain.data
if CustomDomain.get_by(domain=new_domain):

View File

@ -18,11 +18,6 @@ class NewDirForm(FlaskForm):
@dashboard_bp.route("/directory", methods=["GET", "POST"])
@login_required
def directory():
# only premium user can add directory
if not current_user.is_premium():
flash("Only premium user can add directories", "warning")
return redirect(url_for("dashboard.index"))
dirs = Directory.query.filter_by(user_id=current_user.id).all()
new_dir_form = NewDirForm()
@ -47,6 +42,10 @@ def directory():
return redirect(url_for("dashboard.directory"))
elif request.form.get("form-name") == "create":
if not current_user.is_premium():
flash("Only premium plan can add directory", "warning")
return redirect(url_for("dashboard.directory"))
if new_dir_form.validate():
new_dir_name = new_dir_form.name.data.lower()
@ -60,7 +59,7 @@ def directory():
flash(f"Directory {new_dir.name} is created", "success")
return redirect(url_for("dashboard.directory",))
return redirect(url_for("dashboard.directory"))
return render_template(
"dashboard/directory.html",

View File

@ -16,11 +16,6 @@ from app.models import CustomDomain, GenEmail
@dashboard_bp.route("/domains/<int:custom_domain_id>/dns", methods=["GET", "POST"])
@login_required
def domain_detail_dns(custom_domain_id):
# only premium user can see custom domain
if not current_user.is_premium():
flash("Only premium user can add custom domains", "warning")
return redirect(url_for("dashboard.index"))
custom_domain = CustomDomain.get(custom_domain_id)
if not custom_domain or custom_domain.user_id != current_user.id:
flash("You cannot see this page", "warning")
@ -103,11 +98,6 @@ def domain_detail_dns(custom_domain_id):
@dashboard_bp.route("/domains/<int:custom_domain_id>/info", methods=["GET", "POST"])
@login_required
def domain_detail(custom_domain_id):
# only premium user can see custom domain
if not current_user.is_premium():
flash("Only premium user can add custom domains", "warning")
return redirect(url_for("dashboard.index"))
custom_domain = CustomDomain.get(custom_domain_id)
if not custom_domain or custom_domain.user_id != current_user.id:
flash("You cannot see this page", "warning")

View File

@ -158,6 +158,10 @@ def fake_data():
)
db.session.commit()
Directory.create(user_id=user.id, name="abcd")
Directory.create(user_id=user.id, name="xyzt")
db.session.commit()
# Create a client
client1 = Client.create_new(name="Demo", user_id=user.id)
client1.oauth_client_id = "client-id"