Browse Source

Validate field data as lowercase

To prevent i.e. usernames like Test and test to co-exist. Only one off
the two is allowed to exist.
Peter Justin 8 years ago
parent
commit
68d7bd80d9
2 changed files with 14 additions and 8 deletions
  1. 2 2
      flaskbb/auth/forms.py
  2. 12 6
      flaskbb/management/forms.py

+ 2 - 2
flaskbb/auth/forms.py

@@ -84,12 +84,12 @@ class RegisterForm(FlaskForm):
             raise ValidationError(_(
                 "This is a system reserved name. Choose a different one.")
             )
-        user = User.query.filter_by(username=field.data).first()
+        user = User.query.filter_by(username=field.data.lower()).first()
         if user:
             raise ValidationError(_("This username is already taken."))
 
     def validate_email(self, field):
-        email = User.query.filter_by(email=field.data).first()
+        email = User.query.filter_by(email=field.data.lower()).first()
         if email:
             raise ValidationError(_("This email address is already taken."))
 

+ 12 - 6
flaskbb/management/forms.py

@@ -103,12 +103,14 @@ class UserForm(FlaskForm):
         if hasattr(self, "user"):
             user = User.query.filter(
                 db.and_(
-                    User.username.like(field.data),
+                    User.username.like(field.data.lower()),
                     db.not_(User.id == self.user.id)
                 )
             ).first()
         else:
-            user = User.query.filter(User.username.like(field.data)).first()
+            user = User.query.filter(
+                User.username.like(field.data.lower())
+            ).first()
 
         if user:
             raise ValidationError(_("This username is already taken."))
@@ -117,12 +119,14 @@ class UserForm(FlaskForm):
         if hasattr(self, "user"):
             user = User.query.filter(
                 db.and_(
-                    User.email.like(field.data),
+                    User.email.like(field.data.lower()),
                     db.not_(User.id == self.user.id)
                 )
             ).first()
         else:
-            user = User.query.filter(User.email.like(field.data)).first()
+            user = User.query.filter(
+                User.email.like(field.data.lower())
+            ).first()
 
         if user:
             raise ValidationError(_("This email address is already taken."))
@@ -218,12 +222,14 @@ class GroupForm(FlaskForm):
         if hasattr(self, "group"):
             group = Group.query.filter(
                 db.and_(
-                    Group.name.like(field.data),
+                    Group.name.like(field.data.lower()),
                     db.not_(Group.id == self.group.id)
                 )
             ).first()
         else:
-            group = Group.query.filter(Group.name.like(field.data)).first()
+            group = Group.query.filter(
+                Group.name.like(field.data.lower())
+            ).first()
 
         if group:
             raise ValidationError(_("This group name is already taken."))