From f27830704d02d6b1416b3b00168dfc22543e726f Mon Sep 17 00:00:00 2001 From: Jens Langhammer Date: Thu, 6 Jun 2024 19:11:56 +0900 Subject: [PATCH 1/2] unrelated Signed-off-by: Jens Langhammer --- web/src/flow/FlowInspector.ts | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/web/src/flow/FlowInspector.ts b/web/src/flow/FlowInspector.ts index 643bf36bfdf7..0d15d444ede8 100644 --- a/web/src/flow/FlowInspector.ts +++ b/web/src/flow/FlowInspector.ts @@ -15,7 +15,7 @@ import PFProgressStepper from "@patternfly/patternfly/components/ProgressStepper import PFStack from "@patternfly/patternfly/layouts/Stack/stack.css"; import PFBase from "@patternfly/patternfly/patternfly-base.css"; -import { FlowInspection, FlowsApi, Stage } from "@goauthentik/api"; +import { FlowInspection, FlowsApi, ResponseError, Stage } from "@goauthentik/api"; @customElement("ak-flow-inspector") export class FlowInspector extends AKElement { @@ -25,7 +25,7 @@ export class FlowInspector extends AKElement { state?: FlowInspection; @property({ attribute: false }) - error?: Response; + error?: ResponseError; static get styles(): CSSResult[] { return [ @@ -70,6 +70,7 @@ export class FlowInspector extends AKElement { flowSlug: this.flowSlug, }) .then((state) => { + this.error = undefined; this.state = state; }) .catch((exc) => { @@ -100,7 +101,7 @@ export class FlowInspector extends AKElement {
-
${this.error?.statusText}
+
${this.error?.message}
From c1b0da3c69b644f5db643e8073618f98c4ebec92 Mon Sep 17 00:00:00 2001 From: Jens Langhammer Date: Thu, 6 Jun 2024 19:13:02 +0900 Subject: [PATCH 2/2] providers/sync: update attributes in connection updates after updating remote object Signed-off-by: Jens Langhammer --- .../enterprise/providers/google_workspace/clients/groups.py | 4 +++- .../enterprise/providers/google_workspace/clients/users.py | 4 +++- .../enterprise/providers/microsoft_entra/clients/groups.py | 4 +++- .../enterprise/providers/microsoft_entra/clients/users.py | 6 +++++- 4 files changed, 14 insertions(+), 4 deletions(-) diff --git a/authentik/enterprise/providers/google_workspace/clients/groups.py b/authentik/enterprise/providers/google_workspace/clients/groups.py index 158fe0724710..7cb841dcc879 100644 --- a/authentik/enterprise/providers/google_workspace/clients/groups.py +++ b/authentik/enterprise/providers/google_workspace/clients/groups.py @@ -92,12 +92,14 @@ def update(self, group: Group, connection: GoogleWorkspaceProviderGroup): google_group = self.to_schema(group, connection) self.check_email_valid(google_group["email"]) try: - return self._request( + response = self._request( self.directory_service.groups().update( groupKey=connection.google_id, body=google_group, ) ) + connection.attributes = response + connection.save() except NotFoundSyncException: # Resource missing is handled by self.write, which will re-create the group raise diff --git a/authentik/enterprise/providers/google_workspace/clients/users.py b/authentik/enterprise/providers/google_workspace/clients/users.py index 859efa25e892..b8316f476bbc 100644 --- a/authentik/enterprise/providers/google_workspace/clients/users.py +++ b/authentik/enterprise/providers/google_workspace/clients/users.py @@ -88,9 +88,11 @@ def update(self, user: User, connection: GoogleWorkspaceProviderUser): self.check_email_valid( google_user["primaryEmail"], *[x["address"] for x in google_user.get("emails", [])] ) - self._request( + response = self._request( self.directory_service.users().update(userKey=connection.google_id, body=google_user) ) + connection.attributes = response + connection.save() def discover(self): """Iterate through all users and connect them with authentik users if possible""" diff --git a/authentik/enterprise/providers/microsoft_entra/clients/groups.py b/authentik/enterprise/providers/microsoft_entra/clients/groups.py index 54545594c3dc..6edadfb08568 100644 --- a/authentik/enterprise/providers/microsoft_entra/clients/groups.py +++ b/authentik/enterprise/providers/microsoft_entra/clients/groups.py @@ -104,9 +104,11 @@ def update(self, group: Group, connection: MicrosoftEntraProviderGroup): microsoft_group = self.to_schema(group, connection) microsoft_group.id = connection.microsoft_id try: - return self._request( + response = self._request( self.client.groups.by_group_id(connection.microsoft_id).patch(microsoft_group) ) + connection.attributes = self.entity_as_dict(response) + connection.save() except NotFoundSyncException: # Resource missing is handled by self.write, which will re-create the group raise diff --git a/authentik/enterprise/providers/microsoft_entra/clients/users.py b/authentik/enterprise/providers/microsoft_entra/clients/users.py index 56e4ac10d0fc..a5ffea4f83bb 100644 --- a/authentik/enterprise/providers/microsoft_entra/clients/users.py +++ b/authentik/enterprise/providers/microsoft_entra/clients/users.py @@ -110,7 +110,11 @@ def update(self, user: User, connection: MicrosoftEntraProviderUser): """Update existing user""" microsoft_user = self.to_schema(user, connection) self.check_email_valid(microsoft_user.user_principal_name) - self._request(self.client.users.by_user_id(connection.microsoft_id).patch(microsoft_user)) + response = self._request( + self.client.users.by_user_id(connection.microsoft_id).patch(microsoft_user) + ) + connection.attributes = self.entity_as_dict(response) + connection.save() def discover(self): """Iterate through all users and connect them with authentik users if possible"""