From c846c8089a1aa225e94ef6fe824a9405dba5bf72 Mon Sep 17 00:00:00 2001 From: Ken Sternberg <133134217+kensternberg-authentik@users.noreply.github.com> Date: Tue, 2 Jul 2024 08:44:48 -0700 Subject: [PATCH] web: lintpicking (#10212) * web: fix esbuild issue with style sheets Getting ESBuild, Lit, and Storybook to all agree on how to read and parse stylesheets is a serious pain. This fix better identifies the value types (instances) being passed from various sources in the repo to the three *different* kinds of style processors we're using (the native one, the polyfill one, and whatever the heck Storybook does internally). Falling back to using older CSS instantiating techniques one era at a time seems to do the trick. It's ugly, but in the face of the aggressive styling we use to avoid Flashes of Unstyled Content (FLoUC), it's the logic with which we're left. In standard mode, the following warning appears on the console when running a Flow: ``` Autofocus processing was blocked because a document already has a focused element. ``` In compatibility mode, the following **error** appears on the console when running a Flow: ``` crawler-inject.js:1106 Uncaught TypeError: Failed to execute 'observe' on 'MutationObserver': parameter 1 is not of type 'Node'. at initDomMutationObservers (crawler-inject.js:1106:18) at crawler-inject.js:1114:24 at Array.forEach () at initDomMutationObservers (crawler-inject.js:1114:10) at crawler-inject.js:1549:1 initDomMutationObservers @ crawler-inject.js:1106 (anonymous) @ crawler-inject.js:1114 initDomMutationObservers @ crawler-inject.js:1114 (anonymous) @ crawler-inject.js:1549 ``` Despite this error, nothing seems to be broken and flows work as anticipated. * web: remove some minor lint While working on other projects, a few small lint issues came up: - Duplicate imports of a web component - A switch statement with a single condition - Empty returns All of these made eslint complain, so I have edited the code to meet our standards. They are all quite small. * web: move rbac under .../admin (#10213) * admin: system api: fix FIPS status schema (cherry-pick #10110) (#10112) admin: system api: fix FIPS status schema (#10110) Co-authored-by: Marc 'risson' Schmitt * web: bump API Client version (cherry-pick #10113) (#10114) * website/docs: update 2024.6 release notes with latest changes (cherry-pick #10109) (#10115) Co-authored-by: Marc 'risson' Schmitt * release: 2024.6.0-rc1 * policies/reputation: fix existing reputation update (cherry-pick #10124) (#10125) policies/reputation: fix existing reputation update (#10124) * add failing test case * fix reputation update * lint --------- Signed-off-by: Marc 'risson' Schmitt Co-authored-by: Marc 'risson' Schmitt * core: include version in built JS files (cherry-pick #9558) (#10148) core: include version in built JS files (#9558) * web: fix esbuild issue with style sheets Getting ESBuild, Lit, and Storybook to all agree on how to read and parse stylesheets is a serious pain. This fix better identifies the value types (instances) being passed from various sources in the repo to the three *different* kinds of style processors we're using (the native one, the polyfill one, and whatever the heck Storybook does internally). Falling back to using older CSS instantiating techniques one era at a time seems to do the trick. It's ugly, but in the face of the aggressive styling we use to avoid Flashes of Unstyled Content (FLoUC), it's the logic with which we're left. In standard mode, the following warning appears on the console when running a Flow: ``` Autofocus processing was blocked because a document already has a focused element. ``` In compatibility mode, the following **error** appears on the console when running a Flow: ``` crawler-inject.js:1106 Uncaught TypeError: Failed to execute 'observe' on 'MutationObserver': parameter 1 is not of type 'Node'. at initDomMutationObservers (crawler-inject.js:1106:18) at crawler-inject.js:1114:24 at Array.forEach () at initDomMutationObservers (crawler-inject.js:1114:10) at crawler-inject.js:1549:1 initDomMutationObservers @ crawler-inject.js:1106 (anonymous) @ crawler-inject.js:1114 initDomMutationObservers @ crawler-inject.js:1114 (anonymous) @ crawler-inject.js:1549 ``` Despite this error, nothing seems to be broken and flows work as anticipated. * core: include version in built JS files * add fallback * include build hash * format * fix stuff why does this even work locally * idk man node * just not use import assertions * web: add no-console, use proper dirname path * web: retarget to use the base package.json file. * web: encode path to root package.json using git This is the most authoritative way of finding the root of the git project. * use full version to match frontend * add fallback for missing .git folder --------- Signed-off-by: Jens Langhammer Co-authored-by: Jens L Co-authored-by: Ken Sternberg * web: fix needed because recent upgrade to task breaks spinner button (cherry-pick #10142) (#10150) web: fix needed because recent upgrade to task breaks spinner button (#10142) web: fix broken Task plug-in rebase and fix package json Signed-off-by: Jens Langhammer Co-authored-by: Ken Sternberg <133134217+kensternberg-authentik@users.noreply.github.com> Co-authored-by: Jens Langhammer * root: use custom model serializer that saves m2m without bulk (cherry-pick #10139) (#10151) root: use custom model serializer that saves m2m without bulk (#10139) * use custom model serializer that saves m2m without bulk * sigh --------- Signed-off-by: Jens Langhammer Co-authored-by: Jens L * web: fix docker build for non-release versions (cherry-pick #10154) (#10155) Co-authored-by: Marc 'risson' Schmitt fix docker build for non-release versions (#10154) * website/docs: update 2024.6 release notes with latest changes (cherry-pick #10167) (#10168) Co-authored-by: Marc 'risson' Schmitt * core: fix error when raising SkipObject in mapping (cherry-pick #10153) (#10173) core: fix error when raising SkipObject in mapping (#10153) * core: fix error when raising SkipObject in mapping * fix events not being saved thanks tests --------- Signed-off-by: Jens Langhammer Co-authored-by: Jens L * website/docs: 2024.6 release notes: add note about group names (cherry-pick #10170) (#10171) Co-authored-by: Marc 'risson' Schmitt Co-authored-by: Tana M Berry * website/docs: update 2024.6 release notes with latest changes (cherry-pick #10174) (#10175) Co-authored-by: Marc 'risson' Schmitt * release: 2024.6.0-rc2 (#10176) * website/docs: Remove hyphen in read replica in Release Notes (cherry-pick #10178) (#10188) Co-authored-by: Tana M Berry Co-authored-by: Tana M Berry * core: rework base for SkipObject exception to better support control flow exceptions (cherry-pick #10186) (#10187) core: rework base for SkipObject exception to better support control flow exceptions (#10186) Signed-off-by: Jens Langhammer Co-authored-by: Jens L * web/flows: update flow background (cherry-pick #10206) (#10207) web/flows: update flow background (#10206) * web/flows: update flow background * Optimised images with calibre/image-actions --------- Signed-off-by: Jens Langhammer Co-authored-by: Jens L Co-authored-by: authentik-automation[bot] <135050075+authentik-automation[bot]@users.noreply.github.com> * web: move rbac under .../admin The RBAC code segment, while it is an aspect and not a vertical, is entirely used within the Admin interface, and references other components within the Admin interface. It is not used by nor references Flows or Users. It's placement in the `elements` folder breaks the DAG of foundational versus client code, (`common -> elements -> interfaces`), and I'd like to keep that DAG clean to facilitate future development. All this PR does is move `elements/rbac` to `admin/rbac`, and adjusts all of the import statements accordingly. The entirety of this PR is two commands: ```shell $ cd web/src $ git mv elements/rbac admin $ cd admin $ perl -pi -e 's{goauthentik/elements/rbac/}{goauthentik/admin/rbac/}' $(rg -l 'goauthentik/elements/rbac') ``` * website/docs: fix #9552 openssl rand base64 line wrap (#10211) * website/integrations: fix typo in documentation for OIDC setup with Paperless-ngx (#10218) Update index.md Missing " cost me more time than I'd like to admit. Paying it forward. Signed-off-by: Russ Harvey <53157589+rwh85@users.noreply.github.com> * security: fix CVE-2024-38371 (#10229) * security: fix CVE-2024-38371 (cherry-pick #10229) (#10234) Co-authored-by: Jens L fix CVE-2024-38371 (#10229) * security: fix CVE-2024-37905 (#10230) Co-authored-by: Marc 'risson' Schmitt * core: bump debugpy from 1.8.1 to 1.8.2 (#10225) Bumps [debugpy](https://github.com/microsoft/debugpy) from 1.8.1 to 1.8.2. - [Release notes](https://github.com/microsoft/debugpy/releases) - [Commits](https://github.com/microsoft/debugpy/compare/v1.8.1...v1.8.2) --- updated-dependencies: - dependency-name: debugpy dependency-type: direct:development update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * web: bump @sentry/browser from 8.11.0 to 8.12.0 in /web in the sentry group (#10226) web: bump @sentry/browser in /web in the sentry group Bumps the sentry group in /web with 1 update: [@sentry/browser](https://github.com/getsentry/sentry-javascript). Updates `@sentry/browser` from 8.11.0 to 8.12.0 - [Release notes](https://github.com/getsentry/sentry-javascript/releases) - [Changelog](https://github.com/getsentry/sentry-javascript/blob/develop/CHANGELOG.md) - [Commits](https://github.com/getsentry/sentry-javascript/compare/8.11.0...8.12.0) --- updated-dependencies: - dependency-name: "@sentry/browser" dependency-type: direct:production update-type: version-update:semver-minor dependency-group: sentry ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * core: bump webauthn from 2.1.0 to 2.2.0 (#10224) Bumps [webauthn](https://github.com/duo-labs/py_webauthn) from 2.1.0 to 2.2.0. - [Release notes](https://github.com/duo-labs/py_webauthn/releases) - [Changelog](https://github.com/duo-labs/py_webauthn/blob/master/CHANGELOG.md) - [Commits](https://github.com/duo-labs/py_webauthn/compare/v2.1.0...v2.2.0) --- updated-dependencies: - dependency-name: webauthn dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * web: bump chromedriver from 126.0.3 to 126.0.4 in /tests/wdio (#10223) Bumps [chromedriver](https://github.com/giggio/node-chromedriver) from 126.0.3 to 126.0.4. - [Commits](https://github.com/giggio/node-chromedriver/compare/126.0.3...126.0.4) --- updated-dependencies: - dependency-name: chromedriver dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * core: bump pdoc from 14.5.0 to 14.5.1 (#10221) Bumps [pdoc](https://github.com/mitmproxy/pdoc) from 14.5.0 to 14.5.1. - [Changelog](https://github.com/mitmproxy/pdoc/blob/main/CHANGELOG.md) - [Commits](https://github.com/mitmproxy/pdoc/compare/v14.5.0...v14.5.1) --- updated-dependencies: - dependency-name: pdoc dependency-type: direct:development ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * security: fix CVE-2024-37905 (cherry-pick #10230) (#10237) Co-authored-by: Jens L Co-authored-by: Marc 'risson' Schmitt fix CVE-2024-37905 (#10230) * release: 2024.6.0 * website/docs: update 2024.6 release notes with latest changes (#10228) * website/docs: update 2024.2 release notes with security fixes (#10232) * website/docs: update 2024.4 release notes with latest changes (#10231) * website/docs: update 2024.6 release notes with latest changes (cherry-pick #10228) (#10243) Co-authored-by: Marc 'risson' Schmitt * website/docs: remove RC disclaimer from 2024.6 release notes (#10245) Signed-off-by: Marc 'risson' Schmitt * website/docs: remove RC disclaimer from 2024.6 release notes (cherry-pick #10245) (#10246) Co-authored-by: Marc 'risson' Schmitt * security: update supported versions (#10247) * security: update supported versions (cherry-pick #10247) (#10248) Co-authored-by: Marc 'risson' Schmitt * website/docs: update geoip and asn example to use the proper syntax (#10249) * website/docs: update the Welcome page (#10222) * update to mention Enterprise * moved sections * tweaks --------- Co-authored-by: Tana M Berry * website/docs: update geoip and asn example to use the proper syntax (cherry-pick #10249) (#10250) website/docs: update geoip and asn example to use the proper syntax (#10249) Co-authored-by: Marc 'risson' Schmitt * web: bump API Client version (#10252) Signed-off-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> Co-authored-by: authentik-automation[bot] <135050075+authentik-automation[bot]@users.noreply.github.com> * web/flows: remove continue button from AutoSubmit stage (#10253) Signed-off-by: Jens Langhammer * web: disable reading dark mode out of the UI by default (#10256) * web: fix esbuild issue with style sheets Getting ESBuild, Lit, and Storybook to all agree on how to read and parse stylesheets is a serious pain. This fix better identifies the value types (instances) being passed from various sources in the repo to the three *different* kinds of style processors we're using (the native one, the polyfill one, and whatever the heck Storybook does internally). Falling back to using older CSS instantiating techniques one era at a time seems to do the trick. It's ugly, but in the face of the aggressive styling we use to avoid Flashes of Unstyled Content (FLoUC), it's the logic with which we're left. In standard mode, the following warning appears on the console when running a Flow: ``` Autofocus processing was blocked because a document already has a focused element. ``` In compatibility mode, the following **error** appears on the console when running a Flow: ``` crawler-inject.js:1106 Uncaught TypeError: Failed to execute 'observe' on 'MutationObserver': parameter 1 is not of type 'Node'. at initDomMutationObservers (crawler-inject.js:1106:18) at crawler-inject.js:1114:24 at Array.forEach () at initDomMutationObservers (crawler-inject.js:1114:10) at crawler-inject.js:1549:1 initDomMutationObservers @ crawler-inject.js:1106 (anonymous) @ crawler-inject.js:1114 initDomMutationObservers @ crawler-inject.js:1114 (anonymous) @ crawler-inject.js:1549 ``` Despite this error, nothing seems to be broken and flows work as anticipated. * web: disable reading dark mode out of the UI by default This patch disables "dark mode" as a browser preference. It still honors the user preference, but it will always default to Light mode and will not pay attention to the browser setting. Thank GNU that dark mode availablity is not a requirement to sell to governments: https://www.section508.gov/content/guide-accessible-web-design-development/# * Prettier had opinions. * Prettier having more opinions. * Preserve knowledge. * Updated eslint to stop warning us out about deprecated features. * web: provide better feedback on Application Library page about search results (#9386) * web: fix esbuild issue with style sheets Getting ESBuild, Lit, and Storybook to all agree on how to read and parse stylesheets is a serious pain. This fix better identifies the value types (instances) being passed from various sources in the repo to the three *different* kinds of style processors we're using (the native one, the polyfill one, and whatever the heck Storybook does internally). Falling back to using older CSS instantiating techniques one era at a time seems to do the trick. It's ugly, but in the face of the aggressive styling we use to avoid Flashes of Unstyled Content (FLoUC), it's the logic with which we're left. In standard mode, the following warning appears on the console when running a Flow: ``` Autofocus processing was blocked because a document already has a focused element. ``` In compatibility mode, the following **error** appears on the console when running a Flow: ``` crawler-inject.js:1106 Uncaught TypeError: Failed to execute 'observe' on 'MutationObserver': parameter 1 is not of type 'Node'. at initDomMutationObservers (crawler-inject.js:1106:18) at crawler-inject.js:1114:24 at Array.forEach () at initDomMutationObservers (crawler-inject.js:1114:10) at crawler-inject.js:1549:1 initDomMutationObservers @ crawler-inject.js:1106 (anonymous) @ crawler-inject.js:1114 initDomMutationObservers @ crawler-inject.js:1114 (anonymous) @ crawler-inject.js:1549 ``` Despite this error, nothing seems to be broken and flows work as anticipated. * web: improve state management of Fuze application search This commit rewrites a bit (just a bit, really!) of the relationship between `ak-library-application-impl` and `ak-library-application-search`. The "show only apps with launch URLs filter" has been moved up to the retrieval layer; there was no reason for the renderer to repeatedly call a *required* filter; just call it on the list of applications once and be done. The search component exchanges the two-state guesswork and custom events for a concrete three-state solution and *private* events. The search handler now sends the events "reset," "updated," and the new "updated and empty," which we could not previously track. By limiting the Impl layer to only those apps with launchUrls, we can now distinguish between "all apps," and "filtered apps," and understand that when "all apps" is empty we have no apps, and when "filtered apps" is empty the search has returned nothing. I also tried to add a lot more comments. In keeping with ES2020, I've put `.js` extensions on all the local imports. In keeping with a variety of [best practice recommendations](https://webcomponents.today/best-practices/), I've renamed web component files to match the custom element they deploy: ``` ak-library-application-search-empty.ts 19:@customElement("ak-library-application-search-empty") ak-library-impl.ts 44:@customElement("ak-library-impl") ak-library.ts 30:@customElement("ak-library") ak-library-application-list.ts 34:@customElement("ak-library-application-list") ak-library-application-empty-list.ts 22:@customElement("ak-library-application-empty-list") ak-library-application-search.ts 46:@customElement("ak-library-application-search") ``` The only effect(s) external to the changes in this vertical is that the Route() had to be updated, and I have done that. * web: updated the improved search to Google's Lit standards for events. * website/docs: update geoip and asn documentation following field changes (#10265) Co-authored-by: Tana M Berry * core, web: update translations (#10259) Co-authored-by: rissson <18313093+rissson@users.noreply.github.com> * core: bump goauthentik.io/api/v3 from 3.2024042.13 to 3.2024060.1 (#10260) Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * translate: Updates for file locale/en/LC_MESSAGES/django.po in ru (#10268) Translate locale/en/LC_MESSAGES/django.po in ru 100% translated source file: 'locale/en/LC_MESSAGES/django.po' on 'ru'. Co-authored-by: transifex-integration[bot] <43880903+transifex-integration[bot]@users.noreply.github.com> * core: bump drf-jsonschema-serializer from 2.0.0 to 3.0.0 (#10262) Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * translate: Updates for file web/xliff/en.xlf in zh_CN (#10271) Translate web/xliff/en.xlf in zh_CN 100% translated source file: 'web/xliff/en.xlf' on 'zh_CN'. Co-authored-by: transifex-integration[bot] <43880903+transifex-integration[bot]@users.noreply.github.com> * translate: Updates for file web/xliff/en.xlf in zh-Hans (#10272) Translate web/xliff/en.xlf in zh-Hans 100% translated source file: 'web/xliff/en.xlf' on 'zh-Hans'. Co-authored-by: transifex-integration[bot] <43880903+transifex-integration[bot]@users.noreply.github.com> * web: provide a test framework (#9681) * web: fix esbuild issue with style sheets Getting ESBuild, Lit, and Storybook to all agree on how to read and parse stylesheets is a serious pain. This fix better identifies the value types (instances) being passed from various sources in the repo to the three *different* kinds of style processors we're using (the native one, the polyfill one, and whatever the heck Storybook does internally). Falling back to using older CSS instantiating techniques one era at a time seems to do the trick. It's ugly, but in the face of the aggressive styling we use to avoid Flashes of Unstyled Content (FLoUC), it's the logic with which we're left. In standard mode, the following warning appears on the console when running a Flow: ``` Autofocus processing was blocked because a document already has a focused element. ``` In compatibility mode, the following **error** appears on the console when running a Flow: ``` crawler-inject.js:1106 Uncaught TypeError: Failed to execute 'observe' on 'MutationObserver': parameter 1 is not of type 'Node'. at initDomMutationObservers (crawler-inject.js:1106:18) at crawler-inject.js:1114:24 at Array.forEach () at initDomMutationObservers (crawler-inject.js:1114:10) at crawler-inject.js:1549:1 initDomMutationObservers @ crawler-inject.js:1106 (anonymous) @ crawler-inject.js:1114 initDomMutationObservers @ crawler-inject.js:1114 (anonymous) @ crawler-inject.js:1549 ``` Despite this error, nothing seems to be broken and flows work as anticipated. * web: provide a test framework As is typical of a system where a new build engine is involved, this thing is sadly fragile. Use the wrong import style in wdio.conf.js and it breaks; there are several notes in tsconfig.test.conf and wdio.conf.ts to tell eslint or tsc not to complain, it's just a different build with different criteria, the native criteria don't apply. On the other hand, writing tests is easy and predictable. We can test behaviors at the unit and component scale in a straightforward manner, and validate our expectations that things work the way we believe they should. * Rolling back a reversion. * Adjusting paths to work with tests. * add ci to test Signed-off-by: Jens Langhammer * web: patch spotlight on the fly to fix syntax issue that blocked storybook build This should be a temporary hack. I have an [open issue](https://github.com/getsentry/spotlight/issues/419) and [pull request](https://github.com/getsentry/spotlight/pull/420) with the Spotlight people already to fix the issue. * Somehow missed these in the merge. * Merge missed something. * Fixed an issue where npm install and npm ci had different shell script behaviors. * Removed debugging messages. --------- Signed-off-by: Jens Langhammer Co-authored-by: Jens Langhammer * web: lint package-lock.json file (#10157) * web: fix esbuild issue with style sheets Getting ESBuild, Lit, and Storybook to all agree on how to read and parse stylesheets is a serious pain. This fix better identifies the value types (instances) being passed from various sources in the repo to the three *different* kinds of style processors we're using (the native one, the polyfill one, and whatever the heck Storybook does internally). Falling back to using older CSS instantiating techniques one era at a time seems to do the trick. It's ugly, but in the face of the aggressive styling we use to avoid Flashes of Unstyled Content (FLoUC), it's the logic with which we're left. In standard mode, the following warning appears on the console when running a Flow: ``` Autofocus processing was blocked because a document already has a focused element. ``` In compatibility mode, the following **error** appears on the console when running a Flow: ``` crawler-inject.js:1106 Uncaught TypeError: Failed to execute 'observe' on 'MutationObserver': parameter 1 is not of type 'Node'. at initDomMutationObservers (crawler-inject.js:1106:18) at crawler-inject.js:1114:24 at Array.forEach () at initDomMutationObservers (crawler-inject.js:1114:10) at crawler-inject.js:1549:1 initDomMutationObservers @ crawler-inject.js:1106 (anonymous) @ crawler-inject.js:1114 initDomMutationObservers @ crawler-inject.js:1114 (anonymous) @ crawler-inject.js:1549 ``` Despite this error, nothing seems to be broken and flows work as anticipated. * web: replace ad-hoc test for package-lock.json file with a tool Testing to see if a package-lock entry has a `resolved` field hasn't been a reliable test of that entry's validity for several years now. The best options we have now are to ensure that every download occurs over https, and that every download only happens from fully vetted sources such as NPM and Github. [Liran Tal's Lockfile-Lint tool](https://snyk.io/blog/why-npm-lockfiles-can-be-a-security-blindspot-for-injecting-malicious-modules/) does this for package-lock.json files made with NPM or Yarn. * web: update CI workflows to use `lockfile-lint` for validity checking * Still getting familiar with the workflows thing. * ci: refactor ci-web linting Signed-off-by: Marc 'risson' Schmitt * ci fix Signed-off-by: Marc 'risson' Schmitt * try again Signed-off-by: Marc 'risson' Schmitt * and again Signed-off-by: Marc 'risson' Schmitt * rework ci-website Signed-off-by: Marc 'risson' Schmitt --------- Signed-off-by: Marc 'risson' Schmitt Co-authored-by: Marc 'risson' Schmitt * events: associate login_failed events to a user if possible (#10270) Signed-off-by: Marc 'risson' Schmitt * core: adjust styling to meet our standards (#10277) * core: adjust styling to meet our standards * Fix version correspondence bug in website (#10278) web: update lockfile to correspond to package.json, enabling npm-ci Looks like someone updated `package.json` to have the latest version of Typescript, but failed to update `package-lock.json` to get that version into the cache. `npm ci` won't work if the versions in the two files don't correspond, as that means, well, exactly that: no one has checked that the versioning is correct. The actual diff to `package-lock.json` is small enough it can be verified by eye, and it's fine. * web: bump @sentry/browser from 8.12.0 to 8.13.0 in /web in the sentry group (#10286) web: bump @sentry/browser in /web in the sentry group Bumps the sentry group in /web with 1 update: [@sentry/browser](https://github.com/getsentry/sentry-javascript). Updates `@sentry/browser` from 8.12.0 to 8.13.0 - [Release notes](https://github.com/getsentry/sentry-javascript/releases) - [Changelog](https://github.com/getsentry/sentry-javascript/blob/develop/CHANGELOG.md) - [Commits](https://github.com/getsentry/sentry-javascript/compare/8.12.0...8.13.0) --- updated-dependencies: - dependency-name: "@sentry/browser" dependency-type: direct:production update-type: version-update:semver-minor dependency-group: sentry ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * core: bump ruff from 0.4.10 to 0.5.0 (#10285) Bumps [ruff](https://github.com/astral-sh/ruff) from 0.4.10 to 0.5.0. - [Release notes](https://github.com/astral-sh/ruff/releases) - [Changelog](https://github.com/astral-sh/ruff/blob/main/CHANGELOG.md) - [Commits](https://github.com/astral-sh/ruff/compare/v0.4.10...0.5.0) --- updated-dependencies: - dependency-name: ruff dependency-type: direct:development update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * core: bump swagger-spec-validator from 3.0.3 to 3.0.4 (#10284) Bumps [swagger-spec-validator](https://github.com/Yelp/swagger_spec_validator) from 3.0.3 to 3.0.4. - [Changelog](https://github.com/Yelp/swagger_spec_validator/blob/master/CHANGELOG.rst) - [Commits](https://github.com/Yelp/swagger_spec_validator/compare/v3.0.3...v3.0.4) --- updated-dependencies: - dependency-name: swagger-spec-validator dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * core: bump twilio from 9.2.1 to 9.2.2 (#10283) Bumps [twilio](https://github.com/twilio/twilio-python) from 9.2.1 to 9.2.2. - [Release notes](https://github.com/twilio/twilio-python/releases) - [Changelog](https://github.com/twilio/twilio-python/blob/main/CHANGES.md) - [Commits](https://github.com/twilio/twilio-python/compare/9.2.1...9.2.2) --- updated-dependencies: - dependency-name: twilio dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * core: bump google-api-python-client from 2.134.0 to 2.135.0 (#10281) Bumps [google-api-python-client](https://github.com/googleapis/google-api-python-client) from 2.134.0 to 2.135.0. - [Release notes](https://github.com/googleapis/google-api-python-client/releases) - [Commits](https://github.com/googleapis/google-api-python-client/compare/v2.134.0...v2.135.0) --- updated-dependencies: - dependency-name: google-api-python-client dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * core: bump sentry-sdk from 2.5.1 to 2.7.1 (#10282) Bumps [sentry-sdk](https://github.com/getsentry/sentry-python) from 2.5.1 to 2.7.1. - [Release notes](https://github.com/getsentry/sentry-python/releases) - [Changelog](https://github.com/getsentry/sentry-python/blob/master/CHANGELOG.md) - [Commits](https://github.com/getsentry/sentry-python/compare/2.5.1...2.7.1) --- updated-dependencies: - dependency-name: sentry-sdk dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * core, web: update translations (#10279) Co-authored-by: rissson <18313093+rissson@users.noreply.github.com> * root: allow extra sentry settings (#10269) * core: fix URLValidator regex to allow single digit port (#10280) * root: fix web docker build (#10287) * tests/e2e: fix ldap tests following #10270 (#10288) * web/admin: show matching user reputation scores in user details (#10276) Co-authored-by: Jens Langhammer * web: bump API Client version (#10290) Signed-off-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> Co-authored-by: authentik-automation[bot] <135050075+authentik-automation[bot]@users.noreply.github.com> * web: restore hasLaunchUrl to client-side criteria for filtering apps (#10291) * web: fix esbuild issue with style sheets Getting ESBuild, Lit, and Storybook to all agree on how to read and parse stylesheets is a serious pain. This fix better identifies the value types (instances) being passed from various sources in the repo to the three *different* kinds of style processors we're using (the native one, the polyfill one, and whatever the heck Storybook does internally). Falling back to using older CSS instantiating techniques one era at a time seems to do the trick. It's ugly, but in the face of the aggressive styling we use to avoid Flashes of Unstyled Content (FLoUC), it's the logic with which we're left. In standard mode, the following warning appears on the console when running a Flow: ``` Autofocus processing was blocked because a document already has a focused element. ``` In compatibility mode, the following **error** appears on the console when running a Flow: ``` crawler-inject.js:1106 Uncaught TypeError: Failed to execute 'observe' on 'MutationObserver': parameter 1 is not of type 'Node'. at initDomMutationObservers (crawler-inject.js:1106:18) at crawler-inject.js:1114:24 at Array.forEach () at initDomMutationObservers (crawler-inject.js:1114:10) at crawler-inject.js:1549:1 initDomMutationObservers @ crawler-inject.js:1106 (anonymous) @ crawler-inject.js:1114 initDomMutationObservers @ crawler-inject.js:1114 (anonymous) @ crawler-inject.js:1549 ``` Despite this error, nothing seems to be broken and flows work as anticipated. * web: restore `hasLaunchUrl` to the The `filteredApps` criteria I misunderstood where this information was coming from. Sorry about that. * Use the most efficient operator here. * core: applications api: prefetch related policies (#10273) * stages/user_login: fix ?next parameter not carried through broken session binding (#10301) Signed-off-by: Jens Langhammer * core: bump psycopg from 3.1.19 to 3.2.1 (#10313) Bumps [psycopg](https://github.com/psycopg/psycopg) from 3.1.19 to 3.2.1. - [Changelog](https://github.com/psycopg/psycopg/blob/master/docs/news.rst) - [Commits](https://github.com/psycopg/psycopg/compare/3.1.19...3.2.1) --- updated-dependencies: - dependency-name: psycopg dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * core: bump goauthentik.io/api/v3 from 3.2024060.1 to 3.2024060.2 (#10311) Bumps [goauthentik.io/api/v3](https://github.com/goauthentik/client-go) from 3.2024060.1 to 3.2024060.2. - [Release notes](https://github.com/goauthentik/client-go/releases) - [Commits](https://github.com/goauthentik/client-go/compare/v3.2024060.1...v3.2024060.2) --- updated-dependencies: - dependency-name: goauthentik.io/api/v3 dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * website: bump postcss from 8.4.38 to 8.4.39 in /website (#10310) Bumps [postcss](https://github.com/postcss/postcss) from 8.4.38 to 8.4.39. - [Release notes](https://github.com/postcss/postcss/releases) - [Changelog](https://github.com/postcss/postcss/blob/main/CHANGELOG.md) - [Commits](https://github.com/postcss/postcss/compare/8.4.38...8.4.39) --- updated-dependencies: - dependency-name: postcss dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * web: bump esbuild from 0.21.5 to 0.22.0 in /web (#10309) Bumps [esbuild](https://github.com/evanw/esbuild) from 0.21.5 to 0.22.0. - [Release notes](https://github.com/evanw/esbuild/releases) - [Changelog](https://github.com/evanw/esbuild/blob/main/CHANGELOG.md) - [Commits](https://github.com/evanw/esbuild/compare/v0.21.5...v0.22.0) --- updated-dependencies: - dependency-name: esbuild dependency-type: direct:development update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * web: bump the esbuild group in /web with 2 updates (#10308) Bumps the esbuild group in /web with 2 updates: [@esbuild/darwin-arm64](https://github.com/evanw/esbuild) and [@esbuild/linux-arm64](https://github.com/evanw/esbuild). Updates `@esbuild/darwin-arm64` from 0.21.5 to 0.22.0 - [Release notes](https://github.com/evanw/esbuild/releases) - [Changelog](https://github.com/evanw/esbuild/blob/main/CHANGELOG.md) - [Commits](https://github.com/evanw/esbuild/compare/v0.21.5...v0.22.0) Updates `@esbuild/linux-arm64` from 0.21.5 to 0.22.0 - [Release notes](https://github.com/evanw/esbuild/releases) - [Changelog](https://github.com/evanw/esbuild/blob/main/CHANGELOG.md) - [Commits](https://github.com/evanw/esbuild/compare/v0.21.5...v0.22.0) --- updated-dependencies: - dependency-name: "@esbuild/darwin-arm64" dependency-type: direct:production update-type: version-update:semver-minor dependency-group: esbuild - dependency-name: "@esbuild/linux-arm64" dependency-type: direct:production update-type: version-update:semver-minor dependency-group: esbuild ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * stages/authenticator_webauthn: Update FIDO MDS3 & Passkey aaguid blobs (#10306) Signed-off-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> Co-authored-by: authentik-automation[bot] <135050075+authentik-automation[bot]@users.noreply.github.com> * core, web: update translations (#10294) Signed-off-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> Co-authored-by: rissson <18313093+rissson@users.noreply.github.com> * web: fix package lock out of sync (#10314) * translate: Updates for file web/xliff/en.xlf in zh_CN (#10315) Translate web/xliff/en.xlf in zh_CN 100% translated source file: 'web/xliff/en.xlf' on 'zh_CN'. Co-authored-by: transifex-integration[bot] <43880903+transifex-integration[bot]@users.noreply.github.com> * web/flows: remove background image link (#10318) Signed-off-by: Jens Langhammer * core: remove transitionary old JS urls (#10317) Signed-off-by: Jens Langhammer * web: set noopener and noreferrer on all external links (#10304) Signed-off-by: Jens Langhammer * web: bump typescript from 5.5.2 to 5.5.3 in /web (#10332) Bumps [typescript](https://github.com/Microsoft/TypeScript) from 5.5.2 to 5.5.3. - [Release notes](https://github.com/Microsoft/TypeScript/releases) - [Changelog](https://github.com/microsoft/TypeScript/blob/main/azure-pipelines.release.yml) - [Commits](https://github.com/Microsoft/TypeScript/compare/v5.5.2...v5.5.3) --- updated-dependencies: - dependency-name: typescript dependency-type: direct:development update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * web: bump the esbuild group in /web with 2 updates (#10330) Bumps the esbuild group in /web with 2 updates: [@esbuild/darwin-arm64](https://github.com/evanw/esbuild) and [@esbuild/linux-arm64](https://github.com/evanw/esbuild). Updates `@esbuild/darwin-arm64` from 0.22.0 to 0.23.0 - [Release notes](https://github.com/evanw/esbuild/releases) - [Changelog](https://github.com/evanw/esbuild/blob/main/CHANGELOG.md) - [Commits](https://github.com/evanw/esbuild/compare/v0.22.0...v0.23.0) Updates `@esbuild/linux-arm64` from 0.22.0 to 0.23.0 - [Release notes](https://github.com/evanw/esbuild/releases) - [Changelog](https://github.com/evanw/esbuild/blob/main/CHANGELOG.md) - [Commits](https://github.com/evanw/esbuild/compare/v0.22.0...v0.23.0) --- updated-dependencies: - dependency-name: "@esbuild/darwin-arm64" dependency-type: direct:production update-type: version-update:semver-minor dependency-group: esbuild - dependency-name: "@esbuild/linux-arm64" dependency-type: direct:production update-type: version-update:semver-minor dependency-group: esbuild ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * web: bump typescript from 5.5.2 to 5.5.3 in /tests/wdio (#10327) Bumps [typescript](https://github.com/Microsoft/TypeScript) from 5.5.2 to 5.5.3. - [Release notes](https://github.com/Microsoft/TypeScript/releases) - [Changelog](https://github.com/microsoft/TypeScript/blob/main/azure-pipelines.release.yml) - [Commits](https://github.com/Microsoft/TypeScript/compare/v5.5.2...v5.5.3) --- updated-dependencies: - dependency-name: typescript dependency-type: direct:development update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * core: bump pydantic from 2.7.4 to 2.8.0 (#10325) Bumps [pydantic](https://github.com/pydantic/pydantic) from 2.7.4 to 2.8.0. - [Release notes](https://github.com/pydantic/pydantic/releases) - [Changelog](https://github.com/pydantic/pydantic/blob/main/HISTORY.md) - [Commits](https://github.com/pydantic/pydantic/compare/v2.7.4...v2.8.0) --- updated-dependencies: - dependency-name: pydantic dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * website: bump typescript from 5.5.2 to 5.5.3 in /website (#10326) Bumps [typescript](https://github.com/Microsoft/TypeScript) from 5.5.2 to 5.5.3. - [Release notes](https://github.com/Microsoft/TypeScript/releases) - [Changelog](https://github.com/microsoft/TypeScript/blob/main/azure-pipelines.release.yml) - [Commits](https://github.com/Microsoft/TypeScript/compare/v5.5.2...v5.5.3) --- updated-dependencies: - dependency-name: typescript dependency-type: direct:development update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * core, web: update translations (#10324) Signed-off-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> Co-authored-by: rissson <18313093+rissson@users.noreply.github.com> * web: fixed missed internationalized strings (#10323) * web: fix esbuild issue with style sheets Getting ESBuild, Lit, and Storybook to all agree on how to read and parse stylesheets is a serious pain. This fix better identifies the value types (instances) being passed from various sources in the repo to the three *different* kinds of style processors we're using (the native one, the polyfill one, and whatever the heck Storybook does internally). Falling back to using older CSS instantiating techniques one era at a time seems to do the trick. It's ugly, but in the face of the aggressive styling we use to avoid Flashes of Unstyled Content (FLoUC), it's the logic with which we're left. In standard mode, the following warning appears on the console when running a Flow: ``` Autofocus processing was blocked because a document already has a focused element. ``` In compatibility mode, the following **error** appears on the console when running a Flow: ``` crawler-inject.js:1106 Uncaught TypeError: Failed to execute 'observe' on 'MutationObserver': parameter 1 is not of type 'Node'. at initDomMutationObservers (crawler-inject.js:1106:18) at crawler-inject.js:1114:24 at Array.forEach () at initDomMutationObservers (crawler-inject.js:1114:10) at crawler-inject.js:1549:1 initDomMutationObservers @ crawler-inject.js:1106 (anonymous) @ crawler-inject.js:1114 initDomMutationObservers @ crawler-inject.js:1114 (anonymous) @ crawler-inject.js:1549 ``` Despite this error, nothing seems to be broken and flows work as anticipated. * web: you have no missed messages This commit uncovers a few places where a human-readable string was not property cast into the internationalized form and internationalizes them in order to conform to our policy of keeping the product viable outside of the English-speaking world. * Restored SAML spacing manually. Not sure why that was necessary. * Restored WS spacing manually. Not sure why that was necessary. * Restored RouteMatch spacing manually. Not sure why that was necessary. * Restored RAC spacing manually. Not sure why that was necessary. * web: bump esbuild from 0.22.0 to 0.23.0 in /web (#10331) Bumps [esbuild](https://github.com/evanw/esbuild) from 0.22.0 to 0.23.0. - [Release notes](https://github.com/evanw/esbuild/releases) - [Changelog](https://github.com/evanw/esbuild/blob/main/CHANGELOG.md) - [Commits](https://github.com/evanw/esbuild/compare/v0.22.0...v0.23.0) --- updated-dependencies: - dependency-name: esbuild dependency-type: direct:development update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * translate: Updates for file web/xliff/en.xlf in zh-Hans (#10293) Co-authored-by: transifex-integration[bot] <43880903+transifex-integration[bot]@users.noreply.github.com> Co-authored-by: Marc 'risson' Schmitt * translate: Updates for file web/xliff/en.xlf in fr (#10334) Translate web/xliff/en.xlf in fr 100% translated source file: 'web/xliff/en.xlf' on 'fr'. Co-authored-by: transifex-integration[bot] <43880903+transifex-integration[bot]@users.noreply.github.com> * provider/scim: Fix exception handling for missing ServiceProviderConfig (#10322) * web: provide default endpoint api configuration (#10319) * web: fix esbuild issue with style sheets Getting ESBuild, Lit, and Storybook to all agree on how to read and parse stylesheets is a serious pain. This fix better identifies the value types (instances) being passed from various sources in the repo to the three *different* kinds of style processors we're using (the native one, the polyfill one, and whatever the heck Storybook does internally). Falling back to using older CSS instantiating techniques one era at a time seems to do the trick. It's ugly, but in the face of the aggressive styling we use to avoid Flashes of Unstyled Content (FLoUC), it's the logic with which we're left. In standard mode, the following warning appears on the console when running a Flow: ``` Autofocus processing was blocked because a document already has a focused element. ``` In compatibility mode, the following **error** appears on the console when running a Flow: ``` crawler-inject.js:1106 Uncaught TypeError: Failed to execute 'observe' on 'MutationObserver': parameter 1 is not of type 'Node'. at initDomMutationObservers (crawler-inject.js:1106:18) at crawler-inject.js:1114:24 at Array.forEach () at initDomMutationObservers (crawler-inject.js:1114:10) at crawler-inject.js:1549:1 initDomMutationObservers @ crawler-inject.js:1106 (anonymous) @ crawler-inject.js:1114 initDomMutationObservers @ crawler-inject.js:1114 (anonymous) @ crawler-inject.js:1549 ``` Despite this error, nothing seems to be broken and flows work as anticipated. * Intermediate; prepping for remove that may fail. * web: provide a default table endpoint configuration This commit finds 19 places where the exact same configuration is used to describe a table's API endpoint, and replaces that configuration with a provided default from a parent class. While examining the logs for our build, I noted that this particular sequence is duplicated multiple times throughout our code base, accounting for a bloat of 169 lines or so of the estimated 5552 lines of bloat. By providing a default endpoint configuration and substituting it (mechanically) wherever the default is required, we reduce our code duplication issue from 9.26% of the codesabe to 8.99%. ... which is a start. * Didn't need the duplication. * remove page argument while we're at it Signed-off-by: Jens Langhammer * actually use it everywhere Signed-off-by: Jens Langhammer * web: fix inconsistent method signature for LogViewer Removed the `_page` parameter from LogViewer's apiEndpoint() method. The `page: number` parameter is no longer a part of this method's signature. * web: restore reduced page size to Overview:Recent Events card --------- Signed-off-by: Jens Langhammer Co-authored-by: Jens Langhammer --------- Signed-off-by: Marc 'risson' Schmitt Signed-off-by: Jens Langhammer Signed-off-by: Russ Harvey <53157589+rwh85@users.noreply.github.com> Signed-off-by: dependabot[bot] Signed-off-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> Co-authored-by: gcp-cherry-pick-bot[bot] <98988430+gcp-cherry-pick-bot[bot]@users.noreply.github.com> Co-authored-by: Marc 'risson' Schmitt Co-authored-by: Jens L Co-authored-by: Tana M Berry Co-authored-by: Tana M Berry Co-authored-by: authentik-automation[bot] <135050075+authentik-automation[bot]@users.noreply.github.com> Co-authored-by: Jonathan Joewono <30559735+jogerj@users.noreply.github.com> Co-authored-by: Russ Harvey <53157589+rwh85@users.noreply.github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: rissson <18313093+rissson@users.noreply.github.com> Co-authored-by: transifex-integration[bot] <43880903+transifex-integration[bot]@users.noreply.github.com> Co-authored-by: ztelliot <1141480995@qq.com> Co-authored-by: Michael Poutre --------- Signed-off-by: Marc 'risson' Schmitt Signed-off-by: Jens Langhammer Signed-off-by: Russ Harvey <53157589+rwh85@users.noreply.github.com> Signed-off-by: dependabot[bot] Signed-off-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> Co-authored-by: gcp-cherry-pick-bot[bot] <98988430+gcp-cherry-pick-bot[bot]@users.noreply.github.com> Co-authored-by: Marc 'risson' Schmitt Co-authored-by: Jens L Co-authored-by: Tana M Berry Co-authored-by: Tana M Berry Co-authored-by: authentik-automation[bot] <135050075+authentik-automation[bot]@users.noreply.github.com> Co-authored-by: Jonathan Joewono <30559735+jogerj@users.noreply.github.com> Co-authored-by: Russ Harvey <53157589+rwh85@users.noreply.github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: rissson <18313093+rissson@users.noreply.github.com> Co-authored-by: transifex-integration[bot] <43880903+transifex-integration[bot]@users.noreply.github.com> Co-authored-by: ztelliot <1141480995@qq.com> Co-authored-by: Michael Poutre --- .../admin/applications/ApplicationViewPage.ts | 2 +- web/src/admin/blueprints/BlueprintListPage.ts | 2 +- web/src/admin/brands/BrandListPage.ts | 2 +- .../crypto/CertificateKeyPairListPage.ts | 2 +- .../enterprise/EnterpriseLicenseListPage.ts | 2 +- web/src/admin/events/RuleListPage.ts | 3 +- web/src/admin/events/TransportListPage.ts | 3 +- web/src/admin/flows/FlowViewPage.ts | 2 +- web/src/admin/groups/GroupViewPage.ts | 2 +- web/src/admin/outposts/OutpostListPage.ts | 2 +- .../outposts/ServiceConnectionListPage.ts | 2 +- web/src/admin/policies/PolicyListPage.ts | 2 +- .../policies/reputation/ReputationListPage.ts | 2 +- .../PropertyMappingListPage.ts | 2 +- .../GoogleWorkspaceProviderViewPage.ts | 2 +- .../providers/ldap/LDAPProviderViewPage.ts | 2 +- .../MicrosoftEntraProviderViewPage.ts | 2 +- .../providers/proxy/ProxyProviderViewPage.ts | 2 +- web/src/admin/providers/rac/EndpointList.ts | 2 +- .../providers/rac/RACProviderViewPage.ts | 2 +- .../radius/RadiusProviderViewPage.ts | 2 +- .../providers/saml/SAMLProviderViewPage.ts | 2 +- .../providers/scim/SCIMProviderViewPage.ts | 2 +- .../rbac/ObjectPermissionModal.ts | 2 +- .../rbac/ObjectPermissionsPage.ts | 4 +- .../rbac/PermissionSelectModal.ts | 0 .../rbac/RoleObjectPermissionForm.ts | 0 .../rbac/RoleObjectPermissionTable.ts | 2 +- .../rbac/UserObjectPermissionForm.ts | 0 .../rbac/UserObjectPermissionTable.ts | 2 +- web/src/admin/roles/RolePermissionForm.ts | 5 +-- web/src/admin/roles/RoleViewPage.ts | 2 +- .../admin/sources/ldap/LDAPSourceViewPage.ts | 2 +- .../sources/oauth/OAuthSourceViewPage.ts | 2 +- .../admin/sources/plex/PlexSourceViewPage.ts | 2 +- .../admin/sources/saml/SAMLSourceViewPage.ts | 2 +- .../admin/sources/scim/SCIMSourceViewPage.ts | 2 +- web/src/admin/stages/StageListPage.ts | 41 +++++++++---------- .../stages/invitation/InvitationListPage.ts | 2 +- web/src/admin/stages/prompt/PromptListPage.ts | 2 +- web/src/admin/tokens/TokenListPage.ts | 2 +- web/src/admin/users/UserPermissionForm.ts | 5 +-- web/src/admin/users/UserViewPage.ts | 2 +- 43 files changed, 61 insertions(+), 68 deletions(-) rename web/src/{elements => admin}/rbac/ObjectPermissionModal.ts (97%) rename web/src/{elements => admin}/rbac/ObjectPermissionsPage.ts (98%) rename web/src/{elements => admin}/rbac/PermissionSelectModal.ts (100%) rename web/src/{elements => admin}/rbac/RoleObjectPermissionForm.ts (100%) rename web/src/{elements => admin}/rbac/RoleObjectPermissionTable.ts (98%) rename web/src/{elements => admin}/rbac/UserObjectPermissionForm.ts (100%) rename web/src/{elements => admin}/rbac/UserObjectPermissionTable.ts (98%) diff --git a/web/src/admin/applications/ApplicationViewPage.ts b/web/src/admin/applications/ApplicationViewPage.ts index 19db71df55..5a5d24fa51 100644 --- a/web/src/admin/applications/ApplicationViewPage.ts +++ b/web/src/admin/applications/ApplicationViewPage.ts @@ -2,6 +2,7 @@ import "@goauthentik/admin/applications/ApplicationAuthorizeChart"; import "@goauthentik/admin/applications/ApplicationCheckAccessForm"; import "@goauthentik/admin/applications/ApplicationForm"; import "@goauthentik/admin/policies/BoundPoliciesList"; +import "@goauthentik/admin/rbac/ObjectPermissionsPage"; import { DEFAULT_CONFIG } from "@goauthentik/common/api/config"; import { PFSize } from "@goauthentik/common/enums.js"; import "@goauthentik/components/ak-app-icon"; @@ -11,7 +12,6 @@ import "@goauthentik/elements/EmptyState"; import "@goauthentik/elements/PageHeader"; import "@goauthentik/elements/Tabs"; import "@goauthentik/elements/buttons/SpinnerButton"; -import "@goauthentik/elements/rbac/ObjectPermissionsPage"; import { msg } from "@lit/localize"; import { CSSResult, PropertyValues, TemplateResult, html } from "lit"; diff --git a/web/src/admin/blueprints/BlueprintListPage.ts b/web/src/admin/blueprints/BlueprintListPage.ts index 71b27baba3..007e1261c5 100644 --- a/web/src/admin/blueprints/BlueprintListPage.ts +++ b/web/src/admin/blueprints/BlueprintListPage.ts @@ -1,4 +1,5 @@ import "@goauthentik/admin/blueprints/BlueprintForm"; +import "@goauthentik/admin/rbac/ObjectPermissionModal"; import { DEFAULT_CONFIG } from "@goauthentik/common/api/config"; import { EVENT_REFRESH } from "@goauthentik/common/constants"; import { getRelativeTime } from "@goauthentik/common/utils"; @@ -7,7 +8,6 @@ import "@goauthentik/elements/buttons/ActionButton"; import "@goauthentik/elements/buttons/SpinnerButton"; import "@goauthentik/elements/forms/DeleteBulkForm"; import "@goauthentik/elements/forms/ModalForm"; -import "@goauthentik/elements/rbac/ObjectPermissionModal"; import { PaginatedResponse } from "@goauthentik/elements/table/Table"; import { TableColumn } from "@goauthentik/elements/table/Table"; import { TablePage } from "@goauthentik/elements/table/TablePage"; diff --git a/web/src/admin/brands/BrandListPage.ts b/web/src/admin/brands/BrandListPage.ts index d797e85339..a80d6dd232 100644 --- a/web/src/admin/brands/BrandListPage.ts +++ b/web/src/admin/brands/BrandListPage.ts @@ -1,11 +1,11 @@ import "@goauthentik/admin/brands/BrandForm"; +import "@goauthentik/admin/rbac/ObjectPermissionModal"; import { DEFAULT_CONFIG } from "@goauthentik/common/api/config"; import "@goauthentik/components/ak-status-label"; import "@goauthentik/components/ak-status-label"; import "@goauthentik/elements/buttons/SpinnerButton"; import "@goauthentik/elements/forms/DeleteBulkForm"; import "@goauthentik/elements/forms/ModalForm"; -import "@goauthentik/elements/rbac/ObjectPermissionModal"; import { PaginatedResponse } from "@goauthentik/elements/table/Table"; import { TableColumn } from "@goauthentik/elements/table/Table"; import { TablePage } from "@goauthentik/elements/table/TablePage"; diff --git a/web/src/admin/crypto/CertificateKeyPairListPage.ts b/web/src/admin/crypto/CertificateKeyPairListPage.ts index 9fdadbd9e7..cba7ccaa7e 100644 --- a/web/src/admin/crypto/CertificateKeyPairListPage.ts +++ b/web/src/admin/crypto/CertificateKeyPairListPage.ts @@ -1,12 +1,12 @@ import "@goauthentik/admin/crypto/CertificateGenerateForm"; import "@goauthentik/admin/crypto/CertificateKeyPairForm"; +import "@goauthentik/admin/rbac/ObjectPermissionModal"; import { DEFAULT_CONFIG } from "@goauthentik/common/api/config"; import "@goauthentik/components/ak-status-label"; import { PFColor } from "@goauthentik/elements/Label"; import "@goauthentik/elements/buttons/SpinnerButton"; import "@goauthentik/elements/forms/DeleteBulkForm"; import "@goauthentik/elements/forms/ModalForm"; -import "@goauthentik/elements/rbac/ObjectPermissionModal"; import { PaginatedResponse } from "@goauthentik/elements/table/Table"; import { TableColumn } from "@goauthentik/elements/table/Table"; import { TablePage } from "@goauthentik/elements/table/TablePage"; diff --git a/web/src/admin/enterprise/EnterpriseLicenseListPage.ts b/web/src/admin/enterprise/EnterpriseLicenseListPage.ts index 5004a6cb06..2edda33293 100644 --- a/web/src/admin/enterprise/EnterpriseLicenseListPage.ts +++ b/web/src/admin/enterprise/EnterpriseLicenseListPage.ts @@ -1,4 +1,5 @@ import "@goauthentik/admin/enterprise/EnterpriseLicenseForm"; +import "@goauthentik/admin/rbac/ObjectPermissionModal"; import { DEFAULT_CONFIG } from "@goauthentik/common/api/config"; import { getRelativeTime } from "@goauthentik/common/utils"; import { PFColor } from "@goauthentik/elements/Label"; @@ -7,7 +8,6 @@ import "@goauthentik/elements/buttons/SpinnerButton"; import "@goauthentik/elements/cards/AggregateCard"; import "@goauthentik/elements/forms/DeleteBulkForm"; import "@goauthentik/elements/forms/ModalForm"; -import "@goauthentik/elements/rbac/ObjectPermissionModal"; import { PaginatedResponse } from "@goauthentik/elements/table/Table"; import { TableColumn } from "@goauthentik/elements/table/Table"; import { TablePage } from "@goauthentik/elements/table/TablePage"; diff --git a/web/src/admin/events/RuleListPage.ts b/web/src/admin/events/RuleListPage.ts index 1416829e51..ec5eaebf74 100644 --- a/web/src/admin/events/RuleListPage.ts +++ b/web/src/admin/events/RuleListPage.ts @@ -1,12 +1,11 @@ import "@goauthentik/admin/events/RuleForm"; import "@goauthentik/admin/policies/BoundPoliciesList"; +import "@goauthentik/admin/rbac/ObjectPermissionModal"; import { DEFAULT_CONFIG } from "@goauthentik/common/api/config"; import { severityToLabel } from "@goauthentik/common/labels"; import "@goauthentik/elements/buttons/SpinnerButton"; import "@goauthentik/elements/forms/DeleteBulkForm"; import "@goauthentik/elements/forms/ModalForm"; -import "@goauthentik/elements/rbac/ObjectPermissionModal"; -import "@goauthentik/elements/rbac/ObjectPermissionModal"; import { PaginatedResponse } from "@goauthentik/elements/table/Table"; import { TableColumn } from "@goauthentik/elements/table/Table"; import { TablePage } from "@goauthentik/elements/table/TablePage"; diff --git a/web/src/admin/events/TransportListPage.ts b/web/src/admin/events/TransportListPage.ts index dee59f1df3..8a6ef84ae9 100644 --- a/web/src/admin/events/TransportListPage.ts +++ b/web/src/admin/events/TransportListPage.ts @@ -1,11 +1,10 @@ import "@goauthentik/admin/events/TransportForm"; +import "@goauthentik/admin/rbac/ObjectPermissionModal"; import { DEFAULT_CONFIG } from "@goauthentik/common/api/config"; import "@goauthentik/elements/buttons/ActionButton"; import "@goauthentik/elements/buttons/SpinnerButton"; import "@goauthentik/elements/forms/DeleteBulkForm"; import "@goauthentik/elements/forms/ModalForm"; -import "@goauthentik/elements/rbac/ObjectPermissionModal"; -import "@goauthentik/elements/rbac/ObjectPermissionModal"; import { PaginatedResponse } from "@goauthentik/elements/table/Table"; import { TableColumn } from "@goauthentik/elements/table/Table"; import { TablePage } from "@goauthentik/elements/table/TablePage"; diff --git a/web/src/admin/flows/FlowViewPage.ts b/web/src/admin/flows/FlowViewPage.ts index e7c42c1d6c..21f8faf23e 100644 --- a/web/src/admin/flows/FlowViewPage.ts +++ b/web/src/admin/flows/FlowViewPage.ts @@ -3,13 +3,13 @@ import "@goauthentik/admin/flows/FlowDiagram"; import "@goauthentik/admin/flows/FlowForm"; import { DesignationToLabel } from "@goauthentik/admin/flows/utils"; import "@goauthentik/admin/policies/BoundPoliciesList"; +import "@goauthentik/admin/rbac/ObjectPermissionsPage"; import { AndNext, DEFAULT_CONFIG } from "@goauthentik/common/api/config"; import "@goauthentik/components/events/ObjectChangelog"; import { AKElement } from "@goauthentik/elements/Base"; import "@goauthentik/elements/PageHeader"; import "@goauthentik/elements/Tabs"; import "@goauthentik/elements/buttons/SpinnerButton"; -import "@goauthentik/elements/rbac/ObjectPermissionsPage"; import { msg } from "@lit/localize"; import { CSSResult, PropertyValues, TemplateResult, css, html } from "lit"; diff --git a/web/src/admin/groups/GroupViewPage.ts b/web/src/admin/groups/GroupViewPage.ts index 438d083be2..d3e3575449 100644 --- a/web/src/admin/groups/GroupViewPage.ts +++ b/web/src/admin/groups/GroupViewPage.ts @@ -1,5 +1,6 @@ import "@goauthentik/admin/groups/GroupForm"; import "@goauthentik/admin/groups/RelatedUserList"; +import "@goauthentik/admin/rbac/ObjectPermissionsPage"; import { DEFAULT_CONFIG } from "@goauthentik/common/api/config"; import { EVENT_REFRESH } from "@goauthentik/common/constants"; import "@goauthentik/components/ak-status-label"; @@ -11,7 +12,6 @@ import "@goauthentik/elements/Tabs"; import "@goauthentik/elements/buttons/ActionButton"; import "@goauthentik/elements/buttons/SpinnerButton"; import "@goauthentik/elements/forms/ModalForm"; -import "@goauthentik/elements/rbac/ObjectPermissionsPage"; import { msg, str } from "@lit/localize"; import { CSSResult, TemplateResult, html } from "lit"; diff --git a/web/src/admin/outposts/OutpostListPage.ts b/web/src/admin/outposts/OutpostListPage.ts index edf4f00e2a..2657a22f2a 100644 --- a/web/src/admin/outposts/OutpostListPage.ts +++ b/web/src/admin/outposts/OutpostListPage.ts @@ -3,13 +3,13 @@ import "@goauthentik/admin/outposts/OutpostDeploymentModal"; import "@goauthentik/admin/outposts/OutpostForm"; import "@goauthentik/admin/outposts/OutpostHealth"; import "@goauthentik/admin/outposts/OutpostHealthSimple"; +import "@goauthentik/admin/rbac/ObjectPermissionModal"; import { DEFAULT_CONFIG } from "@goauthentik/common/api/config"; import { PFSize } from "@goauthentik/common/enums.js"; import { PFColor } from "@goauthentik/elements/Label"; import "@goauthentik/elements/buttons/SpinnerButton"; import "@goauthentik/elements/forms/DeleteBulkForm"; import "@goauthentik/elements/forms/ModalForm"; -import "@goauthentik/elements/rbac/ObjectPermissionModal"; import { PaginatedResponse } from "@goauthentik/elements/table/Table"; import { TableColumn } from "@goauthentik/elements/table/Table"; import { TablePage } from "@goauthentik/elements/table/TablePage"; diff --git a/web/src/admin/outposts/ServiceConnectionListPage.ts b/web/src/admin/outposts/ServiceConnectionListPage.ts index 4de93d7579..37a6f080ad 100644 --- a/web/src/admin/outposts/ServiceConnectionListPage.ts +++ b/web/src/admin/outposts/ServiceConnectionListPage.ts @@ -2,6 +2,7 @@ import "@goauthentik/admin/outposts/OutpostHealth"; import "@goauthentik/admin/outposts/ServiceConnectionDockerForm"; import "@goauthentik/admin/outposts/ServiceConnectionKubernetesForm"; import "@goauthentik/admin/outposts/ServiceConnectionWizard"; +import "@goauthentik/admin/rbac/ObjectPermissionModal"; import { DEFAULT_CONFIG } from "@goauthentik/common/api/config"; import "@goauthentik/components/ak-status-label"; import { PFColor } from "@goauthentik/elements/Label"; @@ -9,7 +10,6 @@ import "@goauthentik/elements/buttons/SpinnerButton"; import "@goauthentik/elements/forms/DeleteBulkForm"; import "@goauthentik/elements/forms/ModalForm"; import "@goauthentik/elements/forms/ProxyForm"; -import "@goauthentik/elements/rbac/ObjectPermissionModal"; import { PaginatedResponse } from "@goauthentik/elements/table/Table"; import { TableColumn } from "@goauthentik/elements/table/Table"; import { TablePage } from "@goauthentik/elements/table/TablePage"; diff --git a/web/src/admin/policies/PolicyListPage.ts b/web/src/admin/policies/PolicyListPage.ts index e6875199f6..39892fc66b 100644 --- a/web/src/admin/policies/PolicyListPage.ts +++ b/web/src/admin/policies/PolicyListPage.ts @@ -6,13 +6,13 @@ import "@goauthentik/admin/policies/expiry/ExpiryPolicyForm"; import "@goauthentik/admin/policies/expression/ExpressionPolicyForm"; import "@goauthentik/admin/policies/password/PasswordPolicyForm"; import "@goauthentik/admin/policies/reputation/ReputationPolicyForm"; +import "@goauthentik/admin/rbac/ObjectPermissionModal"; import { DEFAULT_CONFIG } from "@goauthentik/common/api/config"; import { PFColor } from "@goauthentik/elements/Label"; import "@goauthentik/elements/forms/ConfirmationForm"; import "@goauthentik/elements/forms/DeleteBulkForm"; import "@goauthentik/elements/forms/ModalForm"; import "@goauthentik/elements/forms/ProxyForm"; -import "@goauthentik/elements/rbac/ObjectPermissionModal"; import { PaginatedResponse } from "@goauthentik/elements/table/Table"; import { TableColumn } from "@goauthentik/elements/table/Table"; import { TablePage } from "@goauthentik/elements/table/TablePage"; diff --git a/web/src/admin/policies/reputation/ReputationListPage.ts b/web/src/admin/policies/reputation/ReputationListPage.ts index a104d28949..de71a293cb 100644 --- a/web/src/admin/policies/reputation/ReputationListPage.ts +++ b/web/src/admin/policies/reputation/ReputationListPage.ts @@ -1,10 +1,10 @@ +import "@goauthentik/admin/rbac/ObjectPermissionModal"; import { DEFAULT_CONFIG } from "@goauthentik/common/api/config"; import { getRelativeTime } from "@goauthentik/common/utils"; import "@goauthentik/elements/buttons/ModalButton"; import "@goauthentik/elements/buttons/SpinnerButton"; import "@goauthentik/elements/forms/DeleteBulkForm"; import "@goauthentik/elements/forms/ModalForm"; -import "@goauthentik/elements/rbac/ObjectPermissionModal"; import { PaginatedResponse } from "@goauthentik/elements/table/Table"; import { TableColumn } from "@goauthentik/elements/table/Table"; import { TablePage } from "@goauthentik/elements/table/TablePage"; diff --git a/web/src/admin/property-mappings/PropertyMappingListPage.ts b/web/src/admin/property-mappings/PropertyMappingListPage.ts index 3880a4b37d..b6a9245372 100644 --- a/web/src/admin/property-mappings/PropertyMappingListPage.ts +++ b/web/src/admin/property-mappings/PropertyMappingListPage.ts @@ -8,11 +8,11 @@ import "@goauthentik/admin/property-mappings/PropertyMappingSCIMForm"; import "@goauthentik/admin/property-mappings/PropertyMappingScopeForm"; import "@goauthentik/admin/property-mappings/PropertyMappingTestForm"; import "@goauthentik/admin/property-mappings/PropertyMappingWizard"; +import "@goauthentik/admin/rbac/ObjectPermissionModal"; import { DEFAULT_CONFIG } from "@goauthentik/common/api/config"; import "@goauthentik/elements/forms/DeleteBulkForm"; import "@goauthentik/elements/forms/ModalForm"; import "@goauthentik/elements/forms/ProxyForm"; -import "@goauthentik/elements/rbac/ObjectPermissionModal"; import { getURLParam, updateURLParams } from "@goauthentik/elements/router/RouteMatch"; import { PaginatedResponse } from "@goauthentik/elements/table/Table"; import { TableColumn } from "@goauthentik/elements/table/Table"; diff --git a/web/src/admin/providers/google_workspace/GoogleWorkspaceProviderViewPage.ts b/web/src/admin/providers/google_workspace/GoogleWorkspaceProviderViewPage.ts index 4ca5b16a90..dae7d1050f 100644 --- a/web/src/admin/providers/google_workspace/GoogleWorkspaceProviderViewPage.ts +++ b/web/src/admin/providers/google_workspace/GoogleWorkspaceProviderViewPage.ts @@ -1,6 +1,7 @@ import "@goauthentik/admin/providers/google_workspace/GoogleWorkspaceProviderForm"; import "@goauthentik/admin/providers/google_workspace/GoogleWorkspaceProviderGroupList"; import "@goauthentik/admin/providers/google_workspace/GoogleWorkspaceProviderUserList"; +import "@goauthentik/admin/rbac/ObjectPermissionsPage"; import { DEFAULT_CONFIG } from "@goauthentik/common/api/config"; import { EVENT_REFRESH } from "@goauthentik/common/constants"; import "@goauthentik/components/events/ObjectChangelog"; @@ -10,7 +11,6 @@ import "@goauthentik/elements/SyncStatusCard"; import "@goauthentik/elements/Tabs"; import "@goauthentik/elements/buttons/ActionButton"; import "@goauthentik/elements/buttons/ModalButton"; -import "@goauthentik/elements/rbac/ObjectPermissionsPage"; import { msg } from "@lit/localize"; import { CSSResult, PropertyValues, TemplateResult, html } from "lit"; diff --git a/web/src/admin/providers/ldap/LDAPProviderViewPage.ts b/web/src/admin/providers/ldap/LDAPProviderViewPage.ts index 22a9d80b19..db0b75da04 100644 --- a/web/src/admin/providers/ldap/LDAPProviderViewPage.ts +++ b/web/src/admin/providers/ldap/LDAPProviderViewPage.ts @@ -1,5 +1,6 @@ import "@goauthentik/admin/providers/RelatedApplicationButton"; import "@goauthentik/admin/providers/ldap/LDAPProviderForm"; +import "@goauthentik/admin/rbac/ObjectPermissionsPage"; import { DEFAULT_CONFIG } from "@goauthentik/common/api/config"; import { EVENT_REFRESH } from "@goauthentik/common/constants"; import { me } from "@goauthentik/common/users"; @@ -9,7 +10,6 @@ import "@goauthentik/elements/CodeMirror"; import "@goauthentik/elements/Tabs"; import "@goauthentik/elements/buttons/ModalButton"; import "@goauthentik/elements/buttons/SpinnerButton"; -import "@goauthentik/elements/rbac/ObjectPermissionsPage"; import { msg } from "@lit/localize"; import { CSSResult, PropertyValues, TemplateResult, html } from "lit"; diff --git a/web/src/admin/providers/microsoft_entra/MicrosoftEntraProviderViewPage.ts b/web/src/admin/providers/microsoft_entra/MicrosoftEntraProviderViewPage.ts index c92c944639..b8ac9abffa 100644 --- a/web/src/admin/providers/microsoft_entra/MicrosoftEntraProviderViewPage.ts +++ b/web/src/admin/providers/microsoft_entra/MicrosoftEntraProviderViewPage.ts @@ -1,6 +1,7 @@ import "@goauthentik/admin/providers/microsoft_entra/MicrosoftEntraProviderFormPage"; import "@goauthentik/admin/providers/microsoft_entra/MicrosoftEntraProviderGroupList"; import "@goauthentik/admin/providers/microsoft_entra/MicrosoftEntraProviderUserList"; +import "@goauthentik/admin/rbac/ObjectPermissionsPage"; import { DEFAULT_CONFIG } from "@goauthentik/common/api/config"; import { EVENT_REFRESH } from "@goauthentik/common/constants"; import "@goauthentik/components/events/ObjectChangelog"; @@ -10,7 +11,6 @@ import "@goauthentik/elements/Tabs"; import "@goauthentik/elements/buttons/ActionButton"; import "@goauthentik/elements/buttons/ModalButton"; import "@goauthentik/elements/events/LogViewer"; -import "@goauthentik/elements/rbac/ObjectPermissionsPage"; import { msg } from "@lit/localize"; import { CSSResult, PropertyValues, TemplateResult, html } from "lit"; diff --git a/web/src/admin/providers/proxy/ProxyProviderViewPage.ts b/web/src/admin/providers/proxy/ProxyProviderViewPage.ts index e4488af237..9ce96de642 100644 --- a/web/src/admin/providers/proxy/ProxyProviderViewPage.ts +++ b/web/src/admin/providers/proxy/ProxyProviderViewPage.ts @@ -1,5 +1,6 @@ import "@goauthentik/admin/providers/RelatedApplicationButton"; import "@goauthentik/admin/providers/proxy/ProxyProviderForm"; +import "@goauthentik/admin/rbac/ObjectPermissionsPage"; import { DEFAULT_CONFIG } from "@goauthentik/common/api/config"; import { EVENT_REFRESH } from "@goauthentik/common/constants"; import { convertToSlug } from "@goauthentik/common/utils"; @@ -21,7 +22,6 @@ import { Replacer } from "@goauthentik/elements/Markdown"; import "@goauthentik/elements/Tabs"; import "@goauthentik/elements/buttons/ModalButton"; import "@goauthentik/elements/buttons/SpinnerButton"; -import "@goauthentik/elements/rbac/ObjectPermissionsPage"; import { getURLParam } from "@goauthentik/elements/router/RouteMatch"; import { msg } from "@lit/localize"; diff --git a/web/src/admin/providers/rac/EndpointList.ts b/web/src/admin/providers/rac/EndpointList.ts index 2d5a6305b4..289229e160 100644 --- a/web/src/admin/providers/rac/EndpointList.ts +++ b/web/src/admin/providers/rac/EndpointList.ts @@ -1,10 +1,10 @@ import "@goauthentik/admin/policies/BoundPoliciesList"; import "@goauthentik/admin/providers/rac/EndpointForm"; +import "@goauthentik/admin/rbac/ObjectPermissionModal"; import { DEFAULT_CONFIG } from "@goauthentik/common/api/config"; import "@goauthentik/elements/buttons/SpinnerButton"; import "@goauthentik/elements/forms/DeleteBulkForm"; import "@goauthentik/elements/forms/ModalForm"; -import "@goauthentik/elements/rbac/ObjectPermissionModal"; import { PaginatedResponse, Table } from "@goauthentik/elements/table/Table"; import { TableColumn } from "@goauthentik/elements/table/Table"; import "@patternfly/elements/pf-tooltip/pf-tooltip.js"; diff --git a/web/src/admin/providers/rac/RACProviderViewPage.ts b/web/src/admin/providers/rac/RACProviderViewPage.ts index efa10e7a1d..18aaaa4a5f 100644 --- a/web/src/admin/providers/rac/RACProviderViewPage.ts +++ b/web/src/admin/providers/rac/RACProviderViewPage.ts @@ -3,6 +3,7 @@ import "@goauthentik/admin/providers/rac/ConnectionTokenList"; import "@goauthentik/admin/providers/rac/EndpointForm"; import "@goauthentik/admin/providers/rac/EndpointList"; import "@goauthentik/admin/providers/rac/RACProviderForm"; +import "@goauthentik/admin/rbac/ObjectPermissionsPage"; import { DEFAULT_CONFIG } from "@goauthentik/common/api/config"; import { EVENT_REFRESH } from "@goauthentik/common/constants"; import "@goauthentik/components/ak-status-label"; @@ -12,7 +13,6 @@ import "@goauthentik/elements/CodeMirror"; import "@goauthentik/elements/Tabs"; import "@goauthentik/elements/buttons/ModalButton"; import "@goauthentik/elements/buttons/SpinnerButton"; -import "@goauthentik/elements/rbac/ObjectPermissionsPage"; import { msg } from "@lit/localize"; import { CSSResult, PropertyValues, TemplateResult, html } from "lit"; diff --git a/web/src/admin/providers/radius/RadiusProviderViewPage.ts b/web/src/admin/providers/radius/RadiusProviderViewPage.ts index c4d90fdf27..67514fdbac 100644 --- a/web/src/admin/providers/radius/RadiusProviderViewPage.ts +++ b/web/src/admin/providers/radius/RadiusProviderViewPage.ts @@ -1,5 +1,6 @@ import "@goauthentik/admin/providers/RelatedApplicationButton"; import "@goauthentik/admin/providers/radius/RadiusProviderForm"; +import "@goauthentik/admin/rbac/ObjectPermissionsPage"; import { DEFAULT_CONFIG } from "@goauthentik/common/api/config"; import { EVENT_REFRESH } from "@goauthentik/common/constants"; import "@goauthentik/components/events/ObjectChangelog"; @@ -8,7 +9,6 @@ import "@goauthentik/elements/CodeMirror"; import "@goauthentik/elements/Tabs"; import "@goauthentik/elements/buttons/ModalButton"; import "@goauthentik/elements/buttons/SpinnerButton"; -import "@goauthentik/elements/rbac/ObjectPermissionsPage"; import { msg } from "@lit/localize"; import { CSSResult, PropertyValues, TemplateResult, html } from "lit"; diff --git a/web/src/admin/providers/saml/SAMLProviderViewPage.ts b/web/src/admin/providers/saml/SAMLProviderViewPage.ts index 648f72834c..f48f70f0a1 100644 --- a/web/src/admin/providers/saml/SAMLProviderViewPage.ts +++ b/web/src/admin/providers/saml/SAMLProviderViewPage.ts @@ -1,5 +1,6 @@ import "@goauthentik/admin/providers/RelatedApplicationButton"; import "@goauthentik/admin/providers/saml/SAMLProviderForm"; +import "@goauthentik/admin/rbac/ObjectPermissionsPage"; import { DEFAULT_CONFIG } from "@goauthentik/common/api/config"; import { EVENT_REFRESH } from "@goauthentik/common/constants"; import { MessageLevel } from "@goauthentik/common/messages"; @@ -14,7 +15,6 @@ import "@goauthentik/elements/buttons/ActionButton"; import "@goauthentik/elements/buttons/ModalButton"; import "@goauthentik/elements/buttons/SpinnerButton"; import { showMessage } from "@goauthentik/elements/messages/MessageContainer"; -import "@goauthentik/elements/rbac/ObjectPermissionsPage"; import { msg } from "@lit/localize"; import { CSSResult, PropertyValues, TemplateResult, html } from "lit"; diff --git a/web/src/admin/providers/scim/SCIMProviderViewPage.ts b/web/src/admin/providers/scim/SCIMProviderViewPage.ts index ddc4fe97e3..bce6301aec 100644 --- a/web/src/admin/providers/scim/SCIMProviderViewPage.ts +++ b/web/src/admin/providers/scim/SCIMProviderViewPage.ts @@ -1,6 +1,7 @@ import "@goauthentik/admin/providers/scim/SCIMProviderForm"; import "@goauthentik/admin/providers/scim/SCIMProviderGroupList"; import "@goauthentik/admin/providers/scim/SCIMProviderUserList"; +import "@goauthentik/admin/rbac/ObjectPermissionsPage"; import { DEFAULT_CONFIG } from "@goauthentik/common/api/config"; import { EVENT_REFRESH } from "@goauthentik/common/constants"; import "@goauthentik/components/events/ObjectChangelog"; @@ -11,7 +12,6 @@ import "@goauthentik/elements/SyncStatusCard"; import "@goauthentik/elements/Tabs"; import "@goauthentik/elements/buttons/ActionButton"; import "@goauthentik/elements/buttons/ModalButton"; -import "@goauthentik/elements/rbac/ObjectPermissionsPage"; import { msg } from "@lit/localize"; import { CSSResult, PropertyValues, TemplateResult, html } from "lit"; diff --git a/web/src/elements/rbac/ObjectPermissionModal.ts b/web/src/admin/rbac/ObjectPermissionModal.ts similarity index 97% rename from web/src/elements/rbac/ObjectPermissionModal.ts rename to web/src/admin/rbac/ObjectPermissionModal.ts index 72dda84d53..03ab340698 100644 --- a/web/src/elements/rbac/ObjectPermissionModal.ts +++ b/web/src/admin/rbac/ObjectPermissionModal.ts @@ -1,7 +1,7 @@ +import "@goauthentik/admin/rbac/ObjectPermissionsPage"; import { AKElement } from "@goauthentik/elements/Base"; import "@goauthentik/elements/forms/ModalForm"; import { ModelForm } from "@goauthentik/elements/forms/ModelForm"; -import "@goauthentik/elements/rbac/ObjectPermissionsPage"; import { msg } from "@lit/localize"; import { CSSResult, TemplateResult, html } from "lit"; diff --git a/web/src/elements/rbac/ObjectPermissionsPage.ts b/web/src/admin/rbac/ObjectPermissionsPage.ts similarity index 98% rename from web/src/elements/rbac/ObjectPermissionsPage.ts rename to web/src/admin/rbac/ObjectPermissionsPage.ts index 39443e1a20..e7682dd6e5 100644 --- a/web/src/elements/rbac/ObjectPermissionsPage.ts +++ b/web/src/admin/rbac/ObjectPermissionsPage.ts @@ -1,11 +1,11 @@ +import "@goauthentik/admin/rbac/RoleObjectPermissionTable"; +import "@goauthentik/admin/rbac/UserObjectPermissionTable"; import "@goauthentik/admin/roles/RoleAssignedGlobalPermissionsTable"; import "@goauthentik/admin/roles/RoleAssignedObjectPermissionTable"; import "@goauthentik/admin/users/UserAssignedGlobalPermissionsTable"; import "@goauthentik/admin/users/UserAssignedObjectPermissionsTable"; import { AKElement } from "@goauthentik/elements/Base"; import "@goauthentik/elements/Tabs"; -import "@goauthentik/elements/rbac/RoleObjectPermissionTable"; -import "@goauthentik/elements/rbac/UserObjectPermissionTable"; import { msg } from "@lit/localize"; import { html, nothing } from "lit"; diff --git a/web/src/elements/rbac/PermissionSelectModal.ts b/web/src/admin/rbac/PermissionSelectModal.ts similarity index 100% rename from web/src/elements/rbac/PermissionSelectModal.ts rename to web/src/admin/rbac/PermissionSelectModal.ts diff --git a/web/src/elements/rbac/RoleObjectPermissionForm.ts b/web/src/admin/rbac/RoleObjectPermissionForm.ts similarity index 100% rename from web/src/elements/rbac/RoleObjectPermissionForm.ts rename to web/src/admin/rbac/RoleObjectPermissionForm.ts diff --git a/web/src/elements/rbac/RoleObjectPermissionTable.ts b/web/src/admin/rbac/RoleObjectPermissionTable.ts similarity index 98% rename from web/src/elements/rbac/RoleObjectPermissionTable.ts rename to web/src/admin/rbac/RoleObjectPermissionTable.ts index 8322f4ab6a..23e2a32bef 100644 --- a/web/src/elements/rbac/RoleObjectPermissionTable.ts +++ b/web/src/admin/rbac/RoleObjectPermissionTable.ts @@ -1,7 +1,7 @@ +import "@goauthentik/admin/rbac/RoleObjectPermissionForm"; import { DEFAULT_CONFIG } from "@goauthentik/common/api/config"; import "@goauthentik/elements/forms/DeleteBulkForm"; import "@goauthentik/elements/forms/ModalForm"; -import "@goauthentik/elements/rbac/RoleObjectPermissionForm"; import { PaginatedResponse, Table, TableColumn } from "@goauthentik/elements/table/Table"; import "@patternfly/elements/pf-tooltip/pf-tooltip.js"; diff --git a/web/src/elements/rbac/UserObjectPermissionForm.ts b/web/src/admin/rbac/UserObjectPermissionForm.ts similarity index 100% rename from web/src/elements/rbac/UserObjectPermissionForm.ts rename to web/src/admin/rbac/UserObjectPermissionForm.ts diff --git a/web/src/elements/rbac/UserObjectPermissionTable.ts b/web/src/admin/rbac/UserObjectPermissionTable.ts similarity index 98% rename from web/src/elements/rbac/UserObjectPermissionTable.ts rename to web/src/admin/rbac/UserObjectPermissionTable.ts index f756f0a8d2..c4c75b3369 100644 --- a/web/src/elements/rbac/UserObjectPermissionTable.ts +++ b/web/src/admin/rbac/UserObjectPermissionTable.ts @@ -1,7 +1,7 @@ +import "@goauthentik/admin/rbac/UserObjectPermissionForm"; import { DEFAULT_CONFIG } from "@goauthentik/common/api/config"; import "@goauthentik/elements/forms/DeleteBulkForm"; import "@goauthentik/elements/forms/ModalForm"; -import "@goauthentik/elements/rbac/UserObjectPermissionForm"; import { PaginatedResponse, Table, TableColumn } from "@goauthentik/elements/table/Table"; import "@patternfly/elements/pf-tooltip/pf-tooltip.js"; diff --git a/web/src/admin/roles/RolePermissionForm.ts b/web/src/admin/roles/RolePermissionForm.ts index f0312706a6..f900704b97 100644 --- a/web/src/admin/roles/RolePermissionForm.ts +++ b/web/src/admin/roles/RolePermissionForm.ts @@ -1,3 +1,4 @@ +import "@goauthentik/admin/rbac/PermissionSelectModal"; import { DEFAULT_CONFIG } from "@goauthentik/common/api/config"; import "@goauthentik/components/ak-toggle-group"; import "@goauthentik/elements/chips/Chip"; @@ -6,7 +7,6 @@ import "@goauthentik/elements/forms/HorizontalFormElement"; import { ModelForm } from "@goauthentik/elements/forms/ModelForm"; import "@goauthentik/elements/forms/Radio"; import "@goauthentik/elements/forms/SearchSelect"; -import "@goauthentik/elements/rbac/PermissionSelectModal"; import { msg } from "@lit/localize"; import { TemplateResult, html } from "lit"; @@ -36,7 +36,7 @@ export class RolePermissionForm extends ModelForm return msg("Successfully assigned permission."); } - async send(data: RolePermissionAssign): Promise { + async send(data: RolePermissionAssign) { await new RbacApi(DEFAULT_CONFIG).rbacPermissionsAssignedByRolesAssignCreate({ uuid: this.roleUuid || "", permissionAssignRequest: { @@ -44,7 +44,6 @@ export class RolePermissionForm extends ModelForm }, }); this.permissionsToAdd = []; - return; } renderForm(): TemplateResult { diff --git a/web/src/admin/roles/RoleViewPage.ts b/web/src/admin/roles/RoleViewPage.ts index 10622f7294..5d5fbff6a6 100644 --- a/web/src/admin/roles/RoleViewPage.ts +++ b/web/src/admin/roles/RoleViewPage.ts @@ -1,4 +1,5 @@ import "@goauthentik/admin/groups/RelatedGroupList"; +import "@goauthentik/admin/rbac/ObjectPermissionsPage"; import "@goauthentik/admin/roles/RoleForm"; import { DEFAULT_CONFIG } from "@goauthentik/common/api/config"; import { EVENT_REFRESH } from "@goauthentik/common/constants"; @@ -9,7 +10,6 @@ import { AKElement } from "@goauthentik/elements/Base"; import "@goauthentik/elements/PageHeader"; import "@goauthentik/elements/Tabs"; import "@goauthentik/elements/forms/ModalForm"; -import "@goauthentik/elements/rbac/ObjectPermissionsPage"; import { msg, str } from "@lit/localize"; import { css, html, nothing } from "lit"; diff --git a/web/src/admin/sources/ldap/LDAPSourceViewPage.ts b/web/src/admin/sources/ldap/LDAPSourceViewPage.ts index b5fe955aa9..fb6882222a 100644 --- a/web/src/admin/sources/ldap/LDAPSourceViewPage.ts +++ b/web/src/admin/sources/ldap/LDAPSourceViewPage.ts @@ -1,3 +1,4 @@ +import "@goauthentik/admin/rbac/ObjectPermissionsPage"; import "@goauthentik/admin/sources/ldap/LDAPSourceConnectivity"; import "@goauthentik/admin/sources/ldap/LDAPSourceForm"; import { DEFAULT_CONFIG } from "@goauthentik/common/api/config"; @@ -10,7 +11,6 @@ import "@goauthentik/elements/Tabs"; import "@goauthentik/elements/buttons/ActionButton"; import "@goauthentik/elements/buttons/SpinnerButton"; import "@goauthentik/elements/forms/ModalForm"; -import "@goauthentik/elements/rbac/ObjectPermissionsPage"; import { msg } from "@lit/localize"; import { CSSResult, TemplateResult, html } from "lit"; diff --git a/web/src/admin/sources/oauth/OAuthSourceViewPage.ts b/web/src/admin/sources/oauth/OAuthSourceViewPage.ts index 0d4d1035d1..29a81aee4e 100644 --- a/web/src/admin/sources/oauth/OAuthSourceViewPage.ts +++ b/web/src/admin/sources/oauth/OAuthSourceViewPage.ts @@ -1,4 +1,5 @@ import "@goauthentik/admin/policies/BoundPoliciesList"; +import "@goauthentik/admin/rbac/ObjectPermissionsPage"; import "@goauthentik/admin/sources/oauth/OAuthSourceDiagram"; import "@goauthentik/admin/sources/oauth/OAuthSourceForm"; import { DEFAULT_CONFIG } from "@goauthentik/common/api/config"; @@ -9,7 +10,6 @@ import "@goauthentik/elements/CodeMirror"; import "@goauthentik/elements/Tabs"; import "@goauthentik/elements/buttons/SpinnerButton"; import "@goauthentik/elements/forms/ModalForm"; -import "@goauthentik/elements/rbac/ObjectPermissionsPage"; import { msg } from "@lit/localize"; import { CSSResult, TemplateResult, html } from "lit"; diff --git a/web/src/admin/sources/plex/PlexSourceViewPage.ts b/web/src/admin/sources/plex/PlexSourceViewPage.ts index a1bf00c4bb..eaa8819f13 100644 --- a/web/src/admin/sources/plex/PlexSourceViewPage.ts +++ b/web/src/admin/sources/plex/PlexSourceViewPage.ts @@ -1,4 +1,5 @@ import "@goauthentik/admin/policies/BoundPoliciesList"; +import "@goauthentik/admin/rbac/ObjectPermissionsPage"; import "@goauthentik/admin/sources/plex/PlexSourceForm"; import { DEFAULT_CONFIG } from "@goauthentik/common/api/config"; import { EVENT_REFRESH } from "@goauthentik/common/constants"; @@ -8,7 +9,6 @@ import "@goauthentik/elements/CodeMirror"; import "@goauthentik/elements/Tabs"; import "@goauthentik/elements/buttons/SpinnerButton"; import "@goauthentik/elements/forms/ModalForm"; -import "@goauthentik/elements/rbac/ObjectPermissionsPage"; import { msg } from "@lit/localize"; import { CSSResult, TemplateResult, html } from "lit"; diff --git a/web/src/admin/sources/saml/SAMLSourceViewPage.ts b/web/src/admin/sources/saml/SAMLSourceViewPage.ts index 4f5d39e104..e7e1fc40fd 100644 --- a/web/src/admin/sources/saml/SAMLSourceViewPage.ts +++ b/web/src/admin/sources/saml/SAMLSourceViewPage.ts @@ -1,4 +1,5 @@ import "@goauthentik/admin/policies/BoundPoliciesList"; +import "@goauthentik/admin/rbac/ObjectPermissionsPage"; import "@goauthentik/admin/sources/saml/SAMLSourceForm"; import { DEFAULT_CONFIG } from "@goauthentik/common/api/config"; import { EVENT_REFRESH } from "@goauthentik/common/constants"; @@ -9,7 +10,6 @@ import { CodeMirrorMode } from "@goauthentik/elements/CodeMirror"; import "@goauthentik/elements/Tabs"; import "@goauthentik/elements/buttons/SpinnerButton"; import "@goauthentik/elements/forms/ModalForm"; -import "@goauthentik/elements/rbac/ObjectPermissionsPage"; import { msg } from "@lit/localize"; import { CSSResult, TemplateResult, html } from "lit"; diff --git a/web/src/admin/sources/scim/SCIMSourceViewPage.ts b/web/src/admin/sources/scim/SCIMSourceViewPage.ts index 9e11ef46be..d10e8bb16e 100644 --- a/web/src/admin/sources/scim/SCIMSourceViewPage.ts +++ b/web/src/admin/sources/scim/SCIMSourceViewPage.ts @@ -1,3 +1,4 @@ +import "@goauthentik/admin/rbac/ObjectPermissionsPage"; import "@goauthentik/admin/sources/scim/SCIMSourceForm"; import "@goauthentik/admin/sources/scim/SCIMSourceGroups"; import "@goauthentik/admin/sources/scim/SCIMSourceUsers"; @@ -10,7 +11,6 @@ import "@goauthentik/elements/buttons/ActionButton"; import "@goauthentik/elements/buttons/SpinnerButton"; import "@goauthentik/elements/buttons/TokenCopyButton"; import "@goauthentik/elements/forms/ModalForm"; -import "@goauthentik/elements/rbac/ObjectPermissionsPage"; import { msg } from "@lit/localize"; import { CSSResult, TemplateResult, html } from "lit"; diff --git a/web/src/admin/stages/StageListPage.ts b/web/src/admin/stages/StageListPage.ts index 8077a13d19..c28275d515 100644 --- a/web/src/admin/stages/StageListPage.ts +++ b/web/src/admin/stages/StageListPage.ts @@ -1,3 +1,4 @@ +import "@goauthentik/admin/rbac/ObjectPermissionModal"; import "@goauthentik/admin/stages/StageWizard"; import "@goauthentik/admin/stages/authenticator_duo/AuthenticatorDuoStageForm"; import "@goauthentik/admin/stages/authenticator_duo/DuoDeviceImportForm"; @@ -24,14 +25,13 @@ import { DEFAULT_CONFIG } from "@goauthentik/common/api/config"; import "@goauthentik/elements/forms/DeleteBulkForm"; import "@goauthentik/elements/forms/ModalForm"; import "@goauthentik/elements/forms/ProxyForm"; -import "@goauthentik/elements/rbac/ObjectPermissionModal"; import { PaginatedResponse } from "@goauthentik/elements/table/Table"; import { TableColumn } from "@goauthentik/elements/table/Table"; import { TablePage } from "@goauthentik/elements/table/TablePage"; import "@patternfly/elements/pf-tooltip/pf-tooltip.js"; import { msg, str } from "@lit/localize"; -import { TemplateResult, html } from "lit"; +import { TemplateResult, html, nothing } from "lit"; import { customElement, property } from "lit/decorators.js"; import { ifDefined } from "lit/directives/if-defined.js"; @@ -94,26 +94,23 @@ export class StageListPage extends TablePage { `; } - renderStageActions(stage: Stage): TemplateResult { - switch (stage.component) { - case "ak-stage-authenticator-duo-form": - return html` - ${msg("Import")} - ${msg("Import Duo device")} - - - - `; - default: - return html``; - } + renderStageActions(stage: Stage) { + return stage.component === "ak-stage-authenticator-duo-form" + ? html` + ${msg("Import")} + ${msg("Import Duo device")} + + + + ` + : nothing; } row(item: Stage): TemplateResult[] { diff --git a/web/src/admin/stages/invitation/InvitationListPage.ts b/web/src/admin/stages/invitation/InvitationListPage.ts index 970c3f0f22..a221ec5705 100644 --- a/web/src/admin/stages/invitation/InvitationListPage.ts +++ b/web/src/admin/stages/invitation/InvitationListPage.ts @@ -1,3 +1,4 @@ +import "@goauthentik/admin/rbac/ObjectPermissionModal"; import "@goauthentik/admin/stages/invitation/InvitationForm"; import "@goauthentik/admin/stages/invitation/InvitationListLink"; import { DEFAULT_CONFIG } from "@goauthentik/common/api/config"; @@ -6,7 +7,6 @@ import "@goauthentik/elements/buttons/ModalButton"; import "@goauthentik/elements/buttons/SpinnerButton"; import "@goauthentik/elements/forms/DeleteBulkForm"; import "@goauthentik/elements/forms/ModalForm"; -import "@goauthentik/elements/rbac/ObjectPermissionModal"; import { PaginatedResponse } from "@goauthentik/elements/table/Table"; import { TableColumn } from "@goauthentik/elements/table/Table"; import { TablePage } from "@goauthentik/elements/table/TablePage"; diff --git a/web/src/admin/stages/prompt/PromptListPage.ts b/web/src/admin/stages/prompt/PromptListPage.ts index 2359af6585..8c07c106eb 100644 --- a/web/src/admin/stages/prompt/PromptListPage.ts +++ b/web/src/admin/stages/prompt/PromptListPage.ts @@ -1,10 +1,10 @@ +import "@goauthentik/admin/rbac/ObjectPermissionModal"; import "@goauthentik/admin/stages/prompt/PromptForm"; import { DEFAULT_CONFIG } from "@goauthentik/common/api/config"; import "@goauthentik/elements/buttons/ModalButton"; import "@goauthentik/elements/buttons/SpinnerButton"; import "@goauthentik/elements/forms/DeleteBulkForm"; import "@goauthentik/elements/forms/ModalForm"; -import "@goauthentik/elements/rbac/ObjectPermissionModal"; import { PaginatedResponse } from "@goauthentik/elements/table/Table"; import { TableColumn } from "@goauthentik/elements/table/Table"; import { TablePage } from "@goauthentik/elements/table/TablePage"; diff --git a/web/src/admin/tokens/TokenListPage.ts b/web/src/admin/tokens/TokenListPage.ts index 8eeece4699..c753e4d92f 100644 --- a/web/src/admin/tokens/TokenListPage.ts +++ b/web/src/admin/tokens/TokenListPage.ts @@ -1,3 +1,4 @@ +import "@goauthentik/admin/rbac/ObjectPermissionModal"; import "@goauthentik/admin/tokens/TokenForm"; import { DEFAULT_CONFIG } from "@goauthentik/common/api/config"; import { intentToLabel } from "@goauthentik/common/labels"; @@ -7,7 +8,6 @@ import "@goauthentik/elements/buttons/Dropdown"; import "@goauthentik/elements/buttons/TokenCopyButton"; import "@goauthentik/elements/forms/DeleteBulkForm"; import "@goauthentik/elements/forms/ModalForm"; -import "@goauthentik/elements/rbac/ObjectPermissionModal"; import { PaginatedResponse } from "@goauthentik/elements/table/Table"; import { TableColumn } from "@goauthentik/elements/table/Table"; import { TablePage } from "@goauthentik/elements/table/TablePage"; diff --git a/web/src/admin/users/UserPermissionForm.ts b/web/src/admin/users/UserPermissionForm.ts index 1f89045e0e..ef43d7d807 100644 --- a/web/src/admin/users/UserPermissionForm.ts +++ b/web/src/admin/users/UserPermissionForm.ts @@ -1,3 +1,4 @@ +import "@goauthentik/admin/rbac/PermissionSelectModal"; import { DEFAULT_CONFIG } from "@goauthentik/common/api/config"; import "@goauthentik/components/ak-toggle-group"; import "@goauthentik/elements/chips/Chip"; @@ -6,7 +7,6 @@ import "@goauthentik/elements/forms/HorizontalFormElement"; import { ModelForm } from "@goauthentik/elements/forms/ModelForm"; import "@goauthentik/elements/forms/Radio"; import "@goauthentik/elements/forms/SearchSelect"; -import "@goauthentik/elements/rbac/PermissionSelectModal"; import { msg } from "@lit/localize"; import { TemplateResult, html } from "lit"; @@ -36,7 +36,7 @@ export class UserPermissionForm extends ModelForm return msg("Successfully assigned permission."); } - async send(data: UserPermissionAssign): Promise { + async send(data: UserPermissionAssign) { await new RbacApi(DEFAULT_CONFIG).rbacPermissionsAssignedByUsersAssignCreate({ id: this.userId || 0, permissionAssignRequest: { @@ -44,7 +44,6 @@ export class UserPermissionForm extends ModelForm }, }); this.permissionsToAdd = []; - return; } renderForm(): TemplateResult { diff --git a/web/src/admin/users/UserViewPage.ts b/web/src/admin/users/UserViewPage.ts index db5f9001fe..99bd30782c 100644 --- a/web/src/admin/users/UserViewPage.ts +++ b/web/src/admin/users/UserViewPage.ts @@ -1,5 +1,6 @@ import "@goauthentik/admin/groups/RelatedGroupList"; import "@goauthentik/admin/providers/rac/ConnectionTokenList"; +import "@goauthentik/admin/rbac/ObjectPermissionsPage"; import "@goauthentik/admin/users/UserActiveForm"; import "@goauthentik/admin/users/UserApplicationTable"; import "@goauthentik/admin/users/UserChart"; @@ -33,7 +34,6 @@ import "@goauthentik/elements/buttons/SpinnerButton"; import "@goauthentik/elements/forms/ModalForm"; import "@goauthentik/elements/oauth/UserAccessTokenList"; import "@goauthentik/elements/oauth/UserRefreshTokenList"; -import "@goauthentik/elements/rbac/ObjectPermissionsPage"; import "@goauthentik/elements/user/SessionList"; import "@goauthentik/elements/user/UserConsentList"; import "@goauthentik/elements/user/UserReputationList";