Compare commits
	
		
			8 Commits
		
	
	
		
			version/0.
			...
			version/0.
		
	
	| Author | SHA1 | Date | |
|---|---|---|---|
| e23afd18e4 | |||
| c2a30b760a | |||
| 6e24856d45 | |||
| 98a58b74e3 | |||
| 5f3ab22bea | |||
| 1ed5d5da35 | |||
| 76193e0031 | |||
| 50109ca7ad | 
| @ -1,5 +1,5 @@ | ||||
| [bumpversion] | ||||
| current_version = 0.13.2-stable | ||||
| current_version = 0.13.3-stable | ||||
| tag = True | ||||
| commit = True | ||||
| parse = (?P<major>\d+)\.(?P<minor>\d+)\.(?P<patch>\d+)\-(?P<release>.*) | ||||
|  | ||||
							
								
								
									
										14
									
								
								.github/workflows/release.yml
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										14
									
								
								.github/workflows/release.yml
									
									
									
									
										vendored
									
									
								
							| @ -18,11 +18,11 @@ jobs: | ||||
|       - name: Building Docker Image | ||||
|         run: docker build | ||||
|           --no-cache | ||||
|           -t beryju/authentik:0.13.2-stable | ||||
|           -t beryju/authentik:0.13.3-stable | ||||
|           -t beryju/authentik:latest | ||||
|           -f Dockerfile . | ||||
|       - name: Push Docker Container to Registry (versioned) | ||||
|         run: docker push beryju/authentik:0.13.2-stable | ||||
|         run: docker push beryju/authentik:0.13.3-stable | ||||
|       - name: Push Docker Container to Registry (latest) | ||||
|         run: docker push beryju/authentik:latest | ||||
|   build-proxy: | ||||
| @ -48,11 +48,11 @@ jobs: | ||||
|           cd proxy/ | ||||
|           docker build \ | ||||
|           --no-cache \ | ||||
|           -t beryju/authentik-proxy:0.13.2-stable \ | ||||
|           -t beryju/authentik-proxy:0.13.3-stable \ | ||||
|           -t beryju/authentik-proxy:latest \ | ||||
|           -f Dockerfile . | ||||
|       - name: Push Docker Container to Registry (versioned) | ||||
|         run: docker push beryju/authentik-proxy:0.13.2-stable | ||||
|         run: docker push beryju/authentik-proxy:0.13.3-stable | ||||
|       - name: Push Docker Container to Registry (latest) | ||||
|         run: docker push beryju/authentik-proxy:latest | ||||
|   build-static: | ||||
| @ -69,11 +69,11 @@ jobs: | ||||
|           cd web/ | ||||
|           docker build \ | ||||
|           --no-cache \ | ||||
|           -t beryju/authentik-static:0.13.2-stable \ | ||||
|           -t beryju/authentik-static:0.13.3-stable \ | ||||
|           -t beryju/authentik-static:latest \ | ||||
|           -f Dockerfile . | ||||
|       - name: Push Docker Container to Registry (versioned) | ||||
|         run: docker push beryju/authentik-static:0.13.2-stable | ||||
|         run: docker push beryju/authentik-static:0.13.3-stable | ||||
|       - name: Push Docker Container to Registry (latest) | ||||
|         run: docker push beryju/authentik-static:latest | ||||
|   test-release: | ||||
| @ -107,5 +107,5 @@ jobs: | ||||
|           SENTRY_PROJECT: authentik | ||||
|           SENTRY_URL: https://sentry.beryju.org | ||||
|         with: | ||||
|           tagName: 0.13.2-stable | ||||
|           tagName: 0.13.3-stable | ||||
|           environment: beryjuorg-prod | ||||
|  | ||||
							
								
								
									
										12
									
								
								Pipfile.lock
									
									
									
										generated
									
									
									
								
							
							
						
						
									
										12
									
								
								Pipfile.lock
									
									
									
										generated
									
									
									
								
							| @ -74,18 +74,18 @@ | ||||
|         }, | ||||
|         "boto3": { | ||||
|             "hashes": [ | ||||
|                 "sha256:18d7ba5d623d4794f439201ab900c9c14a50019bc52d9113b0a2bb2e1ef9af2c", | ||||
|                 "sha256:1ddfd307d409e7bc792bd12923078f59c2f56fbba4065c320b3f768481bbbbf7" | ||||
|                 "sha256:a05614300fd404c7952a55ae92e106b9400ae65886425aaab3104527be833848", | ||||
|                 "sha256:c7556b0861d982b71043fbc0df024644320c817ad796391c442d0c2f15a77223" | ||||
|             ], | ||||
|             "index": "pypi", | ||||
|             "version": "==1.16.38" | ||||
|             "version": "==1.16.39" | ||||
|         }, | ||||
|         "botocore": { | ||||
|             "hashes": [ | ||||
|                 "sha256:1f1ecb1b0c6ffc8fcdd5eeb40f33e986dfe9724dc66c83017014a0506af6378a", | ||||
|                 "sha256:38ccc132c5b9d1e7a4dd37af78061fd2dd0e4fd611f527b409a4e9a679a85cdb" | ||||
|                 "sha256:449e4196160ff58ee27d2a626a7ce4cfff2640fe1806d7a279e73a30ad286347", | ||||
|                 "sha256:e0d0386098a072abd7b6c087e6149d997377c969a823ebe01b3f5bfabe9bfac0" | ||||
|             ], | ||||
|             "version": "==1.19.38" | ||||
|             "version": "==1.19.39" | ||||
|         }, | ||||
|         "cachetools": { | ||||
|             "hashes": [ | ||||
|  | ||||
| @ -1,2 +1,2 @@ | ||||
| """authentik""" | ||||
| __version__ = "0.13.2-stable" | ||||
| __version__ = "0.13.3-stable" | ||||
|  | ||||
| @ -3,6 +3,15 @@ | ||||
| {% load i18n %} | ||||
| {% load authentik_utils %} | ||||
|  | ||||
| {% block head %} | ||||
| {{ block.super }} | ||||
| <style> | ||||
|     .pf-c-empty-state { | ||||
|         height: 100vh; | ||||
|     } | ||||
| </style> | ||||
| {% endblock %} | ||||
|  | ||||
| {% block body %} | ||||
| <section class="pf-c-page__main-section pf-m-no-padding-mobile pf-m-xl"> | ||||
|     <div class="pf-c-empty-state"> | ||||
|  | ||||
| @ -19,6 +19,7 @@ LOGGER = get_logger() | ||||
|  | ||||
| PLAN_CONTEXT_PENDING_USER = "pending_user" | ||||
| PLAN_CONTEXT_SSO = "is_sso" | ||||
| PLAN_CONTEXT_REDIRECT = "redirect" | ||||
| PLAN_CONTEXT_APPLICATION = "application" | ||||
|  | ||||
|  | ||||
|  | ||||
| @ -21,7 +21,12 @@ from authentik.audit.models import cleanse_dict | ||||
| from authentik.core.models import USER_ATTRIBUTE_DEBUG | ||||
| from authentik.flows.exceptions import EmptyFlowException, FlowNonApplicableException | ||||
| from authentik.flows.models import ConfigurableStage, Flow, FlowDesignation, Stage | ||||
| from authentik.flows.planner import PLAN_CONTEXT_PENDING_USER, FlowPlan, FlowPlanner | ||||
| from authentik.flows.planner import ( | ||||
|     PLAN_CONTEXT_PENDING_USER, | ||||
|     PLAN_CONTEXT_REDIRECT, | ||||
|     FlowPlan, | ||||
|     FlowPlanner, | ||||
| ) | ||||
| from authentik.lib.utils.reflection import class_to_path | ||||
| from authentik.lib.utils.urls import is_url_absolute, redirect_with_qs | ||||
| from authentik.policies.http import AccessDeniedResponse | ||||
| @ -145,6 +150,10 @@ class FlowExecutorView(View): | ||||
|         """User Successfully passed all stages""" | ||||
|         # Since this is wrapped by the ExecutorShell, the next argument is saved in the session | ||||
|         # extract the next param before cancel as that cleans it | ||||
|         next_param = None | ||||
|         if self.plan: | ||||
|             next_param = self.plan.context.get(PLAN_CONTEXT_REDIRECT) | ||||
|         if not next_param: | ||||
|             next_param = self.request.session.get(SESSION_KEY_GET, {}).get( | ||||
|                 NEXT_ARG_NAME, "authentik_core:shell" | ||||
|             ) | ||||
|  | ||||
| @ -4,6 +4,16 @@ | ||||
| {% load i18n %} | ||||
| {% load authentik_utils %} | ||||
|  | ||||
| {% block head %} | ||||
| {{ block.super }} | ||||
| <style> | ||||
| .pf-c-background-image::before { | ||||
|     background-image: url("{% static 'dist/assets/images/flow_background.jpg' %}"); | ||||
|     background-position: center; | ||||
| } | ||||
| </style> | ||||
| {% endblock %} | ||||
|  | ||||
| {% block title %} | ||||
| {% trans 'End session' %} | ||||
| {% endblock %} | ||||
|  | ||||
| @ -15,10 +15,11 @@ from authentik.core.models import User | ||||
| from authentik.flows.models import Flow, in_memory_stage | ||||
| from authentik.flows.planner import ( | ||||
|     PLAN_CONTEXT_PENDING_USER, | ||||
|     PLAN_CONTEXT_REDIRECT, | ||||
|     PLAN_CONTEXT_SSO, | ||||
|     FlowPlanner, | ||||
| ) | ||||
| from authentik.flows.views import SESSION_KEY_PLAN | ||||
| from authentik.flows.views import NEXT_ARG_NAME, SESSION_KEY_GET, SESSION_KEY_PLAN | ||||
| from authentik.lib.utils.urls import redirect_with_qs | ||||
| from authentik.policies.utils import delete_none_keys | ||||
| from authentik.sources.oauth.auth import AuthorizedServiceBackend | ||||
| @ -135,11 +136,17 @@ class OAuthCallback(OAuthClientMixin, View): | ||||
|  | ||||
|     def handle_login_flow(self, flow: Flow, **kwargs) -> HttpResponse: | ||||
|         """Prepare Authentication Plan, redirect user FlowExecutor""" | ||||
|         # Ensure redirect is carried through when user was trying to | ||||
|         # authorize application | ||||
|         final_redirect = self.request.session.get(SESSION_KEY_GET, {}).get( | ||||
|             NEXT_ARG_NAME, "authentik_core:shell" | ||||
|         ) | ||||
|         kwargs.update( | ||||
|             { | ||||
|                 # Since we authenticate the user by their token, they have no backend set | ||||
|                 PLAN_CONTEXT_AUTHENTICATION_BACKEND: "django.contrib.auth.backends.ModelBackend", | ||||
|                 PLAN_CONTEXT_SSO: True, | ||||
|                 PLAN_CONTEXT_REDIRECT: final_redirect, | ||||
|             } | ||||
|         ) | ||||
|         # We run the Flow planner here so we can pass the Pending user in the context | ||||
|  | ||||
| @ -13,10 +13,11 @@ from authentik.core.models import User | ||||
| from authentik.flows.models import Flow | ||||
| from authentik.flows.planner import ( | ||||
|     PLAN_CONTEXT_PENDING_USER, | ||||
|     PLAN_CONTEXT_REDIRECT, | ||||
|     PLAN_CONTEXT_SSO, | ||||
|     FlowPlanner, | ||||
| ) | ||||
| from authentik.flows.views import SESSION_KEY_PLAN | ||||
| from authentik.flows.views import NEXT_ARG_NAME, SESSION_KEY_GET, SESSION_KEY_PLAN | ||||
| from authentik.lib.utils.urls import redirect_with_qs | ||||
| from authentik.policies.utils import delete_none_keys | ||||
| from authentik.sources.saml.exceptions import ( | ||||
| @ -54,11 +55,14 @@ class ResponseProcessor: | ||||
|     _root: Any | ||||
|     _root_xml: str | ||||
|  | ||||
|     _http_request: HttpRequest | ||||
|  | ||||
|     def __init__(self, source: SAMLSource): | ||||
|         self._source = source | ||||
|  | ||||
|     def parse(self, request: HttpRequest): | ||||
|         """Check if `request` contains SAML Response data, parse and validate it.""" | ||||
|         self._http_request = request | ||||
|         # First off, check if we have any SAML Data at all. | ||||
|         raw_response = request.POST.get("SAMLResponse", None) | ||||
|         if not raw_response: | ||||
| @ -187,6 +191,11 @@ class ResponseProcessor: | ||||
|  | ||||
|         name_id_filter = self._get_name_id_filter() | ||||
|         matching_users = User.objects.filter(**name_id_filter) | ||||
|         # Ensure redirect is carried through when user was trying to | ||||
|         # authorize application | ||||
|         final_redirect = self._http_request.session.get(SESSION_KEY_GET, {}).get( | ||||
|             NEXT_ARG_NAME, "authentik_core:shell" | ||||
|         ) | ||||
|         if matching_users.exists(): | ||||
|             # User exists already, switch to authentication flow | ||||
|             return self._flow_response( | ||||
| @ -195,6 +204,7 @@ class ResponseProcessor: | ||||
|                 **{ | ||||
|                     PLAN_CONTEXT_PENDING_USER: matching_users.first(), | ||||
|                     PLAN_CONTEXT_AUTHENTICATION_BACKEND: DEFAULT_BACKEND, | ||||
|                     PLAN_CONTEXT_REDIRECT: final_redirect, | ||||
|                 }, | ||||
|             ) | ||||
|         return self._flow_response( | ||||
|  | ||||
| @ -19,7 +19,7 @@ services: | ||||
|     networks: | ||||
|       - internal | ||||
|   server: | ||||
|     image: beryju/authentik:${AUTHENTIK_TAG:-0.13.2-stable} | ||||
|     image: beryju/authentik:${AUTHENTIK_TAG:-0.13.3-stable} | ||||
|     command: server | ||||
|     environment: | ||||
|       AUTHENTIK_REDIS__HOST: redis | ||||
| @ -44,7 +44,7 @@ services: | ||||
|     env_file: | ||||
|       - .env | ||||
|   worker: | ||||
|     image: beryju/authentik:${AUTHENTIK_TAG:-0.13.2-stable} | ||||
|     image: beryju/authentik:${AUTHENTIK_TAG:-0.13.3-stable} | ||||
|     command: worker | ||||
|     networks: | ||||
|       - internal | ||||
| @ -60,7 +60,7 @@ services: | ||||
|     env_file: | ||||
|       - .env | ||||
|   static: | ||||
|     image: beryju/authentik-static:${AUTHENTIK_TAG:-0.13.2-stable} | ||||
|     image: beryju/authentik-static:${AUTHENTIK_TAG:-0.13.3-stable} | ||||
|     networks: | ||||
|       - internal | ||||
|     labels: | ||||
|  | ||||
| @ -4,7 +4,7 @@ name: authentik | ||||
| home: https://goauthentik.io | ||||
| sources: | ||||
|   - https://github.com/BeryJu/authentik | ||||
| version: "0.13.2-stable" | ||||
| version: "0.13.3-stable" | ||||
| icon: https://raw.githubusercontent.com/BeryJu/authentik/master/web/icons/icon.svg | ||||
| dependencies: | ||||
|   - name: postgresql | ||||
|  | ||||
| @ -4,7 +4,7 @@ | ||||
| |-----------------------------------|-------------------------|-------------| | ||||
| | image.name                        | beryju/authentik         | Image used to run the authentik server and worker | | ||||
| | image.name_static                 | beryju/authentik-static  | Image used to run the authentik static server (CSS and JS Files) | | ||||
| | image.tag                         | 0.13.2-stable              | Image tag | | ||||
| | image.tag                         | 0.13.3-stable              | Image tag | | ||||
| | image.pullPolicy                  | IfNotPresent            | Image Pull Policy used for all deployments | | ||||
| | serverReplicas                    | 1                       | Replicas for the Server deployment | | ||||
| | workerReplicas                    | 1                       | Replicas for the Worker deployment | | ||||
|  | ||||
| @ -5,7 +5,7 @@ image: | ||||
|   name: beryju/authentik | ||||
|   name_static: beryju/authentik-static | ||||
|   name_outposts: beryju/authentik # Prefix used for Outpost deployments, Outpost type and version is appended | ||||
|   tag: 0.13.2-stable | ||||
|   tag: 0.13.3-stable | ||||
|   pullPolicy: IfNotPresent | ||||
|  | ||||
| serverReplicas: 1 | ||||
|  | ||||
| @ -1,3 +1,3 @@ | ||||
| package pkg | ||||
|  | ||||
| const VERSION = "0.13.2-stable" | ||||
| const VERSION = "0.13.3-stable" | ||||
|  | ||||
							
								
								
									
										108
									
								
								web/package-lock.json
									
									
									
										generated
									
									
									
								
							
							
						
						
									
										108
									
								
								web/package-lock.json
									
									
									
										generated
									
									
									
								
							| @ -142,13 +142,13 @@ | ||||
|             } | ||||
|         }, | ||||
|         "@sentry/browser": { | ||||
|             "version": "5.29.1", | ||||
|             "resolved": "https://registry.npmjs.org/@sentry/browser/-/browser-5.29.1.tgz", | ||||
|             "integrity": "sha512-cVlXoQBJ64eNNkQuOB+bS6sK5KWV+Fw+ZYxT+XqjpeXkOPaxh8aeoi9CHz2DsFfbLV91P4AnXZEUdDl+7ktQNg==", | ||||
|             "version": "5.29.2", | ||||
|             "resolved": "https://registry.npmjs.org/@sentry/browser/-/browser-5.29.2.tgz", | ||||
|             "integrity": "sha512-uxZ7y7rp85tJll+RZtXRhXPbnFnOaxZqJEv05vJlXBtBNLQtlczV5iCtU9mZRLVHDtmZ5VVKUV8IKXntEqqDpQ==", | ||||
|             "requires": { | ||||
|                 "@sentry/core": "5.29.1", | ||||
|                 "@sentry/types": "5.29.1", | ||||
|                 "@sentry/utils": "5.29.1", | ||||
|                 "@sentry/core": "5.29.2", | ||||
|                 "@sentry/types": "5.29.2", | ||||
|                 "@sentry/utils": "5.29.2", | ||||
|                 "tslib": "^1.9.3" | ||||
|             }, | ||||
|             "dependencies": { | ||||
| @ -160,14 +160,14 @@ | ||||
|             } | ||||
|         }, | ||||
|         "@sentry/core": { | ||||
|             "version": "5.29.1", | ||||
|             "resolved": "https://registry.npmjs.org/@sentry/core/-/core-5.29.1.tgz", | ||||
|             "integrity": "sha512-SMybIx9IlswkJ7a61ez/zjdiMdAo51Adpo4nVrzke2k84U/t726/EbJj0FJ4vVgsGdLCvSSZ6v7BQlINcwWupg==", | ||||
|             "version": "5.29.2", | ||||
|             "resolved": "https://registry.npmjs.org/@sentry/core/-/core-5.29.2.tgz", | ||||
|             "integrity": "sha512-7WYkoxB5IdlNEbwOwqSU64erUKH4laavPsM0/yQ+jojM76ErxlgEF0u//p5WaLPRzh3iDSt6BH+9TL45oNZeZw==", | ||||
|             "requires": { | ||||
|                 "@sentry/hub": "5.29.1", | ||||
|                 "@sentry/minimal": "5.29.1", | ||||
|                 "@sentry/types": "5.29.1", | ||||
|                 "@sentry/utils": "5.29.1", | ||||
|                 "@sentry/hub": "5.29.2", | ||||
|                 "@sentry/minimal": "5.29.2", | ||||
|                 "@sentry/types": "5.29.2", | ||||
|                 "@sentry/utils": "5.29.2", | ||||
|                 "tslib": "^1.9.3" | ||||
|             }, | ||||
|             "dependencies": { | ||||
| @ -179,12 +179,12 @@ | ||||
|             } | ||||
|         }, | ||||
|         "@sentry/hub": { | ||||
|             "version": "5.29.1", | ||||
|             "resolved": "https://registry.npmjs.org/@sentry/hub/-/hub-5.29.1.tgz", | ||||
|             "integrity": "sha512-Ig/vqCiJcsnGaWajkWRFH+5IKeo50ZtsjM0zJb8IfTadLjQuF/gTQst0aXO3l6q4HzveeGsELY8jlm6WVcq9Aw==", | ||||
|             "version": "5.29.2", | ||||
|             "resolved": "https://registry.npmjs.org/@sentry/hub/-/hub-5.29.2.tgz", | ||||
|             "integrity": "sha512-LaAIo2hwUk9ykeh9RF0cwLy6IRw+DjEee8l1HfEaDFUM6TPGlNNGObMJNXb9/95jzWp7jWwOpQjoIE3jepdQJQ==", | ||||
|             "requires": { | ||||
|                 "@sentry/types": "5.29.1", | ||||
|                 "@sentry/utils": "5.29.1", | ||||
|                 "@sentry/types": "5.29.2", | ||||
|                 "@sentry/utils": "5.29.2", | ||||
|                 "tslib": "^1.9.3" | ||||
|             }, | ||||
|             "dependencies": { | ||||
| @ -196,12 +196,12 @@ | ||||
|             } | ||||
|         }, | ||||
|         "@sentry/minimal": { | ||||
|             "version": "5.29.1", | ||||
|             "resolved": "https://registry.npmjs.org/@sentry/minimal/-/minimal-5.29.1.tgz", | ||||
|             "integrity": "sha512-lAa3+Duxum1qQvR0tKiBUsH6Ehit3g/vO53SqBib7YK3qdvIUWHacmkJvfz/AeSvVnpJ9bsBMCVRJNSVe8BPVA==", | ||||
|             "version": "5.29.2", | ||||
|             "resolved": "https://registry.npmjs.org/@sentry/minimal/-/minimal-5.29.2.tgz", | ||||
|             "integrity": "sha512-0aINSm8fGA1KyM7PavOBe1GDZDxrvnKt+oFnU0L+bTcw8Lr+of+v6Kwd97rkLRNOLw621xP076dL/7LSIzMuhw==", | ||||
|             "requires": { | ||||
|                 "@sentry/hub": "5.29.1", | ||||
|                 "@sentry/types": "5.29.1", | ||||
|                 "@sentry/hub": "5.29.2", | ||||
|                 "@sentry/types": "5.29.2", | ||||
|                 "tslib": "^1.9.3" | ||||
|             }, | ||||
|             "dependencies": { | ||||
| @ -213,17 +213,51 @@ | ||||
|             } | ||||
|         }, | ||||
|         "@sentry/tracing": { | ||||
|             "version": "5.29.1", | ||||
|             "resolved": "https://registry.npmjs.org/@sentry/tracing/-/tracing-5.29.1.tgz", | ||||
|             "integrity": "sha512-iWfPtDhf5X7N9R5WB3vX/wlyFVsGG8iMx4hLIP+6bj8EcPYnZfeP6Sxn65a0ACT/FKv7SMBoZ1qPDzmvk0bviw==", | ||||
|             "version": "5.29.2", | ||||
|             "resolved": "https://registry.npmjs.org/@sentry/tracing/-/tracing-5.29.2.tgz", | ||||
|             "integrity": "sha512-iumYbVRpvoU3BUuIooxibydeaOOjl5ysc+mzsqhRs2NGW/C3uKAsFXdvyNfqt3bxtRQwJEhwJByLP2u3pLThpw==", | ||||
|             "requires": { | ||||
|                 "@sentry/hub": "5.29.1", | ||||
|                 "@sentry/minimal": "5.29.1", | ||||
|                 "@sentry/types": "5.29.1", | ||||
|                 "@sentry/utils": "5.29.1", | ||||
|                 "@sentry/hub": "5.29.2", | ||||
|                 "@sentry/minimal": "5.29.2", | ||||
|                 "@sentry/types": "5.29.2", | ||||
|                 "@sentry/utils": "5.29.2", | ||||
|                 "tslib": "^1.9.3" | ||||
|             }, | ||||
|             "dependencies": { | ||||
|                 "@sentry/hub": { | ||||
|                     "version": "5.29.2", | ||||
|                     "resolved": "https://registry.npmjs.org/@sentry/hub/-/hub-5.29.2.tgz", | ||||
|                     "integrity": "sha512-LaAIo2hwUk9ykeh9RF0cwLy6IRw+DjEee8l1HfEaDFUM6TPGlNNGObMJNXb9/95jzWp7jWwOpQjoIE3jepdQJQ==", | ||||
|                     "requires": { | ||||
|                         "@sentry/types": "5.29.2", | ||||
|                         "@sentry/utils": "5.29.2", | ||||
|                         "tslib": "^1.9.3" | ||||
|                     } | ||||
|                 }, | ||||
|                 "@sentry/minimal": { | ||||
|                     "version": "5.29.2", | ||||
|                     "resolved": "https://registry.npmjs.org/@sentry/minimal/-/minimal-5.29.2.tgz", | ||||
|                     "integrity": "sha512-0aINSm8fGA1KyM7PavOBe1GDZDxrvnKt+oFnU0L+bTcw8Lr+of+v6Kwd97rkLRNOLw621xP076dL/7LSIzMuhw==", | ||||
|                     "requires": { | ||||
|                         "@sentry/hub": "5.29.2", | ||||
|                         "@sentry/types": "5.29.2", | ||||
|                         "tslib": "^1.9.3" | ||||
|                     } | ||||
|                 }, | ||||
|                 "@sentry/types": { | ||||
|                     "version": "5.29.2", | ||||
|                     "resolved": "https://registry.npmjs.org/@sentry/types/-/types-5.29.2.tgz", | ||||
|                     "integrity": "sha512-dM9wgt8wy4WRty75QkqQgrw9FV9F+BOMfmc0iaX13Qos7i6Qs2Q0dxtJ83SoR4YGtW8URaHzlDtWlGs5egBiMA==" | ||||
|                 }, | ||||
|                 "@sentry/utils": { | ||||
|                     "version": "5.29.2", | ||||
|                     "resolved": "https://registry.npmjs.org/@sentry/utils/-/utils-5.29.2.tgz", | ||||
|                     "integrity": "sha512-nEwQIDjtFkeE4k6yIk4Ka5XjGRklNLThWLs2xfXlL7uwrYOH2B9UBBOOIRUraBm/g/Xrra3xsam/kRxuiwtXZQ==", | ||||
|                     "requires": { | ||||
|                         "@sentry/types": "5.29.2", | ||||
|                         "tslib": "^1.9.3" | ||||
|                     } | ||||
|                 }, | ||||
|                 "tslib": { | ||||
|                     "version": "1.14.1", | ||||
|                     "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", | ||||
| @ -232,16 +266,16 @@ | ||||
|             } | ||||
|         }, | ||||
|         "@sentry/types": { | ||||
|             "version": "5.29.1", | ||||
|             "resolved": "https://registry.npmjs.org/@sentry/types/-/types-5.29.1.tgz", | ||||
|             "integrity": "sha512-QXZBA1gJheMYTGFV+UUhr3+jKpGZqPx8kEJABs8htlKabCDJlEeoFNmeqPuVxCxukoy5ZaaHACoE+2Z87T0g2A==" | ||||
|             "version": "5.29.2", | ||||
|             "resolved": "https://registry.npmjs.org/@sentry/types/-/types-5.29.2.tgz", | ||||
|             "integrity": "sha512-dM9wgt8wy4WRty75QkqQgrw9FV9F+BOMfmc0iaX13Qos7i6Qs2Q0dxtJ83SoR4YGtW8URaHzlDtWlGs5egBiMA==" | ||||
|         }, | ||||
|         "@sentry/utils": { | ||||
|             "version": "5.29.1", | ||||
|             "resolved": "https://registry.npmjs.org/@sentry/utils/-/utils-5.29.1.tgz", | ||||
|             "integrity": "sha512-FOhWxASvIQREAlSuWf3Vmb4uIkG0fmRdHkULpuv5dFmrMX2PpudYAppQtS8K9V4BYxFy6KFdUht1Qz5zYTecMw==", | ||||
|             "version": "5.29.2", | ||||
|             "resolved": "https://registry.npmjs.org/@sentry/utils/-/utils-5.29.2.tgz", | ||||
|             "integrity": "sha512-nEwQIDjtFkeE4k6yIk4Ka5XjGRklNLThWLs2xfXlL7uwrYOH2B9UBBOOIRUraBm/g/Xrra3xsam/kRxuiwtXZQ==", | ||||
|             "requires": { | ||||
|                 "@sentry/types": "5.29.1", | ||||
|                 "@sentry/types": "5.29.2", | ||||
|                 "tslib": "^1.9.3" | ||||
|             }, | ||||
|             "dependencies": { | ||||
|  | ||||
| @ -9,8 +9,8 @@ | ||||
|     "dependencies": { | ||||
|         "@fortawesome/fontawesome-free": "^5.15.1", | ||||
|         "@patternfly/patternfly": "^4.70.2", | ||||
|         "@sentry/browser": "^5.29.1", | ||||
|         "@sentry/tracing": "^5.29.1", | ||||
|         "@sentry/browser": "^5.29.2", | ||||
|         "@sentry/tracing": "^5.29.2", | ||||
|         "@types/chart.js": "^2.9.29", | ||||
|         "@types/codemirror": "0.0.102", | ||||
|         "chart.js": "^2.9.4", | ||||
|  | ||||
| @ -5,11 +5,6 @@ html { | ||||
|     --pf-c-nav__link--PaddingLeft: 0.5rem; | ||||
| } | ||||
|  | ||||
| /* Fix patternfly sidebar and header with open Modal */ | ||||
| .pf-c-page__sidebar { | ||||
|     z-index: 0; | ||||
| } | ||||
|  | ||||
| .pf-c-page__header { | ||||
|     z-index: 0; | ||||
| } | ||||
|  | ||||
| @ -28,4 +28,4 @@ export const ColorStyles = css` | ||||
|         background-color: var(--pf-global--danger-color--100); | ||||
|     } | ||||
| `; | ||||
| export const VERSION = "0.13.2-stable"; | ||||
| export const VERSION = "0.13.3-stable"; | ||||
|  | ||||
							
								
								
									
										35
									
								
								web/src/elements/sidebar/SidebarHamburger.ts
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										35
									
								
								web/src/elements/sidebar/SidebarHamburger.ts
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,35 @@ | ||||
| import { css, CSSResult, customElement, html, LitElement, TemplateResult } from "lit-element"; | ||||
| import { COMMON_STYLES } from "../../common/styles"; | ||||
|  | ||||
| @customElement("ak-sidebar-hamburger") | ||||
| export class SidebarHamburger extends LitElement { | ||||
|  | ||||
|     static get styles(): CSSResult[] { | ||||
|         return COMMON_STYLES.concat( | ||||
|             css` | ||||
|                 :host { | ||||
|                     position: absolute; | ||||
|                     top: var(--pf-c-page__main-section--PaddingTop); | ||||
|                     right: var(--pf-c-page__main-section--PaddingRight); | ||||
|                     z-index: 250; | ||||
|                 } | ||||
|             ` | ||||
|         ); | ||||
|     } | ||||
|  | ||||
|     onClick(): void { | ||||
|         this.dispatchEvent( | ||||
|             new CustomEvent("ak-sidebar-toggle", { | ||||
|                 bubbles: true, | ||||
|                 composed: true, | ||||
|             }) | ||||
|         ); | ||||
|     } | ||||
|  | ||||
|     render(): TemplateResult { | ||||
|         return html`<button @click=${() => (this.onClick())} class="pf-c-button pf-m-plain" type="button"> | ||||
|             <i class="fas fa-bars" aria-hidden="true"></i> | ||||
|         </button>`; | ||||
|     } | ||||
|  | ||||
| } | ||||
| @ -1,11 +1,14 @@ | ||||
| import { gettext } from "django"; | ||||
| import { html, LitElement, TemplateResult } from "lit-element"; | ||||
| import { html, LitElement, property, TemplateResult } from "lit-element"; | ||||
| import { SidebarItem } from "../elements/sidebar/Sidebar"; | ||||
|  | ||||
| import "../elements/router/RouterOutlet"; | ||||
| import "../elements/messages/MessageContainer"; | ||||
| import "../elements/sidebar/SidebarHamburger"; | ||||
|  | ||||
| export abstract class Interface extends LitElement { | ||||
|     @property({type: Boolean}) | ||||
|     sidebarOpen?: boolean; | ||||
|  | ||||
|     abstract get sidebar(): SidebarItem[]; | ||||
|  | ||||
| @ -13,11 +16,20 @@ export abstract class Interface extends LitElement { | ||||
|         return this; | ||||
|     } | ||||
|  | ||||
|     constructor() { | ||||
|         super(); | ||||
|         window.addEventListener("ak-sidebar-toggle", () => { | ||||
|             this.sidebarOpen = !this.sidebarOpen; | ||||
|         }); | ||||
|     } | ||||
|  | ||||
|     render(): TemplateResult { | ||||
|         return html`<ak-message-container></ak-message-container> | ||||
|             <div class="pf-c-page"> | ||||
|                 <a class="pf-c-skip-to-content pf-c-button pf-m-primary" href="#main-content">${gettext("Skip to content")}</a> | ||||
|                 <ak-sidebar class="pf-c-page__sidebar" .items=${this.sidebar}> | ||||
|                 <ak-sidebar-hamburger> | ||||
|                 </ak-sidebar-hamburger> | ||||
|                 <ak-sidebar class="pf-c-page__sidebar ${this.sidebarOpen ? "pf-m-expanded" : "pf-m-collapsed"}" .items=${this.sidebar}> | ||||
|                 </ak-sidebar> | ||||
|                 <main class="pf-c-page__main"> | ||||
|                     <ak-router-outlet role="main" class="pf-c-page__main" tabindex="-1" id="main-content" defaultUrl="/library/"> | ||||
|  | ||||
| @ -15,7 +15,7 @@ Download the latest `docker-compose.yml` from [here](https://raw.githubuserconte | ||||
|  | ||||
| To optionally enable error-reporting, run `echo AUTHENTIK_ERROR_REPORTING__ENABLED=true >> .env` | ||||
|  | ||||
| To optionally deploy a different version run `echo AUTHENTIK_TAG=0.13.2-stable >> .env` | ||||
| To optionally deploy a different version run `echo AUTHENTIK_TAG=0.13.3-stable >> .env` | ||||
|  | ||||
| If this is a fresh authentik install run the following commands to generate a password: | ||||
|  | ||||
|  | ||||
| @ -22,7 +22,7 @@ image: | ||||
|     name: beryju/authentik | ||||
|     name_static: beryju/authentik-static | ||||
|     name_outposts: beryju/authentik # Prefix used for Outpost deployments, Outpost type and version is appended | ||||
|     tag: 0.13.2-stable | ||||
|     tag: 0.13.3-stable | ||||
|  | ||||
| serverReplicas: 1 | ||||
| workerReplicas: 1 | ||||
|  | ||||
		Reference in New Issue
	
	Block a user
	