core: b2c improvements p1 (#9257)
* add default app and restrict Signed-off-by: Jens Langhammer <jens@goauthentik.io> * also pass raw email token for custom email templates Signed-off-by: Jens Langhammer <jens@goauthentik.io> * revoke access token when user logs out Signed-off-by: Jens Langhammer <jens@goauthentik.io> * remigrate Signed-off-by: Jens Langhammer <jens@goauthentik.io> * fix tests Signed-off-by: Jens Langhammer <jens@goauthentik.io> * add command to change user types Signed-off-by: Jens Langhammer <jens@goauthentik.io> * add some docs Signed-off-by: Jens Langhammer <jens@goauthentik.io> * blankable Signed-off-by: Jens Langhammer <jens@goauthentik.io> * actually fix tests Signed-off-by: Jens Langhammer <jens@goauthentik.io> * update docs Signed-off-by: Jens Langhammer <jens@goauthentik.io> --------- Signed-off-by: Jens Langhammer <jens@goauthentik.io>
This commit is contained in:
@ -37,14 +37,7 @@ class TestFlowsEnroll(SeleniumTestCase):
|
||||
self.driver.get(self.live_server_url)
|
||||
|
||||
self.initial_stages()
|
||||
|
||||
interface_user = self.get_shadow_root("ak-interface-user")
|
||||
wait = WebDriverWait(interface_user, self.wait_timeout)
|
||||
|
||||
wait.until(
|
||||
ec.presence_of_element_located((By.CSS_SELECTOR, "ak-interface-user-presentation"))
|
||||
)
|
||||
self.driver.get(self.if_user_url("/settings"))
|
||||
sleep(2)
|
||||
|
||||
user = User.objects.get(username="foo")
|
||||
self.assertEqual(user.username, "foo")
|
||||
@ -93,13 +86,6 @@ class TestFlowsEnroll(SeleniumTestCase):
|
||||
self.driver.switch_to.window(self.driver.window_handles[0])
|
||||
|
||||
sleep(2)
|
||||
# We're now logged in
|
||||
wait = WebDriverWait(self.get_shadow_root("ak-interface-user"), self.wait_timeout)
|
||||
|
||||
wait.until(
|
||||
ec.presence_of_element_located((By.CSS_SELECTOR, "ak-interface-user-presentation"))
|
||||
)
|
||||
self.driver.get(self.if_user_url("/settings"))
|
||||
|
||||
self.assert_user(User.objects.get(username="foo"))
|
||||
|
||||
|
||||
@ -97,15 +97,9 @@ class TestFlowsRecovery(SeleniumTestCase):
|
||||
new_password
|
||||
)
|
||||
prompt_stage.find_element(By.CSS_SELECTOR, ".pf-c-button").click()
|
||||
sleep(2)
|
||||
|
||||
# We're now logged in
|
||||
wait = WebDriverWait(self.get_shadow_root("ak-interface-user"), self.wait_timeout)
|
||||
|
||||
wait.until(
|
||||
ec.presence_of_element_located((By.CSS_SELECTOR, "ak-interface-user-presentation"))
|
||||
)
|
||||
self.driver.get(self.if_user_url("/settings"))
|
||||
|
||||
self.assert_user(user)
|
||||
user.refresh_from_db()
|
||||
self.assertTrue(user.check_password(new_password))
|
||||
|
||||
@ -136,7 +136,6 @@ class TestSourceOAuth1(SeleniumTestCase):
|
||||
# Wait until we've loaded the user info page
|
||||
sleep(2)
|
||||
# Wait until we've logged in
|
||||
self.wait_for_url(self.if_user_url("/library"))
|
||||
self.driver.get(self.if_user_url("/settings"))
|
||||
self.wait_for_url(self.if_user_url())
|
||||
|
||||
self.assert_user(User(username="example-user", name="test name", email="foo@example.com"))
|
||||
|
||||
@ -155,8 +155,7 @@ class TestSourceOAuth2(SeleniumTestCase):
|
||||
prompt_stage.find_element(By.CSS_SELECTOR, "input[name=username]").send_keys(Keys.ENTER)
|
||||
|
||||
# Wait until we've logged in
|
||||
self.wait_for_url(self.if_user_url("/library"))
|
||||
self.driver.get(self.if_user_url("/settings"))
|
||||
self.wait_for_url(self.if_user_url())
|
||||
|
||||
self.assert_user(User(username="foo", name="admin", email="admin@example.com"))
|
||||
|
||||
@ -191,8 +190,7 @@ class TestSourceOAuth2(SeleniumTestCase):
|
||||
self.driver.find_element(By.CSS_SELECTOR, "button[type=submit]").click()
|
||||
|
||||
# Wait until we've logged in
|
||||
self.wait_for_url(self.if_user_url("/library"))
|
||||
self.driver.get(self.if_user_url("/settings"))
|
||||
self.wait_for_url(self.if_user_url())
|
||||
|
||||
self.assert_user(User(username="foo", name="admin", email="admin@example.com"))
|
||||
|
||||
|
||||
@ -168,8 +168,7 @@ class TestSourceSAML(SeleniumTestCase):
|
||||
self.driver.find_element(By.ID, "password").send_keys(Keys.ENTER)
|
||||
|
||||
# Wait until we're logged in
|
||||
self.wait_for_url(self.if_user_url("/library"))
|
||||
self.driver.get(self.if_user_url("/settings"))
|
||||
self.wait_for_url(self.if_user_url())
|
||||
|
||||
self.assert_user(
|
||||
User.objects.exclude(username="akadmin")
|
||||
@ -251,8 +250,7 @@ class TestSourceSAML(SeleniumTestCase):
|
||||
self.driver.find_element(By.ID, "password").send_keys(Keys.ENTER)
|
||||
|
||||
# Wait until we're logged in
|
||||
self.wait_for_url(self.if_user_url("/library"))
|
||||
self.driver.get(self.if_user_url("/settings"))
|
||||
self.wait_for_url(self.if_user_url())
|
||||
|
||||
self.assert_user(
|
||||
User.objects.exclude(username="akadmin")
|
||||
@ -321,8 +319,7 @@ class TestSourceSAML(SeleniumTestCase):
|
||||
self.driver.find_element(By.ID, "password").send_keys(Keys.ENTER)
|
||||
|
||||
# Wait until we're logged in
|
||||
self.wait_for_url(self.if_user_url("/library"))
|
||||
self.driver.get(self.if_user_url("/settings"))
|
||||
self.wait_for_url(self.if_user_url())
|
||||
|
||||
self.assert_user(
|
||||
User.objects.exclude(username="akadmin")
|
||||
@ -391,8 +388,7 @@ class TestSourceSAML(SeleniumTestCase):
|
||||
self.driver.find_element(By.ID, "password").send_keys(Keys.ENTER)
|
||||
|
||||
# Wait until we're logged in
|
||||
self.wait_for_url(self.if_user_url("/library"))
|
||||
self.driver.get(self.if_user_url("/settings"))
|
||||
self.wait_for_url(self.if_user_url())
|
||||
|
||||
self.assert_user(
|
||||
User.objects.exclude(username="akadmin")
|
||||
@ -426,8 +422,7 @@ class TestSourceSAML(SeleniumTestCase):
|
||||
self.driver.find_element(By.ID, "password").send_keys(Keys.ENTER)
|
||||
|
||||
# Wait until we're logged in
|
||||
self.wait_for_url(self.if_user_url("/library"))
|
||||
self.driver.get(self.if_user_url("/settings"))
|
||||
self.wait_for_url(self.if_user_url())
|
||||
|
||||
# sleep(999999)
|
||||
self.assert_user(
|
||||
|
||||
@ -176,9 +176,12 @@ class SeleniumTestCase(DockerTestCase, StaticLiveServerTestCase):
|
||||
"""reverse `view` with `**kwargs` into full URL using live_server_url"""
|
||||
return self.live_server_url + reverse(view, kwargs=kwargs)
|
||||
|
||||
def if_user_url(self, view) -> str:
|
||||
def if_user_url(self, path: str | None = None) -> str:
|
||||
"""same as self.url() but show URL in shell"""
|
||||
return f"{self.live_server_url}/if/user/#{view}"
|
||||
url = self.url("authentik_core:if-user")
|
||||
if path:
|
||||
return f"{url}#{path}"
|
||||
return url
|
||||
|
||||
def get_shadow_root(
|
||||
self, selector: str, container: WebElement | WebDriver | None = None
|
||||
|
||||
Reference in New Issue
Block a user