From 3b81ec57ea35dbd3ffe8263d79d8e991a77c5ba8 Mon Sep 17 00:00:00 2001 From: Josh Purvis Date: Sat, 13 Apr 2013 15:11:56 -0400 Subject: [PATCH 1/2] Changed has_role to accept strings with mongoengine. Fixes #110 --- flask_security/core.py | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/flask_security/core.py b/flask_security/core.py index d794fad..1c736c8 100644 --- a/flask_security/core.py +++ b/flask_security/core.py @@ -241,8 +241,7 @@ class RoleMixin(object): self.name == getattr(other, 'name', None)) def __ne__(self, other): - return (self.name != other and - self.name != getattr(other, 'name', None)) + return not self.__eq__(other) class UserMixin(BaseUserMixin): @@ -261,7 +260,10 @@ class UserMixin(BaseUserMixin): """Returns `True` if the user identifies with the specified role. :param role: A role name or `Role` instance""" - return role in self.roles + if isinstance(role, basestring): + return role in (role.name for role in self.roles) + else: + return role in self.roles class AnonymousUser(AnonymousUserBase): From e749b77ca76abf37dca924f9436798ff2e802d25 Mon Sep 17 00:00:00 2001 From: Jay Goel Date: Sun, 14 Apr 2013 16:37:23 -0400 Subject: [PATCH 2/2] Make flask-login respect SECURITY_FLASH_MESSAGES --- flask_security/core.py | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/flask_security/core.py b/flask_security/core.py index 1c736c8..b687fb4 100644 --- a/flask_security/core.py +++ b/flask_security/core.py @@ -179,8 +179,14 @@ def _get_login_manager(app): lm.login_view = '%s.login' % cv('BLUEPRINT_NAME', app=app) lm.user_loader(_user_loader) lm.token_loader(_token_loader) - lm.login_message, lm.login_message_category = cv('MSG_LOGIN', app=app) - lm.needs_refresh_message, lm.needs_refresh_message_category = cv('MSG_REFRESH', app=app) + + if cv('FLASH_MESSAGES', app=app): + lm.login_message, lm.login_message_category = cv('MSG_LOGIN', app=app) + lm.needs_refresh_message, lm.needs_refresh_message_category = cv('MSG_REFRESH', app=app) + else: + lm.login_message = None + lm.needs_refresh_message = None + lm.init_app(app) return lm