diff --git a/api/auth_api.py b/api/auth_api.py index 2247d64..845048a 100644 --- a/api/auth_api.py +++ b/api/auth_api.py @@ -117,7 +117,8 @@ def oidc(): user = create_or_retrieve_user_from_userinfo(flask.session['userinfo']) - return jsonify(user.to_dict()) + #return jsonify(user.to_dict()) + return user.toJSON() if user is None: return "Could not authenticate: could not find or create user.", 401 if current_app.config.get("AUTH_RETURN_EXTERNAL_JWT", False): diff --git a/models/user_model.py b/models/user_model.py index 077b0bd..a564bf4 100644 --- a/models/user_model.py +++ b/models/user_model.py @@ -2,6 +2,8 @@ """ Example user model and related models """ +import json + from sqlalchemy.orm import relation from sqlalchemy import MetaData @@ -347,7 +349,12 @@ class User(UserMixin, db.Model): followers.c.follower_id == self.id).order_by(Post.timestamp.desc()) def to_dict(self): - return dict(id=self.id, email=self.email, groups=self.groups) + #return self.__dict__ + return dict(id=self.id, email=self.email, groups=[g.to_dict() for g in self.groups]) + + def toJSON(self): + return json.dumps(self.to_dict(), default=lambda o: o.__dict__, + sort_keys=True, indent=4) def __repr__(self): return '' % self.nickname @@ -403,3 +410,10 @@ class Group(db.Model): def __str__(self): return self.name + + def to_dict(self): + return dict(id=self.id, name=self.name) + + def toJSON(self): + return json.dumps(self.to_dict(), default=lambda o: o.__dict__, + sort_keys=True, indent=4)