authentik fork
This repository has been archived on 2024-05-31. You can view files and clone it, but cannot push or open issues or pull requests.
Find a file
Ken Sternberg a3673906c7 web: provide three-tier sidebar with subcategories
This commit implements a three-tier sidebar with subcategories.

The first thing is that we've refactored the Sidebar into a holistic entity; rather than be built in
pieces, it's constructed declaratively from a tree of entries, much in the same way routes are, and
for much the same reason<sup>1</sup>.

The AdminSidebar element only provides the list of entries to show and some of the controls
necessary to show/hide the sidebar.  Because the sidebar requires a rich collection of objects
retrieved from the back-end, to avoid cluttering the AdminSidebar each of those sublists of
TypeCreate have been isolated into their own controllers.

The SidebarTypeController isn't even a strongly reactive controller; all it does is fetch the
TypeCreate collection and notify the client object that the fetch has completed. The client can then
call the `.entries()` method on the controller to get the sub-tree of entries for the TypeCreate
object.

The Sidebar has been slightly (!) refactored so that it's emphatic about what it does: it shows the
brand, nav, and user sections of the sidebar. The styling has been moved to a separate file, the
better to emphasize this.

The SidebarItems file is where all the magic-- and a lot of ugly-- is hidden.

The main purpose of the SidebarItems is to render the tree of entries passed to it.  That's it.  But
it also has to be able to read the URL and highlight which entry is currently being shown by the
router, and it has to be able to open up all the parent objects of the "current" link so that the
user gets a clear sense of where they are navigationally.

Most messy: the `reclick()` function intercepts clicks on anchors and, using the same logic as the
router, decides if the router would *not* handle the navigation event.  If the router would not, it
takes on the responsibility for reaching into the currently visible table, modifying the filter and
triggering a new `.fetch()`.

Somewhere along the way I boyscoutted another `switch` statement or two into lookup expressions.

---

<sup>1</sup>&nbsp; One of the reasons for this is that the Administrator Application's sidebar,
routes, and command palette will all get their data from a single source of truth, and that single
source will be independent of any of those.  This is a step in that direction.
2023-11-28 11:11:35 -08:00
.github events: fix lint (#7700) 2023-11-23 23:59:42 +01:00
.vscode core: fix sources get icon naming (#7674) 2023-11-21 21:38:30 +01:00
authentik Merge branch 'main' into web/sidebar-with-live-content-3 2023-11-27 15:07:10 -08:00
blueprints stages/identification: add option to pretend user exists (#7610) 2023-11-18 01:55:48 +01:00
cmd web/flows: bottom-align about text on flows page (#7051) 2023-10-03 14:10:10 +02:00
internal release: 2023.10.4 2023-11-21 19:29:02 +01:00
lifecycle lifecycle: rework otp_merge migration (#7359) 2023-10-28 17:56:04 +02:00
locale core: compile backend translations (#7637) 2023-11-20 12:44:49 +01:00
schemas providers: SCIM (#4835) 2023-03-06 19:39:08 +01:00
scripts providers/oauth2: fix id_token being saved incorrectly leading to lost claims (#6645) 2023-08-28 00:51:48 +02:00
tests web: bump the wdio group in /tests/wdio with 2 updates (#7702) 2023-11-24 13:15:03 +01:00
web web: provide three-tier sidebar with subcategories 2023-11-28 11:11:35 -08:00
website website/docs: Add OIDC auth integration with Nextcloud (#7406) 2023-11-22 16:22:42 +01:00
.bumpversion.cfg release: 2023.10.4 2023-11-21 19:29:02 +01:00
.dockerignore root: don't exclude enterprise from container image (#6956) 2023-09-22 16:22:16 +02:00
.editorconfig website: codespell with custom dictionary and CI (#5062) 2023-03-24 00:24:55 +01:00
.gitignore root: Ignore the vendor folder (#7094) 2023-10-06 17:50:46 +02:00
CODE_OF_CONDUCT.md root: rework and expand security policy 2022-11-28 12:10:53 +01:00
CODEOWNERS web: bump the eslint group in /web with 1 update (#7039) 2023-10-02 19:37:32 +02:00
CONTRIBUTING.md website/developer-docs: move contributing to dev docs index and link contributing file (#5554) 2023-05-09 20:26:55 +02:00
docker-compose.yml release: 2023.10.4 2023-11-21 19:29:02 +01:00
Dockerfile core: bump python from 3.11.5-bookworm to 3.12.0-bookworm (#7048) 2023-11-22 12:52:17 +01:00
go.mod core: bump goauthentik.io/api/v3 from 3.2023103.4 to 3.2023104.1 (#7687) 2023-11-22 11:58:15 +01:00
go.sum core: bump goauthentik.io/api/v3 from 3.2023103.4 to 3.2023104.1 (#7687) 2023-11-22 11:58:15 +01:00
ldap.Dockerfile core: bump golang from 1.21.3-bookworm to 1.21.4-bookworm 2023-11-08 11:13:24 +01:00
LICENSE enterprise: initial license (#5293) 2023-04-19 16:13:45 +02:00
Makefile website: bump the docusaurus group in /website with 3 updates (#7400) 2023-11-06 15:12:23 +01:00
manage.py root: update deprecation warnings 2022-11-25 11:47:28 +01:00
poetry.lock core: bump python from 3.11.5-bookworm to 3.12.0-bookworm (#7048) 2023-11-22 12:52:17 +01:00
proxy.Dockerfile core: bump golang from 1.21.3-bookworm to 1.21.4-bookworm 2023-11-08 11:13:24 +01:00
pyproject.toml core: bump python from 3.11.5-bookworm to 3.12.0-bookworm (#7048) 2023-11-22 12:52:17 +01:00
radius.Dockerfile core: bump golang from 1.21.3-bookworm to 1.21.4-bookworm 2023-11-08 11:13:24 +01:00
README.md root: remove outdated sponsorship section on readme (#6973) 2023-09-25 16:38:50 +02:00
schema.yml release: 2023.10.4 2023-11-21 19:29:02 +01:00
SECURITY.md website: update 2023.8 release notes (#6666) 2023-08-29 19:57:14 +02:00

authentik logo


Join Discord GitHub Workflow Status GitHub Workflow Status GitHub Workflow Status Code Coverage Docker pulls Latest version

What is authentik?

authentik is an open-source Identity Provider that emphasizes flexibility and versatility. It can be seamlessly integrated into existing environments to support new protocols. authentik is also a great solution for implementing sign-up, recovery, and other similar features in your application, saving you the hassle of dealing with them.

Installation

For small/test setups it is recommended to use Docker Compose; refer to the documentation.

For bigger setups, there is a Helm Chart here. This is documented here.

Screenshots

Light Dark

Development

See Developer Documentation

Security

See SECURITY.md

Adoption and Contributions

Your organization uses authentik? We'd love to add your logo to the readme and our website! Email us @ hello@goauthentik.io or open a GitHub Issue/PR! For more information on how to contribute to authentik, please refer to our CONTRIBUTING.md file.