Selaa lähdekoodia

修复 bug 用户注册的时候提示错误。两处错误:
1. 用户名未做是否被注册的校验,导致 insert 用户实体的时候报错
2. 给注册成功的用户发送邮件,后台邮件服务器错误,导致前端提示错误。

flying1020 6 vuotta sitten
vanhempi
commit
6d616ae5e5
2 muutettua tiedostoa jossa 10 lisäystä ja 2 poistoa
  1. 5 1
      walle/api/user.py
  2. 5 1
      walle/form/user.py

+ 5 - 1
walle/api/user.py

@@ -99,7 +99,11 @@ class UserAPI(SecurityResource):
                     <br> <br>Welcome to walle, it cost a lot of time and lock to meet you, enjoy it : )
                     <br><br>name: %s<br>password: %s""" \
                               % (user.username, user.email, form.password.data)
-            emails.send_email(user.email, 'Welcome to walle', message, '')
+
+            try:
+                emails.send_email(user.email, 'Welcome to walle', message, '')
+            except Exception as e:
+                current_app.logger.warning(e)
 
             return self.render_json(data=user.item(user_id=user.id))
         return self.render_error(code=Code.form_error, message=form.errors)

+ 5 - 1
walle/form/user.py

@@ -48,7 +48,11 @@ class UserForm(FlaskForm):
 
 
 class RegistrationForm(UserForm):
-    pass
+
+    def validate_username(self, field):
+        """ username muse be unique """
+        if UserModel.query.filter_by(username=field.data).count():
+            raise ValidationError('此用户名已经被注册')
 
 
 class UserUpdateForm(FlaskForm):