Skip to content

Commit ec3e953

Browse files
authored
web/user: fix request access URL from agent not working (goauthentik#25113)
1 parent 189a280 commit ec3e953

2 files changed

Lines changed: 31 additions & 3 deletions

File tree

web/src/user/Routes.ts

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
import "#user/LibraryPage/ak-library";
22

3-
import { Route } from "#elements/router/Route";
3+
import { Route, UUID_REGEX } from "#elements/router/Route";
44

55
import { html } from "lit";
66

@@ -13,6 +13,15 @@ export const ROUTES: Route[] = [
1313
await import("#user/requests/AccessRequestsPage");
1414
return html`<ak-access-requests-page></ak-access-requests-page>`;
1515
}),
16+
new Route(
17+
new RegExp(`^/requests/access-request/(?<uuid>${UUID_REGEX})/fulfill$`),
18+
async (args) => {
19+
await import("#user/requests/AccessRequestsPage");
20+
return html`<ak-access-requests-page
21+
request-to-fulfill=${args.uuid}
22+
></ak-access-requests-page>`;
23+
},
24+
),
1625
new Route(new RegExp("^/settings$"), async () => {
1726
await import("#user/user-settings/UserSettingsPage");
1827
return html`<ak-user-settings></ak-user-settings>`;

web/src/user/requests/AccessRequestsPage.ts

Lines changed: 21 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -13,13 +13,14 @@ import { showAPIErrorMessage } from "#elements/messages/MessageContainer";
1313
import { paramURL } from "#elements/router/RouterOutlet";
1414
import { SlottedTemplateResult } from "#elements/types";
1515

16+
import { AccessRequestFulfillForm } from "#user/requests/AccessRequestFulfillForm";
1617
import Styles from "#user/user-settings/styles.css";
1718

1819
import { GrantRequest, RequestsApi } from "@goauthentik/api";
1920

2021
import { msg } from "@lit/localize";
21-
import { CSSResult, html, nothing } from "lit";
22-
import { customElement, state } from "lit/decorators.js";
22+
import { CSSResult, html, nothing, PropertyValues } from "lit";
23+
import { customElement, property, state } from "lit/decorators.js";
2324

2425
import PFBanner from "@patternfly/patternfly/components/Banner/banner.css";
2526
import PFContent from "@patternfly/patternfly/components/Content/content.css";
@@ -32,6 +33,9 @@ export class AccessRequestsPage extends AKElement {
3233
@state()
3334
toReview?: PaginatedResponse<GrantRequest>;
3435

36+
@property({ attribute: "request-to-fulfill" })
37+
requestToFulfill: string | null = null;
38+
3539
override async connectedCallback(): Promise<void> {
3640
super.connectedCallback();
3741
try {
@@ -41,6 +45,21 @@ export class AccessRequestsPage extends AKElement {
4145
}
4246
}
4347

48+
protected updated(changedProperties: PropertyValues): void {
49+
super.updated(changedProperties);
50+
if (changedProperties.has("requestToFulfill") && this.requestToFulfill !== null) {
51+
aki(RequestsApi)
52+
.requestsGrantRequestsRetrieve({
53+
uuid: this.requestToFulfill,
54+
})
55+
.then((req) => {
56+
const form = new AccessRequestFulfillForm();
57+
form.request = req;
58+
form.showModal();
59+
});
60+
}
61+
}
62+
4463
protected override render(): SlottedTemplateResult {
4564
return html`<div class="pf-c-page">
4665
<div class="pf-c-page__main">

0 commit comments

Comments
 (0)