@@ -33,8 +48,8 @@
Please use this referral link to invite your friends trying out SimpleLogin:
-
-
+
+ You can also use the referral code {{ referral.code }} when sharing any link on SimpleLogin.
+ Just append ?slref={{ referral.code }} to any link on SimpleLogin website.
+
+
{% endfor %}
@@ -57,9 +77,10 @@
{% endif %}
-
-
{% endblock %}
\ No newline at end of file
diff --git a/app/dashboard/views/referral.py b/app/dashboard/views/referral.py
index f9aedfa0..05333bef 100644
--- a/app/dashboard/views/referral.py
+++ b/app/dashboard/views/referral.py
@@ -4,7 +4,7 @@ from flask_login import login_required, current_user
from app.dashboard.base import dashboard_bp
from app.extensions import db
from app.log import LOG
-from app.models import Referral
+from app.models import Referral, User
from app.utils import random_string
@@ -12,20 +12,33 @@ from app.utils import random_string
@login_required
def referral_route():
if request.method == "POST":
- # Generate a new unique ref code
- code = random_string(15)
- for _ in range(100):
- if not Referral.get_by(code=code):
- # found
- break
-
- LOG.warning("Referral Code %s already used", code)
+ if request.form.get("form-name") == "create":
+ # Generate a new unique ref code
code = random_string(15)
+ for _ in range(100):
+ if not Referral.get_by(code=code):
+ # found
+ break
- referral = Referral.create(user_id=current_user.id, code=code)
- db.session.commit()
- flash("A new referral code has been created", "success")
- return redirect(url_for("dashboard.referral_route", highlight_id=referral.id))
+ LOG.warning("Referral Code %s already used", code)
+ code = random_string(15)
+
+ name = request.form.get("name")
+ referral = Referral.create(user_id=current_user.id, code=code, name=name)
+ db.session.commit()
+ flash("A new referral code has been created", "success")
+ return redirect(
+ url_for("dashboard.referral_route", highlight_id=referral.id)
+ )
+ elif request.form.get("form-name") == "update":
+ referral_id = request.form.get("referral-id")
+ referral = Referral.get(referral_id)
+ if referral and referral.user_id == current_user.id:
+ referral.name = request.form.get("name")
+ db.session.commit()
+ flash("Referral name updated", "success")
+ return redirect(
+ url_for("dashboard.referral_route", highlight_id=referral.id)
# Highlight a referral
highlight_id = request.args.get("highlight_id")