aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMarcin Kuzminski <marcin@python-works.com>2012-01-24 20:01:09 +0200
committerMarcin Kuzminski <marcin@python-works.com>2012-01-24 20:01:09 +0200
commit52eb180ea858d7a507e9ebe0306d7f6b1480d74e (patch)
treec90d65180df3676fc114b98e6e68a3156373bd8a
parentc809f0b263078efecba1c0d73bb7faa6d71a9f9e (diff)
fixes missing email attribute. Bug introduced after applying setters and getter for sqlalchemy
-rwxr-xr-xrhodecode/model/db.py9
1 files changed, 9 insertions, 0 deletions
diff --git a/rhodecode/model/db.py b/rhodecode/model/db.py
index d7aa6b17..d9369b29 100755
--- a/rhodecode/model/db.py
+++ b/rhodecode/model/db.py
@@ -54,6 +54,7 @@ log = logging.getLogger(__name__)
# BASE CLASSES
#==============================================================================
+
class ModelSerializer(json.JSONEncoder):
"""
Simple Serializer for JSON,
@@ -84,6 +85,7 @@ class ModelSerializer(json.JSONEncoder):
else:
return json.JSONEncoder.default(self, obj)
+
class BaseModel(object):
"""Base Model for all classess
@@ -101,6 +103,10 @@ class BaseModel(object):
d = {}
for k in self._get_keys():
d[k] = getattr(self, k)
+
+ # also use __json__() if present to get additional fields
+ for k, val in getattr(self, '__json__', lambda: {})().iteritems():
+ d[k] = val
return d
def get_appstruct(self):
@@ -315,6 +321,9 @@ class User(Base, BaseModel):
except:
return self.__class__.__name__
+ def __json__(self):
+ return {'email': self.email}
+
@classmethod
def get_by_username(cls, username, case_insensitive=False):
if case_insensitive: