Bläddra i källkod

feat: 添加密码重设功能

SongZihuan 3 år sedan
förälder
incheckning
d1464565b6
2 ändrade filer med 28 tillägg och 3 borttagningar
  1. 21 2
      app/test.py
  2. 7 1
      templates/test.html

+ 21 - 2
app/test.py

@@ -25,6 +25,7 @@ class SearchForm(FlaskForm):
 class ResetDeleteForm(FlaskForm):
 class ResetDeleteForm(FlaskForm):
     name = StringField("User name", validators=[DataRequired()])
     name = StringField("User name", validators=[DataRequired()])
     passwd = PasswordField("Passwd", validators=[DataRequired()])
     passwd = PasswordField("Passwd", validators=[DataRequired()])
+    new_passwd = PasswordField("New passwd")
     submit = SubmitField("Submit")
     submit = SubmitField("Submit")
 
 
 
 
@@ -53,8 +54,6 @@ def __load_word(word):
     template_var = dict(word=word, len=len,
     template_var = dict(word=word, len=len,
                         box=box, box_sum=box_sum, have_job=have_job,
                         box=box, box_sum=box_sum, have_job=have_job,
                         search=search_from, reset_delete=reset_delete_form, upload=upload_form)
                         search=search_from, reset_delete=reset_delete_form, upload=upload_form)
-
-    print(word)
     if word is None:
     if word is None:
         return render_template("test.html", **template_var, have_word=False)
         return render_template("test.html", **template_var, have_word=False)
     serializer = URLSafeTimedSerializer(current_app.config["SECRET_KEY"])
     serializer = URLSafeTimedSerializer(current_app.config["SECRET_KEY"])
@@ -233,6 +232,26 @@ def delete_user():
     abort(400)
     abort(400)
 
 
 
 
+@test.route("/reset_passwd", methods=["POST"])
+@login_required
+def reset_passwd():
+    reset_form = ResetDeleteForm()
+    if reset_form.validate_on_submit():
+        if len(reset_form.new_passwd.data) < 4 or len(reset_form.new_passwd.data) > 32:
+            flash("Please enter a password of length 4-32")
+        else:
+            user: UserWordDataBase = current_user
+            if not user.check_passwd(reset_form.passwd.data):
+                flash("Passwd error.")
+            else:
+                flash("User passwd reset")
+                user.set_passwd(reset_form.new_passwd.data)
+                logout_user()
+                return redirect(url_for("home.index"))
+        return redirect(url_for("test.question"))
+    abort(400)
+
+
 class Upload(Thread):
 class Upload(Thread):
     upload = {}
     upload = {}
 
 

+ 7 - 1
templates/test.html

@@ -116,7 +116,7 @@
                             <div class="modal-dialog">
                             <div class="modal-dialog">
                                 <div class="modal-content">
                                 <div class="modal-content">
                                     <div class="modal-header">
                                     <div class="modal-header">
-                                        <h4 class="modal-title"> Reset or delete user? </h4>
+                                        <h4 class="modal-title"> Reset or delete user? Or you can just set new passwd. </h4>
                                     </div>
                                     </div>
                                     <div class="modal-body">
                                     <div class="modal-body">
                                         <p> Are you sure you want to reset or delete '{{ current_user.user }}' ? </p>
                                         <p> Are you sure you want to reset or delete '{{ current_user.user }}' ? </p>
@@ -128,8 +128,14 @@
                                             {{ reset_delete.passwd.label }}
                                             {{ reset_delete.passwd.label }}
                                             {{ reset_delete.passwd(class="form-control") }}
                                             {{ reset_delete.passwd(class="form-control") }}
                                         </div>
                                         </div>
+
+                                        <div class="form-group text-left">
+                                            {{ reset_delete.new_passwd.label }}
+                                            {{ reset_delete.new_passwd(class="form-control") }}
+                                        </div>
                                     </div>
                                     </div>
                                     <div class="modal-footer">
                                     <div class="modal-footer">
+                                        {{ reset_delete.submit(class='btn btn-outline-danger mr-2', formmethod="post", formaction=url_for("test.reset_passwd"), value="Set new passwd") }}
                                         {{ reset_delete.submit(class='btn btn-outline-danger mr-2', formmethod="post", formaction=url_for("test.reset_user"), value="Reset") }}
                                         {{ reset_delete.submit(class='btn btn-outline-danger mr-2', formmethod="post", formaction=url_for("test.reset_user"), value="Reset") }}
                                         {{ reset_delete.submit(class='btn btn-danger mr-2', formmethod="post", formaction=url_for("test.delete_user"), value="Delete") }}
                                         {{ reset_delete.submit(class='btn btn-danger mr-2', formmethod="post", formaction=url_for("test.delete_user"), value="Delete") }}
                                         <a class="btn btn-secondary" data-dismiss="modal"> No </a>
                                         <a class="btn btn-secondary" data-dismiss="modal"> No </a>