def _threadDoGETJob(self, request): subject_identifier = request.parsed_request_args['subject_identifier'] if subject_identifier.HasAccountKey(): subject_account_key = subject_identifier.GetData() else: raise HydrusExceptions.MissingCredentialsException( 'I was expecting an account key, but did not get one!') subject_account = HG.server_controller.Read('account', self._service_key, subject_account_key) account_info = HG.server_controller.Read('account_info', self._service_key, request.hydrus_account, subject_account) body = HydrusNetwork.DumpHydrusArgsToNetworkBytes( {'account_info': account_info}) response_context = HydrusServerResources.ResponseContext(200, body=body) return response_context
def _callbackEstablishAccountFromHeader( self, request: HydrusServerRequest.HydrusRequest): session_key = None if request.requestHeaders.hasHeader('Cookie'): cookie_texts = request.requestHeaders.getRawHeaders('Cookie') cookie_text = cookie_texts[0] try: cookies = http.cookies.SimpleCookie(cookie_text) if 'session_key' in cookies: # Morsel, for real, ha ha ha morsel = cookies['session_key'] session_key_hex = morsel.value session_key = bytes.fromhex(session_key_hex) except: raise HydrusExceptions.BadRequestException( 'Problem parsing cookies for Session Cookie!') if session_key is None: access_key = self._parseHydrusNetworkAccessKey(request, key_required=False) if access_key is None: raise HydrusExceptions.MissingCredentialsException( 'No credentials found in request!') else: account = HG.server_controller.server_session_manager.GetAccountFromAccessKey( self._service_key, access_key) else: account = HG.server_controller.server_session_manager.GetAccount( self._service_key, session_key) request.hydrus_account = account return request