def _2fa_check(meta, builder, oauth, config_dict, info, lets_connect): # type: (Metadata, Gtk.builder, str, dict, dict, bool) -> None if meta.two_factor and not info['two_factor_enrolled']: # 2fa is required, but the user is not enroled anymore two_auth_step(builder, oauth, meta, config_dict, lets_connect) else: connect_provider(meta.uuid)
def test_two_auth_step(self, *_): response_2fa = MockResponse() response_2fa.content_json['user_info']['data'][ 'two_factor_enrolled'] = True oauth_2fa = MockOAuth(response_2fa) two_auth_step(builder=self.builder, meta=self.meta, oauth=oauth_2fa, config_dict=mock_config_dict, lets_connect=False)
def _background(meta, oauth, dialog, builder, lets_connect): try: cert, key = create_keypair(oauth, meta.api_base_uri) meta.cert = cert meta.key = key meta.config = get_profile_config(oauth, meta.api_base_uri, meta.profile_id) ovpn_text = format_like_ovpn(meta.config, meta.cert, meta.key) config_dict = parse_ovpn(ovpn_text) if meta.two_factor: GLib.idle_add(lambda: two_auth_step(builder, oauth, meta, config_dict=config_dict, lets_connect=lets_connect)) else: GLib.idle_add(lambda: finalizing_step(meta=meta, builder=builder, config_dict=config_dict, lets_connect=lets_connect)) GLib.idle_add(lambda: dialog.hide()) except Exception as e: error = e GLib.idle_add(lambda: error_helper( dialog, "can't finalize configuration", "{}: {}".format( type(error).__name__, str(error)))) GLib.idle_add(lambda: dialog.hide()) raise
def _background(oauth, meta, builder, dialog): try: profiles = list_profiles(oauth, meta.api_base_uri) logger.info("There are {} profiles on {}".format(len(profiles), meta.api_base_uri)) if len(profiles) > 1: GLib.idle_add(lambda: dialog.hide()) GLib.idle_add(lambda: select_profile_step(builder=builder, profiles=profiles, meta=meta, oauth=oauth)) elif len(profiles) == 1: meta.profile_display_name, meta.profile_id, meta.two_factor = profiles[0] two_auth_step(builder=builder, oauth=oauth, meta=meta) else: raise EduvpnException("Either there are no VPN profiles defined, or this account does not have the " "required permissions to create a new VPN configurations for any of the " "available profiles.") except Exception as e: GLib.idle_add(lambda: error_helper(dialog, "Can't fetch profile list", str(e))) GLib.idle_add(lambda: dialog.hide()) raise
def select_profile_step(builder, profiles, meta, oauth): """the profile selection step, doesn't do anything if only one profile""" logger.info("opening profile dialog") dialog = builder.get_object('profiles-dialog') model = builder.get_object('profiles-model') selection = builder.get_object('profiles-selection') dialog.show_all() model.clear() [model.append(p) for p in profiles] response = dialog.run() dialog.hide() if response == 0: # cancel logger.info("cancel button pressed") return else: model, treeiter = selection.get_selected() if treeiter: meta.profile_display_name, meta.profile_id, meta.two_factor = model[treeiter] two_auth_step(builder=builder, oauth=oauth, meta=meta) else: logger.error("nothing selected") return
def _2fa_check(meta, builder, oauth, config_dict, info): if meta.two_factor and not info['two_factor_enrolled']: # 2fa is required, but the user is not enroled anymore two_auth_step(builder, oauth, meta, config_dict) else: connect_provider(meta.uuid)