flows: save entire GET params from shell executor
This commit is contained in:
parent
39f51ec33d
commit
de1be2df88
|
@ -222,7 +222,9 @@ class TestProviderOIDC(SeleniumTestCase):
|
||||||
self.driver.find_element(By.CSS_SELECTOR, "[type=submit]").click()
|
self.driver.find_element(By.CSS_SELECTOR, "[type=submit]").click()
|
||||||
|
|
||||||
self.wait.until(
|
self.wait.until(
|
||||||
ec.presence_of_element_located((By.XPATH, "//a[contains(@href, '/profile')]"))
|
ec.presence_of_element_located(
|
||||||
|
(By.XPATH, "//a[contains(@href, '/profile')]")
|
||||||
|
)
|
||||||
)
|
)
|
||||||
self.driver.find_element(By.XPATH, "//a[contains(@href, '/profile')]").click()
|
self.driver.find_element(By.XPATH, "//a[contains(@href, '/profile')]").click()
|
||||||
self.assertEqual(
|
self.assertEqual(
|
||||||
|
|
|
@ -1,10 +1,10 @@
|
||||||
"""passbook e2e testing utilities"""
|
"""passbook e2e testing utilities"""
|
||||||
from time import time
|
|
||||||
from functools import lru_cache
|
from functools import lru_cache
|
||||||
from glob import glob
|
from glob import glob
|
||||||
from importlib.util import module_from_spec, spec_from_file_location
|
from importlib.util import module_from_spec, spec_from_file_location
|
||||||
from inspect import getmembers, isfunction
|
from inspect import getmembers, isfunction
|
||||||
from os import makedirs
|
from os import makedirs
|
||||||
|
from time import time
|
||||||
|
|
||||||
from Cryptodome.PublicKey import RSA
|
from Cryptodome.PublicKey import RSA
|
||||||
from django.apps import apps
|
from django.apps import apps
|
||||||
|
|
|
@ -27,7 +27,7 @@ LOGGER = get_logger()
|
||||||
# Argument used to redirect user after login
|
# Argument used to redirect user after login
|
||||||
NEXT_ARG_NAME = "next"
|
NEXT_ARG_NAME = "next"
|
||||||
SESSION_KEY_PLAN = "passbook_flows_plan"
|
SESSION_KEY_PLAN = "passbook_flows_plan"
|
||||||
SESSION_KEY_NEXT = "passbook_flows_shell_next"
|
SESSION_KEY_GET = "passbook_flows_get"
|
||||||
|
|
||||||
|
|
||||||
@method_decorator(xframe_options_sameorigin, name="dispatch")
|
@method_decorator(xframe_options_sameorigin, name="dispatch")
|
||||||
|
@ -129,8 +129,8 @@ class FlowExecutorView(View):
|
||||||
"""User Successfully passed all stages"""
|
"""User Successfully passed all stages"""
|
||||||
self.cancel()
|
self.cancel()
|
||||||
# Since this is wrapped by the ExecutorShell, the next argument is saved in the session
|
# Since this is wrapped by the ExecutorShell, the next argument is saved in the session
|
||||||
next_param = self.request.session.get(
|
next_param = self.request.session.get(SESSION_KEY_GET, {}).get(
|
||||||
SESSION_KEY_NEXT, "passbook_core:overview"
|
NEXT_ARG_NAME, "passbook_core:overview"
|
||||||
)
|
)
|
||||||
return redirect_with_qs(next_param)
|
return redirect_with_qs(next_param)
|
||||||
|
|
||||||
|
@ -214,10 +214,7 @@ class FlowExecutorShellView(TemplateView):
|
||||||
def get_context_data(self, **kwargs) -> Dict[str, Any]:
|
def get_context_data(self, **kwargs) -> Dict[str, Any]:
|
||||||
kwargs["exec_url"] = reverse("passbook_flows:flow-executor", kwargs=self.kwargs)
|
kwargs["exec_url"] = reverse("passbook_flows:flow-executor", kwargs=self.kwargs)
|
||||||
kwargs["msg_url"] = reverse("passbook_api:messages-list")
|
kwargs["msg_url"] = reverse("passbook_api:messages-list")
|
||||||
if NEXT_ARG_NAME in self.request.GET:
|
self.request.session[SESSION_KEY_GET] = self.request.GET
|
||||||
next_arg = self.request.GET[NEXT_ARG_NAME]
|
|
||||||
LOGGER.debug("f(exec/shell): Saved next param", next=next_arg)
|
|
||||||
self.request.session[SESSION_KEY_NEXT] = next_arg
|
|
||||||
return kwargs
|
return kwargs
|
||||||
|
|
||||||
|
|
||||||
|
|
Reference in New Issue