Browse Source

model - fido_enabled

devStorm 5 years ago
parent
commit
f7e3320242

+ 1 - 1
app/auth/views/fido.py

@@ -31,7 +31,7 @@ def fido():
 
 
     user = User.get(user_id)
     user = User.get(user_id)
 
 
-    if not (user and (user.fido_uuid is not None)):
+    if not (user and (user.fido_enabled())):
         flash("Only user with security key linked should go to this page", "warning")
         flash("Only user with security key linked should go to this page", "warning")
         return redirect(url_for("auth.login"))
         return redirect(url_for("auth.login"))
 
 

+ 1 - 1
app/auth/views/login_utils.py

@@ -14,7 +14,7 @@ def after_login(user, next_url):
     If user enables MFA: redirect user to MFA page
     If user enables MFA: redirect user to MFA page
     Otherwise redirect to dashboard page if no next_url
     Otherwise redirect to dashboard page if no next_url
     """
     """
-    if user.fido_uuid is not None:
+    if user.fido_enabled():
         # Use the same session for FIDO so that we can easily
         # Use the same session for FIDO so that we can easily
         # switch between these two 2FA option
         # switch between these two 2FA option
         session[MFA_USER_ID] = user.id
         session[MFA_USER_ID] = user.id

+ 1 - 1
app/auth/views/mfa.py

@@ -58,5 +58,5 @@ def mfa():
     return render_template(
     return render_template(
         "auth/mfa.html",
         "auth/mfa.html",
         otp_token_form=otp_token_form,
         otp_token_form=otp_token_form,
-        enable_fido=(user.fido_uuid is not None),
+        enable_fido=(user.fido_enabled()),
     )
     )

+ 1 - 1
app/dashboard/views/fido_cancel.py

@@ -14,7 +14,7 @@ class LoginForm(FlaskForm):
 @dashboard_bp.route("/fido_cancel", methods=["GET", "POST"])
 @dashboard_bp.route("/fido_cancel", methods=["GET", "POST"])
 @login_required
 @login_required
 def fido_cancel():
 def fido_cancel():
-    if current_user.fido_uuid is None:
+    if not current_user.fido_enabled():
         flash("You haven't registed a security key", "warning")
         flash("You haven't registed a security key", "warning")
         return redirect(url_for("dashboard.index"))
         return redirect(url_for("dashboard.index"))
 
 

+ 1 - 1
app/dashboard/views/fido_setup.py

@@ -22,7 +22,7 @@ class FidoTokenForm(FlaskForm):
 @dashboard_bp.route("/fido_setup", methods=["GET", "POST"])
 @dashboard_bp.route("/fido_setup", methods=["GET", "POST"])
 @login_required
 @login_required
 def fido_setup():
 def fido_setup():
-    if current_user.fido_uuid is not None:
+    if current_user.fido_enabled():
         flash("You have already registered your security key", "warning")
         flash("You have already registered your security key", "warning")
         return redirect(url_for("dashboard.index"))
         return redirect(url_for("dashboard.index"))
 
 

+ 5 - 0
app/models.py

@@ -140,6 +140,11 @@ class User(db.Model, ModelMixin, UserMixin):
     fido_pk = db.Column(db.String(), nullable=True, unique=True)
     fido_pk = db.Column(db.String(), nullable=True, unique=True)
     fido_sign_count = db.Column(db.Integer(), nullable=True)
     fido_sign_count = db.Column(db.Integer(), nullable=True)
 
 
+    def fido_enabled(self) -> bool:
+        if self.fido_uuid is not None:
+            return True
+        return False
+
     # some users could have lifetime premium
     # some users could have lifetime premium
     lifetime = db.Column(db.Boolean, default=False, nullable=False, server_default="0")
     lifetime = db.Column(db.Boolean, default=False, nullable=False, server_default="0")