def find_one(self, req, **lookup): session_doc = super().find_one(req, **lookup) user_doc = get_resource_service('users').find_one(req=None, _id=session_doc['user']) self.enhance_document_with_default_prefs(session_doc, user_doc) self.enhance_document_with_user_privileges(session_doc, user_doc) session_doc[_action_key] = get_privileged_actions(session_doc[_privileges_key]) if req is None: req = parse_request('auth') session_doc['_etag'] = req.if_match else: session_doc['_etag'] = document_etag(session_doc) return session_doc
def find_one(self, req, **lookup): session_doc = super().find_one(req, **lookup) user_doc = get_resource_service('users').find_one( req=None, _id=session_doc['user']) self.enhance_document_with_default_prefs(session_doc, user_doc) self.enhance_document_with_user_privileges(session_doc, user_doc) session_doc[_action_key] = get_privileged_actions( session_doc[_privileges_key]) if req is None: req = parse_request('auth') session_doc['_etag'] = req.if_match else: session_doc['_etag'] = document_etag(session_doc) return session_doc
def enhance_document_with_user_privileges(self, user_doc): role_doc = get_resource_service('users').get_role(user_doc) get_resource_service('users').set_privileges(user_doc, role_doc) user_doc[_action_key] = get_privileged_actions(user_doc[_privileges_key])