From 7d6b42e960037a0ebf6351746255ad2b0faa4dd7 Mon Sep 17 00:00:00 2001 From: Rotem Yaari Date: Sun, 11 Aug 2013 16:56:44 +0300 Subject: [PATCH 1/4] #147: only get by email_or_id if it is numeric --- flask_security/datastore.py | 17 ++++++++++++++--- 1 file changed, 14 insertions(+), 3 deletions(-) diff --git a/flask_security/datastore.py b/flask_security/datastore.py index 029bf09..d15ba3e 100644 --- a/flask_security/datastore.py +++ b/flask_security/datastore.py @@ -180,9 +180,20 @@ class SQLAlchemyUserDatastore(SQLAlchemyDatastore, UserDatastore): UserDatastore.__init__(self, user_model, role_model) def get_user(self, id_or_email): - return (self.user_model.query.get(id_or_email) or - self.user_model.query.filter( - self.user_model.email.ilike(id_or_email)).first()) + returned = None + if self._is_numeric(id_or_email): + returned = self.user_model.query.get(id_or_email) + if not returned: + returned = self.user_model.query.filter( + self.user_model.email.ilike(id_or_email)).first() + return returned + + def _is_numeric(self, value): + try: + int(value) + except ValueError: + return False + return True def find_user(self, **kwargs): return self.user_model.query.filter_by(**kwargs).first() From 7bef96c26148fc4bfcad08d3102e9c200bc37184 Mon Sep 17 00:00:00 2001 From: "Wise, Catherine (ICT Centre, Acton)" Date: Mon, 12 Aug 2013 15:07:13 +1000 Subject: [PATCH 2/4] Commit deleting role from user (peewee). --- flask_security/datastore.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/flask_security/datastore.py b/flask_security/datastore.py index 029bf09..04c3315 100644 --- a/flask_security/datastore.py +++ b/flask_security/datastore.py @@ -291,8 +291,9 @@ class PeeweeUserDatastore(PeeweeDatastore, UserDatastore): result = self.UserRole.select() \ .where(self.UserRole.user == user, self.UserRole.role == role) if result.count(): - self.UserRole.delete().where( + query = self.UserRole.delete().where( self.UserRole.user == user, self.UserRole.role == role) + query.execute() return True else: return False From 6f68f1d540502a1747cae87f0ffa2332cb4e2c94 Mon Sep 17 00:00:00 2001 From: Alexey Poryadin Date: Thu, 15 Aug 2013 12:46:09 +0400 Subject: [PATCH 3/4] Fix imports from Flask-WTF --- flask_security/forms.py | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/flask_security/forms.py b/flask_security/forms.py index 0c1bd70..e43ffd0 100644 --- a/flask_security/forms.py +++ b/flask_security/forms.py @@ -15,7 +15,8 @@ import urlparse import flask_wtf as wtf from flask import request, current_app -from flask_wtf import Form as BaseForm, TextField, PasswordField, \ +from flask_wtf import Form as BaseForm +from wtforms import TextField, PasswordField, validators, \ SubmitField, HiddenField, BooleanField, ValidationError, Field from flask_login import current_user from werkzeug.local import LocalProxy @@ -50,19 +51,19 @@ class ValidatorMixin(object): return super(ValidatorMixin, self).__call__(form, field) -class EqualTo(ValidatorMixin, wtf.EqualTo): +class EqualTo(ValidatorMixin, validators.EqualTo): pass -class Required(ValidatorMixin, wtf.Required): +class Required(ValidatorMixin, validators.Required): pass -class Email(ValidatorMixin, wtf.Email): +class Email(ValidatorMixin, validators.Email): pass -class Length(ValidatorMixin, wtf.Length): +class Length(ValidatorMixin, validators.Length): pass From 829bb135d7740b4e2a8d4bbec6e46f5629caff78 Mon Sep 17 00:00:00 2001 From: Matt Wright Date: Tue, 20 Aug 2013 12:35:08 -0400 Subject: [PATCH 4/4] Update CHANGES --- CHANGES | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/CHANGES b/CHANGES index 94c964d..ab4a639 100644 --- a/CHANGES +++ b/CHANGES @@ -3,6 +3,16 @@ Flask-Security Changelog Here you can see the full list of changes between each Flask-Security release. +Version 1.6.9 +------------- + +Released August 20th 2013 + +- Fix bug in SQLAlchemy datastore's `get_user` function +- Fix bug in PeeWee datastore's `remove_role_from_user` function +- Fixed import error caused by new Flask-WTF release + + Version 1.6.8 ------------- @@ -10,6 +20,7 @@ Released August 1st 2013 - Fixed bug with case sensitivity of email address during login + Version 1.6.7 -------------