diff --git a/lib/galaxy/managers/users.py b/lib/galaxy/managers/users.py index f3f9ba94d0f..2ad6457a2c0 100644 --- a/lib/galaxy/managers/users.py +++ b/lib/galaxy/managers/users.py @@ -489,7 +489,9 @@ class UserManager(base.ModelManager, deletable.PurgableManagerMixin): return "Failed to produce password reset token. User not found." def get_reset_token(self, trans, email): - reset_user = trans.sa_session.query(self.app.model.User).filter(func.lower(self.app.model.User.table.c.email) == email.lower()).first() + reset_user = trans.sa_session.query(self.app.model.User).filter(self.app.model.User.table.c.email == email.lower()).first() + if not reset_user and email != email.lower(): + reset_user = trans.sa_session.query(self.app.model.User).filter(func.lower(self.app.model.User.table.c.email) == email.lower()).first() if reset_user: prt = self.app.model.PasswordResetToken(reset_user) trans.sa_session.add(prt) diff --git a/lib/galaxy/webapps/galaxy/controllers/user.py b/lib/galaxy/webapps/galaxy/controllers/user.py index 4e75d5a91ea..7cf207f7a8b 100644 --- a/lib/galaxy/webapps/galaxy/controllers/user.py +++ b/lib/galaxy/webapps/galaxy/controllers/user.py @@ -135,9 +135,13 @@ class User(BaseUIController, UsesFormDefinitionsMixin, CreatesApiKeysMixin): if not login or not password: return self.message_exception(trans, "Please specify a username and password.") user = trans.sa_session.query(trans.app.model.User).filter(or_( - func.lower(trans.app.model.User.table.c.email) == login.lower(), + trans.app.model.User.table.c.email == login, trans.app.model.User.table.c.username == login )).first() + if not user and login.lower() != login: + user = trans.sa_session.query(trans.app.model.User).filter( + func.lower(trans.app.model.User.table.c.email) == login.lower() + ).first() log.debug("trans.app.config.auth_config_file: %s" % trans.app.config.auth_config_file) if user is None: message, user = self.__autoregistration(trans, login, password)