Browse Source

better whoami endpoint with get_current method

Guénaël Muller 6 years ago
parent
commit
73df639e34
2 changed files with 12 additions and 3 deletions
  1. 8 0
      tracim/lib/core/user.py
  2. 4 3
      tracim/views/core_api/session_controller.py

+ 8 - 0
tracim/lib/core/user.py View File

@@ -74,6 +74,14 @@ class UserApi(object):
74 74
     def get_one_by_id(self, id: int, in_context=False) -> User:
75 75
         return self.get_one(user_id=id, in_context=in_context)
76 76
 
77
+    def get_current(self, in_context: bool=False):
78
+        """
79
+        Get current_user
80
+        :param in_context:
81
+        :return:
82
+        """
83
+        return self._get_correct_user_type(self._user, in_context)
84
+
77 85
     def get_all(self) -> typing.Iterable[User]:
78 86
         return self._session.query(User).order_by(User.display_name).all()
79 87
 

+ 4 - 3
tracim/views/core_api/session_controller.py View File

@@ -79,11 +79,12 @@ class SessionController(Controller):
79 79
         Return current logged in user or 401
80 80
         """
81 81
         app_config = request.registry.settings['CFG']
82
-        return UserInContext(
83
-            user=request.current_user,
84
-            dbsession=request.dbsession,
82
+        uapi = UserApi(
83
+            request.current_user,
84
+            session=request.dbsession,
85 85
             config=app_config,
86 86
         )
87
+        return uapi.get_current(in_context=True)
87 88
 
88 89
     def bind(self, configurator: Configurator):
89 90