def mutate(_root, info: ResolveInfo, username: str, password: str): request = get_request(info) gmp = get_gmp(info) try: response = gmp.authenticate(username, password) request.session['username'] = username request.session['password'] = password timezone = get_text_from_element(response, 'timezone') # get the timeout from now timeout = request.session.get_expiry_date() # actually store the timeout in the session request.session.set_expiry(timeout) setting_response = gmp.get_setting(USER_SETTING_LOCALE) setting_element = get_subelement(setting_response, 'setting') setting = get_text_from_element(setting_element, 'value') return LoginMutation( ok=True, timezone=timezone, session_timeout=timeout, locale=setting, ) except GvmResponseError as e: raise AuthenticationFailed(e.message) from None
def test_valid_subelement(self): element = et.fromstring("<foo><bar></bar></foo>") subelement = get_subelement(element, 'bar') self.assertIsNotNone(subelement) self.assertEqual(subelement.tag, 'bar')
def test_unknown_subelement(self): element = et.fromstring("<foo></foo>") self.assertIsNone(get_subelement(element, 'bar'))
def test_none(self): self.assertIsNone(get_subelement(None, 'foo'))
def resolve_name(root, _info): nvt = get_subelement(root, 'nvt') return get_text_from_element(nvt, 'name')
def resolve_compliance_count(root, _info): report = get_subelement(root, 'report') return get_subelement(report, 'compliance_count')
def resolve_results(root, _info): return get_subelement(root, 'result_count')
def resolve_counts(root, _info): return get_subelement(root, 'report_count')
def resolve_privacy_algorithm(root, _info): privacy = get_subelement(root, 'privacy') return get_text_from_element(privacy, 'algorithm')