Compare commits
	
		
			46 Commits
		
	
	
		
			version/20
			...
			version/20
		
	
	| Author | SHA1 | Date | |
|---|---|---|---|
| 86a4a7dcee | |||
| 73fe866cb6 | |||
| 8b95e9f97a | |||
| a3eb72d160 | |||
| b418db6ecf | |||
| 6cb1ab1d2b | |||
| ae09dac720 | |||
| 44c9ad19a7 | |||
| 554272a927 | |||
| acf2af8f66 | |||
| b45a442447 | |||
| 75a720ead1 | |||
| 615ce287ce | |||
| aa8d97249a | |||
| 2390df17f1 | |||
| c022052539 | |||
| 13c050e2a6 | |||
| ef371b3750 | |||
| bb1f79347b | |||
| 6ed0d6d124 | |||
| 4ed60fe36b | |||
| ca9fa79095 | |||
| a2408cefcf | |||
| 145eaa5de3 | |||
| 1991c930f2 | |||
| 736f84b670 | |||
| d4d5c2675b | |||
| be232e2b77 | |||
| 42389188ad | |||
| 1f6af8c221 | |||
| f4955e3e62 | |||
| a8ef3096c1 | |||
| 14f76b2575 | |||
| 50065d37b9 | |||
| a54670fb91 | |||
| 51fda51cbf | |||
| 53d0205e86 | |||
| 0f56d00959 | |||
| b7a6fccdf9 | |||
| 522f49f48c | |||
| e685f11514 | |||
| 1841b9b4c6 | |||
| 40e37a5c2c | |||
| ac838645a9 | |||
| be40d67c4d | |||
| 700cc06f45 | 
| @ -1,5 +1,5 @@ | ||||
| [bumpversion] | ||||
| current_version = 2022.3.2 | ||||
| current_version = 2022.3.3 | ||||
| tag = True | ||||
| commit = True | ||||
| parse = (?P<major>\d+)\.(?P<minor>\d+)\.(?P<patch>\d+)\-?(?P<release>.*) | ||||
|  | ||||
							
								
								
									
										10
									
								
								.github/workflows/release-publish.yml
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										10
									
								
								.github/workflows/release-publish.yml
									
									
									
									
										vendored
									
									
								
							| @ -30,9 +30,9 @@ jobs: | ||||
|         with: | ||||
|           push: ${{ github.event_name == 'release' }} | ||||
|           tags: | | ||||
|             beryju/authentik:2022.3.2, | ||||
|             beryju/authentik:2022.3.3, | ||||
|             beryju/authentik:latest, | ||||
|             ghcr.io/goauthentik/server:2022.3.2, | ||||
|             ghcr.io/goauthentik/server:2022.3.3, | ||||
|             ghcr.io/goauthentik/server:latest | ||||
|           platforms: linux/amd64,linux/arm64 | ||||
|           context: . | ||||
| @ -69,9 +69,9 @@ jobs: | ||||
|         with: | ||||
|           push: ${{ github.event_name == 'release' }} | ||||
|           tags: | | ||||
|             beryju/authentik-${{ matrix.type }}:2022.3.2, | ||||
|             beryju/authentik-${{ matrix.type }}:2022.3.3, | ||||
|             beryju/authentik-${{ matrix.type }}:latest, | ||||
|             ghcr.io/goauthentik/${{ matrix.type }}:2022.3.2, | ||||
|             ghcr.io/goauthentik/${{ matrix.type }}:2022.3.3, | ||||
|             ghcr.io/goauthentik/${{ matrix.type }}:latest | ||||
|           file: ${{ matrix.type }}.Dockerfile | ||||
|           platforms: linux/amd64,linux/arm64 | ||||
| @ -152,7 +152,7 @@ jobs: | ||||
|           SENTRY_PROJECT: authentik | ||||
|           SENTRY_URL: https://sentry.beryju.org | ||||
|         with: | ||||
|           version: authentik@2022.3.2 | ||||
|           version: authentik@2022.3.3 | ||||
|           environment: beryjuorg-prod | ||||
|           sourcemaps: './web/dist' | ||||
|           url_prefix: '~/static/dist' | ||||
|  | ||||
| @ -16,7 +16,7 @@ ENV NODE_ENV=production | ||||
| RUN cd /work/web && npm i && npm run build | ||||
|  | ||||
| # Stage 3: Build go proxy | ||||
| FROM docker.io/golang:1.17.8-bullseye AS builder | ||||
| FROM docker.io/golang:1.18.0-bullseye AS builder | ||||
|  | ||||
| WORKDIR /work | ||||
|  | ||||
| @ -32,7 +32,7 @@ COPY ./go.sum /work/go.sum | ||||
| RUN go build -o /work/authentik ./cmd/server/main.go | ||||
|  | ||||
| # Stage 4: Run | ||||
| FROM docker.io/python:3.10.2-slim-bullseye | ||||
| FROM docker.io/python:3.10.3-slim-bullseye | ||||
|  | ||||
| LABEL org.opencontainers.image.url https://goauthentik.io | ||||
| LABEL org.opencontainers.image.description goauthentik.io Main server image, see https://goauthentik.io for more info. | ||||
|  | ||||
							
								
								
									
										2
									
								
								Makefile
									
									
									
									
									
								
							
							
						
						
									
										2
									
								
								Makefile
									
									
									
									
									
								
							| @ -137,6 +137,6 @@ install: | ||||
| 	cd website && npm i | ||||
|  | ||||
| a: install | ||||
| 	tmux -CC \ | ||||
| 	tmux \ | ||||
| 		new-session 'make run' \; \ | ||||
| 		split-window 'make web-watch' | ||||
|  | ||||
| @ -2,7 +2,7 @@ | ||||
| from os import environ | ||||
| from typing import Optional | ||||
|  | ||||
| __version__ = "2022.3.2" | ||||
| __version__ = "2022.3.3" | ||||
| ENV_GIT_HASH_KEY = "GIT_BUILD_HASH" | ||||
|  | ||||
|  | ||||
|  | ||||
| @ -287,10 +287,10 @@ class Application(PolicyBindingModel): | ||||
|     def get_launch_url(self, user: Optional["User"] = None) -> Optional[str]: | ||||
|         """Get launch URL if set, otherwise attempt to get launch URL based on provider.""" | ||||
|         url = None | ||||
|         if self.meta_launch_url: | ||||
|             url = self.meta_launch_url | ||||
|         if provider := self.get_provider(): | ||||
|             url = provider.launch_url | ||||
|         if self.meta_launch_url: | ||||
|             url = self.meta_launch_url | ||||
|         if user and url: | ||||
|             if isinstance(user, SimpleLazyObject): | ||||
|                 user._setup() | ||||
|  | ||||
| @ -4,8 +4,10 @@ from rest_framework.test import APITestCase | ||||
|  | ||||
| from authentik.core.models import Application | ||||
| from authentik.core.tests.utils import create_test_admin_user | ||||
| from authentik.flows.models import Flow | ||||
| from authentik.policies.dummy.models import DummyPolicy | ||||
| from authentik.policies.models import PolicyBinding | ||||
| from authentik.providers.oauth2.models import OAuth2Provider | ||||
|  | ||||
|  | ||||
| class TestApplicationsAPI(APITestCase): | ||||
| @ -13,8 +15,19 @@ class TestApplicationsAPI(APITestCase): | ||||
|  | ||||
|     def setUp(self) -> None: | ||||
|         self.user = create_test_admin_user() | ||||
|         self.provider = OAuth2Provider.objects.create( | ||||
|             name="test", | ||||
|             redirect_uris="http://some-other-domain", | ||||
|             authorization_flow=Flow.objects.create( | ||||
|                 name="test", | ||||
|                 slug="test", | ||||
|             ), | ||||
|         ) | ||||
|         self.allowed = Application.objects.create( | ||||
|             name="allowed", slug="allowed", meta_launch_url="https://goauthentik.io/%(username)s" | ||||
|             name="allowed", | ||||
|             slug="allowed", | ||||
|             meta_launch_url="https://goauthentik.io/%(username)s", | ||||
|             provider=self.provider, | ||||
|         ) | ||||
|         self.denied = Application.objects.create(name="denied", slug="denied") | ||||
|         PolicyBinding.objects.create( | ||||
| @ -64,8 +77,19 @@ class TestApplicationsAPI(APITestCase): | ||||
|                         "pk": str(self.allowed.pk), | ||||
|                         "name": "allowed", | ||||
|                         "slug": "allowed", | ||||
|                         "provider": None, | ||||
|                         "provider_obj": None, | ||||
|                         "provider": self.provider.pk, | ||||
|                         "provider_obj": { | ||||
|                             "assigned_application_name": "allowed", | ||||
|                             "assigned_application_slug": "allowed", | ||||
|                             "authorization_flow": str(self.provider.authorization_flow.pk), | ||||
|                             "component": "ak-provider-oauth2-form", | ||||
|                             "meta_model_name": "authentik_providers_oauth2.oauth2provider", | ||||
|                             "name": self.provider.name, | ||||
|                             "pk": self.provider.pk, | ||||
|                             "property_mappings": [], | ||||
|                             "verbose_name": "OAuth2/OpenID Provider", | ||||
|                             "verbose_name_plural": "OAuth2/OpenID Providers", | ||||
|                         }, | ||||
|                         "launch_url": f"https://goauthentik.io/{self.user.username}", | ||||
|                         "meta_launch_url": "https://goauthentik.io/%(username)s", | ||||
|                         "meta_icon": None, | ||||
| @ -100,8 +124,19 @@ class TestApplicationsAPI(APITestCase): | ||||
|                         "pk": str(self.allowed.pk), | ||||
|                         "name": "allowed", | ||||
|                         "slug": "allowed", | ||||
|                         "provider": None, | ||||
|                         "provider_obj": None, | ||||
|                         "provider": self.provider.pk, | ||||
|                         "provider_obj": { | ||||
|                             "assigned_application_name": "allowed", | ||||
|                             "assigned_application_slug": "allowed", | ||||
|                             "authorization_flow": str(self.provider.authorization_flow.pk), | ||||
|                             "component": "ak-provider-oauth2-form", | ||||
|                             "meta_model_name": "authentik_providers_oauth2.oauth2provider", | ||||
|                             "name": self.provider.name, | ||||
|                             "pk": self.provider.pk, | ||||
|                             "property_mappings": [], | ||||
|                             "verbose_name": "OAuth2/OpenID Provider", | ||||
|                             "verbose_name_plural": "OAuth2/OpenID Providers", | ||||
|                         }, | ||||
|                         "launch_url": f"https://goauthentik.io/{self.user.username}", | ||||
|                         "meta_launch_url": "https://goauthentik.io/%(username)s", | ||||
|                         "meta_icon": None, | ||||
|  | ||||
| @ -61,7 +61,7 @@ def certificate_discovery(self: MonitoredTask): | ||||
|         else: | ||||
|             cert_name = path.name.replace(path.suffix, "") | ||||
|         try: | ||||
|             with open(path, "r+", encoding="utf-8") as _file: | ||||
|             with open(path, "r", encoding="utf-8") as _file: | ||||
|                 body = _file.read() | ||||
|                 if "PRIVATE KEY" in body: | ||||
|                     private_keys[cert_name] = ensure_private_key_valid(body) | ||||
|  | ||||
| @ -129,7 +129,7 @@ class IngressReconciler(KubernetesObjectReconciler[V1Ingress]): | ||||
|                                     ), | ||||
|                                 ), | ||||
|                                 path="/outpost.goauthentik.io", | ||||
|                                 path_type="ImplementationSpecific", | ||||
|                                 path_type="Prefix", | ||||
|                             ) | ||||
|                         ] | ||||
|                     ), | ||||
| @ -147,7 +147,7 @@ class IngressReconciler(KubernetesObjectReconciler[V1Ingress]): | ||||
|                                     ), | ||||
|                                 ), | ||||
|                                 path="/", | ||||
|                                 path_type="ImplementationSpecific", | ||||
|                                 path_type="Prefix", | ||||
|                             ) | ||||
|                         ] | ||||
|                     ), | ||||
|  | ||||
| @ -17,7 +17,7 @@ services: | ||||
|     image: redis:alpine | ||||
|     restart: unless-stopped | ||||
|   server: | ||||
|     image: ${AUTHENTIK_IMAGE:-ghcr.io/goauthentik/server}:${AUTHENTIK_TAG:-2022.3.2} | ||||
|     image: ${AUTHENTIK_IMAGE:-ghcr.io/goauthentik/server}:${AUTHENTIK_TAG:-2022.3.3} | ||||
|     restart: unless-stopped | ||||
|     command: server | ||||
|     environment: | ||||
| @ -38,7 +38,7 @@ services: | ||||
|       - "0.0.0.0:${AUTHENTIK_PORT_HTTP:-9000}:9000" | ||||
|       - "0.0.0.0:${AUTHENTIK_PORT_HTTPS:-9443}:9443" | ||||
|   worker: | ||||
|     image: ${AUTHENTIK_IMAGE:-ghcr.io/goauthentik/server}:${AUTHENTIK_TAG:-2022.3.2} | ||||
|     image: ${AUTHENTIK_IMAGE:-ghcr.io/goauthentik/server}:${AUTHENTIK_TAG:-2022.3.3} | ||||
|     restart: unless-stopped | ||||
|     command: worker | ||||
|     environment: | ||||
|  | ||||
							
								
								
									
										6
									
								
								go.mod
									
									
									
									
									
								
							
							
						
						
									
										6
									
								
								go.mod
									
									
									
									
									
								
							| @ -8,7 +8,7 @@ require ( | ||||
| 	github.com/garyburd/redigo v1.6.2 // indirect | ||||
| 	github.com/getsentry/sentry-go v0.13.0 | ||||
| 	github.com/go-ldap/ldap/v3 v3.4.2 | ||||
| 	github.com/go-openapi/runtime v0.23.2 | ||||
| 	github.com/go-openapi/runtime v0.23.3 | ||||
| 	github.com/go-openapi/strfmt v0.21.2 | ||||
| 	github.com/golang-jwt/jwt v3.2.2+incompatible | ||||
| 	github.com/google/uuid v1.3.0 | ||||
| @ -26,8 +26,8 @@ require ( | ||||
| 	github.com/prometheus/client_golang v1.12.1 | ||||
| 	github.com/quasoft/memstore v0.0.0-20191010062613-2bce066d2b0b | ||||
| 	github.com/sirupsen/logrus v1.8.1 | ||||
| 	github.com/stretchr/testify v1.7.0 | ||||
| 	goauthentik.io/api/v3 v3.2022031.1 | ||||
| 	github.com/stretchr/testify v1.7.1 | ||||
| 	goauthentik.io/api/v3 v3.2022032.1 | ||||
| 	golang.org/x/net v0.0.0-20220225172249-27dd8689420f // indirect | ||||
| 	golang.org/x/oauth2 v0.0.0-20220223155221-ee480838109b | ||||
| 	golang.org/x/sync v0.0.0-20210220032951-036812b2e83c | ||||
|  | ||||
							
								
								
									
										11
									
								
								go.sum
									
									
									
									
									
								
							
							
						
						
									
										11
									
								
								go.sum
									
									
									
									
									
								
							| @ -132,8 +132,8 @@ github.com/go-openapi/jsonreference v0.19.6 h1:UBIxjkht+AWIgYzCDSv2GN+E/togfwXUJ | ||||
| github.com/go-openapi/jsonreference v0.19.6/go.mod h1:diGHMEHg2IqXZGKxqyvWdfWU/aim5Dprw5bqpKkTvns= | ||||
| github.com/go-openapi/loads v0.21.1 h1:Wb3nVZpdEzDTcly8S4HMkey6fjARRzb7iEaySimlDW0= | ||||
| github.com/go-openapi/loads v0.21.1/go.mod h1:/DtAMXXneXFjbQMGEtbamCZb+4x7eGwkvZCvBmwUG+g= | ||||
| github.com/go-openapi/runtime v0.23.2 h1:SLoYVM3ovq+lynpgrHQZ5WQcx+CBE0HHHCZU3c2jQoo= | ||||
| github.com/go-openapi/runtime v0.23.2/go.mod h1:AKurw9fNre+h3ELZfk6ILsfvPN+bvvlaU/M9q/r9hpk= | ||||
| github.com/go-openapi/runtime v0.23.3 h1:/dxjx4KCOQI5ImBMz036F6v/DzZ2NUjSRvbLJs1rgoE= | ||||
| github.com/go-openapi/runtime v0.23.3/go.mod h1:AKurw9fNre+h3ELZfk6ILsfvPN+bvvlaU/M9q/r9hpk= | ||||
| github.com/go-openapi/spec v0.20.4 h1:O8hJrt0UMnhHcluhIdUgCLRWyM2x7QkBXRvOs7m+O1M= | ||||
| github.com/go-openapi/spec v0.20.4/go.mod h1:faYFR1CvsJZ0mNsmsphTMSoRrNV3TEDoAM7FOEWeq8I= | ||||
| github.com/go-openapi/strfmt v0.21.0/go.mod h1:ZRQ409bWMj+SOgXofQAGTIo2Ebu72Gs+WaRADcS5iNg= | ||||
| @ -424,8 +424,9 @@ github.com/stretchr/testify v1.2.2/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXf | ||||
| github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI= | ||||
| github.com/stretchr/testify v1.4.0/go.mod h1:j7eGeouHqKxXV5pUuKE4zz7dFj8WfuZ+81PSLYec5m4= | ||||
| github.com/stretchr/testify v1.6.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= | ||||
| github.com/stretchr/testify v1.7.0 h1:nwc3DEeHmmLAfoZucVR881uASk0Mfjw8xYJ99tb5CcY= | ||||
| github.com/stretchr/testify v1.7.0/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= | ||||
| github.com/stretchr/testify v1.7.1 h1:5TQK59W5E3v0r2duFAb7P95B6hEeOyEnHRa8MjYSMTY= | ||||
| github.com/stretchr/testify v1.7.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= | ||||
| github.com/tidwall/pretty v1.0.0 h1:HsD+QiTn7sK6flMKIvNmpqz1qrpP3Ps6jOKIKMooyg4= | ||||
| github.com/tidwall/pretty v1.0.0/go.mod h1:XNkn88O1ChpSDQmQeStsy+sBenx6DDtFZJxhVysOjyk= | ||||
| github.com/ugorji/go v1.1.7/go.mod h1:kZn38zHttfInRq0xu/PH0az30d+z6vm202qpg1oXVMw= | ||||
| @ -460,8 +461,8 @@ go.opencensus.io v0.22.0/go.mod h1:+kGneAE2xo2IficOXnaByMWTGM9T73dGwxeWcUqIpI8= | ||||
| go.opencensus.io v0.22.2/go.mod h1:yxeiOL68Rb0Xd1ddK5vPZ/oVn4vY4Ynel7k9FzqtOIw= | ||||
| go.opencensus.io v0.22.3/go.mod h1:yxeiOL68Rb0Xd1ddK5vPZ/oVn4vY4Ynel7k9FzqtOIw= | ||||
| go.opencensus.io v0.22.4/go.mod h1:yxeiOL68Rb0Xd1ddK5vPZ/oVn4vY4Ynel7k9FzqtOIw= | ||||
| goauthentik.io/api/v3 v3.2022031.1 h1:8n0fHdp8DIlLrTZR79SX8jfYHnJFOeloEJ5D82xRNjU= | ||||
| goauthentik.io/api/v3 v3.2022031.1/go.mod h1:QM9J32HgYE4gL71lWAfAoXSPdSmLVLW08itfLI3Mo10= | ||||
| goauthentik.io/api/v3 v3.2022032.1 h1:8PCy0tHUNjGVNJ7nuKPsK64vURFTeqUifyj68RlqMK4= | ||||
| goauthentik.io/api/v3 v3.2022032.1/go.mod h1:QM9J32HgYE4gL71lWAfAoXSPdSmLVLW08itfLI3Mo10= | ||||
| golang.org/x/crypto v0.0.0-20180904163835-0709b304e793/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= | ||||
| golang.org/x/crypto v0.0.0-20181203042331-505ab145d0a9/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= | ||||
| golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= | ||||
|  | ||||
| @ -25,4 +25,4 @@ func OutpostUserAgent() string { | ||||
| 	return fmt.Sprintf("authentik-outpost@%s", FullVersion()) | ||||
| } | ||||
|  | ||||
| const VERSION = "2022.3.2" | ||||
| const VERSION = "2022.3.3" | ||||
|  | ||||
| @ -116,12 +116,12 @@ func (ds *DirectSearcher) Search(req *search.Request) (ldap.ServerSearchResult, | ||||
| 	var users *[]api.User | ||||
| 	var groups *[]api.Group | ||||
|  | ||||
| 	errs, _ := errgroup.WithContext(req.Context()) | ||||
| 	errs, errCtx := errgroup.WithContext(req.Context()) | ||||
|  | ||||
| 	if needUsers { | ||||
| 		errs.Go(func() error { | ||||
| 			if flags.CanSearch { | ||||
| 				uapisp := sentry.StartSpan(req.Context(), "authentik.providers.ldap.search.api_user") | ||||
| 				uapisp := sentry.StartSpan(errCtx, "authentik.providers.ldap.search.api_user") | ||||
| 				searchReq, skip := utils.ParseFilterForUser(c.CoreApi.CoreUsersList(uapisp.Context()), parsedFilter, false) | ||||
|  | ||||
| 				if skip { | ||||
| @ -140,8 +140,8 @@ func (ds *DirectSearcher) Search(req *search.Request) (ldap.ServerSearchResult, | ||||
| 				users = &u.Results | ||||
| 			} else { | ||||
| 				if flags.UserInfo == nil { | ||||
| 					uapisp := sentry.StartSpan(req.Context(), "authentik.providers.ldap.search.api_user") | ||||
| 					u, _, err := c.CoreApi.CoreUsersRetrieve(req.Context(), flags.UserPk).Execute() | ||||
| 					uapisp := sentry.StartSpan(errCtx, "authentik.providers.ldap.search.api_user") | ||||
| 					u, _, err := c.CoreApi.CoreUsersRetrieve(uapisp.Context(), flags.UserPk).Execute() | ||||
| 					uapisp.Finish() | ||||
|  | ||||
| 					if err != nil { | ||||
| @ -164,7 +164,7 @@ func (ds *DirectSearcher) Search(req *search.Request) (ldap.ServerSearchResult, | ||||
|  | ||||
| 	if needGroups { | ||||
| 		errs.Go(func() error { | ||||
| 			gapisp := sentry.StartSpan(req.Context(), "authentik.providers.ldap.search.api_group") | ||||
| 			gapisp := sentry.StartSpan(errCtx, "authentik.providers.ldap.search.api_group") | ||||
| 			searchReq, skip := utils.ParseFilterForGroup(c.CoreApi.CoreGroupsList(gapisp.Context()), parsedFilter, false) | ||||
| 			if skip { | ||||
| 				req.Log().Trace("Skip backend request") | ||||
| @ -252,7 +252,7 @@ func (ds *DirectSearcher) Search(req *search.Request) (ldap.ServerSearchResult, | ||||
| 	if scope >= 0 && (strings.EqualFold(req.BaseDN, ds.si.GetBaseDN()) || utils.HasSuffixNoCase(req.BaseDN, ds.si.GetBaseVirtualGroupDN())) { | ||||
| 		singlevg := utils.HasSuffixNoCase(req.BaseDN, ","+ds.si.GetBaseVirtualGroupDN()) | ||||
|  | ||||
| 		if !singlevg || utils.IncludeObjectClass(filterOC, constants.GetContainerOCs()) { | ||||
| 		if !singlevg && utils.IncludeObjectClass(filterOC, constants.GetContainerOCs()) { | ||||
| 			entries = append(entries, utils.GetContainerEntry(filterOC, ds.si.GetBaseVirtualGroupDN(), constants.OUVirtualGroups)) | ||||
| 			scope -= 1 | ||||
| 		} | ||||
|  | ||||
| @ -1,5 +1,5 @@ | ||||
| # Stage 1: Build | ||||
| FROM docker.io/golang:1.17.8-bullseye AS builder | ||||
| FROM docker.io/golang:1.18.0-bullseye AS builder | ||||
|  | ||||
| WORKDIR /go/src/goauthentik.io | ||||
|  | ||||
|  | ||||
							
								
								
									
										26
									
								
								poetry.lock
									
									
									
										generated
									
									
									
								
							
							
						
						
									
										26
									
								
								poetry.lock
									
									
									
										generated
									
									
									
								
							| @ -1091,7 +1091,7 @@ pyparsing = ">=2.0.2,<3.0.5 || >3.0.5" | ||||
|  | ||||
| [[package]] | ||||
| name = "paramiko" | ||||
| version = "2.10.1" | ||||
| version = "2.10.3" | ||||
| description = "SSH2 protocol library" | ||||
| category = "main" | ||||
| optional = false | ||||
| @ -1353,7 +1353,7 @@ python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*" | ||||
|  | ||||
| [[package]] | ||||
| name = "pytest" | ||||
| version = "7.1.0" | ||||
| version = "7.1.1" | ||||
| description = "pytest: simple powerful testing with Python" | ||||
| category = "dev" | ||||
| optional = false | ||||
| @ -1535,7 +1535,7 @@ urllib3 = {version = ">=1.26,<2.0", extras = ["secure", "socks"]} | ||||
|  | ||||
| [[package]] | ||||
| name = "sentry-sdk" | ||||
| version = "1.5.7" | ||||
| version = "1.5.8" | ||||
| description = "Python client for Sentry (https://sentry.io)" | ||||
| category = "main" | ||||
| optional = false | ||||
| @ -1806,7 +1806,7 @@ python-versions = ">=3.6" | ||||
|  | ||||
| [[package]] | ||||
| name = "urllib3" | ||||
| version = "1.26.8" | ||||
| version = "1.26.9" | ||||
| description = "HTTP library with thread-safe connection pooling, file post, and more." | ||||
| category = "main" | ||||
| optional = false | ||||
| @ -1820,7 +1820,7 @@ pyOpenSSL = {version = ">=0.14", optional = true, markers = "extra == \"secure\" | ||||
| PySocks = {version = ">=1.5.6,<1.5.7 || >1.5.7,<2.0", optional = true, markers = "extra == \"socks\""} | ||||
|  | ||||
| [package.extras] | ||||
| brotli = ["brotlipy (>=0.6.0)"] | ||||
| brotli = ["brotlicffi (>=0.8.0)", "brotli (>=1.0.9)", "brotlipy (>=0.6.0)"] | ||||
| secure = ["pyOpenSSL (>=0.14)", "cryptography (>=1.3.4)", "idna (>=2.0.0)", "certifi", "ipaddress"] | ||||
| socks = ["PySocks (>=1.5.6,!=1.5.7,<2.0)"] | ||||
|  | ||||
| @ -2869,8 +2869,8 @@ packaging = [ | ||||
|     {file = "packaging-21.3.tar.gz", hash = "sha256:dd47c42927d89ab911e606518907cc2d3a1f38bbd026385970643f9c5b8ecfeb"}, | ||||
| ] | ||||
| paramiko = [ | ||||
|     {file = "paramiko-2.10.1-py2.py3-none-any.whl", hash = "sha256:f6cbd3e1204abfdbcd40b3ecbc9d32f04027cd3080fe666245e21e7540ccfc1b"}, | ||||
|     {file = "paramiko-2.10.1.tar.gz", hash = "sha256:443f4da23ec24e9a9c0ea54017829c282abdda1d57110bf229360775ccd27a31"}, | ||||
|     {file = "paramiko-2.10.3-py2.py3-none-any.whl", hash = "sha256:ac6593479f2b47a9422eca076b22cff9f795495e6733a64723efc75dd8c92101"}, | ||||
|     {file = "paramiko-2.10.3.tar.gz", hash = "sha256:ddb1977853aef82804b35d72a0e597b244fa326c404c350bd00c5b01dbfee71a"}, | ||||
| ] | ||||
| pathspec = [ | ||||
|     {file = "pathspec-0.9.0-py2.py3-none-any.whl", hash = "sha256:7d15c4ddb0b5c802d161efc417ec1a2558ea2653c2e8ad9c19098201dc1c993a"}, | ||||
| @ -3126,8 +3126,8 @@ pysocks = [ | ||||
|     {file = "PySocks-1.7.1.tar.gz", hash = "sha256:3f8804571ebe159c380ac6de37643bb4685970655d3bba243530d6558b799aa0"}, | ||||
| ] | ||||
| pytest = [ | ||||
|     {file = "pytest-7.1.0-py3-none-any.whl", hash = "sha256:b555252a95bbb2a37a97b5ac2eb050c436f7989993565f5e0c9128fcaacadd0e"}, | ||||
|     {file = "pytest-7.1.0.tar.gz", hash = "sha256:f1089d218cfcc63a212c42896f1b7fbf096874d045e1988186861a1a87d27b47"}, | ||||
|     {file = "pytest-7.1.1-py3-none-any.whl", hash = "sha256:92f723789a8fdd7180b6b06483874feca4c48a5c76968e03bb3e7f806a1869ea"}, | ||||
|     {file = "pytest-7.1.1.tar.gz", hash = "sha256:841132caef6b1ad17a9afde46dc4f6cfa59a05f9555aae5151f73bdf2820ca63"}, | ||||
| ] | ||||
| pytest-django = [ | ||||
|     {file = "pytest-django-4.5.2.tar.gz", hash = "sha256:d9076f759bb7c36939dbdd5ae6633c18edfc2902d1a69fdbefd2426b970ce6c2"}, | ||||
| @ -3222,8 +3222,8 @@ selenium = [ | ||||
|     {file = "selenium-4.1.3-py3-none-any.whl", hash = "sha256:14d28a628c831c105d38305c881c9c7847199bfd728ec84240c5e86fa1c9bd5a"}, | ||||
| ] | ||||
| sentry-sdk = [ | ||||
|     {file = "sentry-sdk-1.5.7.tar.gz", hash = "sha256:aa52da941c56b5a76fd838f8e9e92a850bf893a9eb1e33ffce6c21431d07ee30"}, | ||||
|     {file = "sentry_sdk-1.5.7-py2.py3-none-any.whl", hash = "sha256:411a8495bd18cf13038e5749e4710beb4efa53da6351f67b4c2f307c2d9b6d49"}, | ||||
|     {file = "sentry-sdk-1.5.8.tar.gz", hash = "sha256:38fd16a92b5ef94203db3ece10e03bdaa291481dd7e00e77a148aa0302267d47"}, | ||||
|     {file = "sentry_sdk-1.5.8-py2.py3-none-any.whl", hash = "sha256:32af1a57954576709242beb8c373b3dbde346ac6bd616921def29d68846fb8c3"}, | ||||
| ] | ||||
| service-identity = [ | ||||
|     {file = "service-identity-21.1.0.tar.gz", hash = "sha256:6e6c6086ca271dc11b033d17c3a8bea9f24ebff920c587da090afc9519419d34"}, | ||||
| @ -3359,8 +3359,8 @@ uritemplate = [ | ||||
|     {file = "uritemplate-4.1.1.tar.gz", hash = "sha256:4346edfc5c3b79f694bccd6d6099a322bbeb628dbf2cd86eea55a456ce5124f0"}, | ||||
| ] | ||||
| urllib3 = [ | ||||
|     {file = "urllib3-1.26.8-py2.py3-none-any.whl", hash = "sha256:000ca7f471a233c2251c6c7023ee85305721bfdf18621ebff4fd17a8653427ed"}, | ||||
|     {file = "urllib3-1.26.8.tar.gz", hash = "sha256:0e7c33d9a63e7ddfcb86780aac87befc2fbddf46c58dbb487e0855f7ceec283c"}, | ||||
|     {file = "urllib3-1.26.9-py2.py3-none-any.whl", hash = "sha256:44ece4d53fb1706f667c9bd1c648f5469a2ec925fcf3a776667042d645472c14"}, | ||||
|     {file = "urllib3-1.26.9.tar.gz", hash = "sha256:aabaf16477806a5e1dd19aa41f8c2b7950dd3c746362d7e3223dbe6de6ac448e"}, | ||||
| ] | ||||
| uvicorn = [ | ||||
|     {file = "uvicorn-0.17.6-py3-none-any.whl", hash = "sha256:19e2a0e96c9ac5581c01eb1a79a7d2f72bb479691acd2b8921fce48ed5b961a6"}, | ||||
|  | ||||
| @ -7,7 +7,7 @@ ENV NODE_ENV=production | ||||
| RUN cd /static && npm i && npm run build-proxy | ||||
|  | ||||
| # Stage 2: Build | ||||
| FROM docker.io/golang:1.17.8-bullseye AS builder | ||||
| FROM docker.io/golang:1.18.0-bullseye AS builder | ||||
|  | ||||
| WORKDIR /go/src/goauthentik.io | ||||
|  | ||||
|  | ||||
| @ -92,7 +92,7 @@ addopts = "-p no:celery --junitxml=unittest.xml" | ||||
|  | ||||
| [tool.poetry] | ||||
| name = "authentik" | ||||
| version = "2022.3.2" | ||||
| version = "2022.3.3" | ||||
| description = "" | ||||
| authors = ["Jens Langhammer <jens.langhammer@beryju.org>"] | ||||
|  | ||||
|  | ||||
| @ -1,7 +1,7 @@ | ||||
| openapi: 3.0.3 | ||||
| info: | ||||
|   title: authentik | ||||
|   version: 2022.3.2 | ||||
|   version: 2022.3.3 | ||||
|   description: Making authentication simple. | ||||
|   contact: | ||||
|     email: hello@beryju.org | ||||
|  | ||||
							
								
								
									
										447
									
								
								web/package-lock.json
									
									
									
										generated
									
									
									
								
							
							
						
						
									
										447
									
								
								web/package-lock.json
									
									
									
										generated
									
									
									
								
							| @ -9,14 +9,14 @@ | ||||
|             "version": "0.0.0", | ||||
|             "license": "GNU GPLv3", | ||||
|             "dependencies": { | ||||
|                 "@babel/core": "^7.17.5", | ||||
|                 "@babel/plugin-proposal-decorators": "^7.17.2", | ||||
|                 "@babel/core": "^7.17.8", | ||||
|                 "@babel/plugin-proposal-decorators": "^7.17.8", | ||||
|                 "@babel/plugin-transform-runtime": "^7.17.0", | ||||
|                 "@babel/preset-env": "^7.16.11", | ||||
|                 "@babel/preset-typescript": "^7.16.7", | ||||
|                 "@formatjs/intl-listformat": "^6.5.2", | ||||
|                 "@fortawesome/fontawesome-free": "^6.0.0", | ||||
|                 "@goauthentik/api": "^2022.3.1-1647250825", | ||||
|                 "@fortawesome/fontawesome-free": "^6.1.0", | ||||
|                 "@goauthentik/api": "^2022.3.2-1647336362", | ||||
|                 "@jackfranklin/rollup-plugin-markdown": "^0.3.0", | ||||
|                 "@lingui/cli": "^3.13.2", | ||||
|                 "@lingui/core": "^3.13.2", | ||||
| @ -36,9 +36,9 @@ | ||||
|                 "@trivago/prettier-plugin-sort-imports": "^3.2.0", | ||||
|                 "@types/chart.js": "^2.9.35", | ||||
|                 "@types/codemirror": "5.60.5", | ||||
|                 "@types/grecaptcha": "^3.0.3", | ||||
|                 "@typescript-eslint/eslint-plugin": "^5.14.0", | ||||
|                 "@typescript-eslint/parser": "^5.14.0", | ||||
|                 "@types/grecaptcha": "^3.0.4", | ||||
|                 "@typescript-eslint/eslint-plugin": "^5.15.0", | ||||
|                 "@typescript-eslint/parser": "^5.15.0", | ||||
|                 "@webcomponents/webcomponentsjs": "^2.6.0", | ||||
|                 "babel-plugin-macros": "^3.1.0", | ||||
|                 "base64-js": "^1.5.1", | ||||
| @ -46,18 +46,18 @@ | ||||
|                 "chartjs-adapter-moment": "^1.0.0", | ||||
|                 "codemirror": "^5.65.2", | ||||
|                 "construct-style-sheets-polyfill": "^3.1.0", | ||||
|                 "country-flag-icons": "^1.4.21", | ||||
|                 "country-flag-icons": "^1.4.24", | ||||
|                 "eslint": "^8.11.0", | ||||
|                 "eslint-config-google": "^0.14.0", | ||||
|                 "eslint-plugin-custom-elements": "0.0.4", | ||||
|                 "eslint-plugin-lit": "^1.6.1", | ||||
|                 "flowchart.js": "^1.17.1", | ||||
|                 "fuse.js": "^6.5.3", | ||||
|                 "lit": "^2.2.0", | ||||
|                 "lit": "^2.2.1", | ||||
|                 "moment": "^2.29.1", | ||||
|                 "prettier": "^2.5.1", | ||||
|                 "prettier": "^2.6.0", | ||||
|                 "rapidoc": "^9.2.0", | ||||
|                 "rollup": "^2.70.0", | ||||
|                 "rollup": "^2.70.1", | ||||
|                 "rollup-plugin-copy": "^3.4.0", | ||||
|                 "rollup-plugin-cssimport": "^1.0.2", | ||||
|                 "rollup-plugin-minify-html-literals": "^1.2.6", | ||||
| @ -66,7 +66,7 @@ | ||||
|                 "ts-lit-plugin": "^1.2.1", | ||||
|                 "tslib": "^2.3.1", | ||||
|                 "typescript": "^4.6.2", | ||||
|                 "webcomponent-qr-code": "^1.0.5", | ||||
|                 "webcomponent-qr-code": "^1.0.6", | ||||
|                 "yaml": "^1.10.2" | ||||
|             } | ||||
|         }, | ||||
| @ -101,25 +101,25 @@ | ||||
|             } | ||||
|         }, | ||||
|         "node_modules/@babel/compat-data": { | ||||
|             "version": "7.16.8", | ||||
|             "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.16.8.tgz", | ||||
|             "integrity": "sha512-m7OkX0IdKLKPpBlJtF561YJal5y/jyI5fNfWbPxh2D/nbzzGI4qRyrD8xO2jB24u7l+5I2a43scCG2IrfjC50Q==", | ||||
|             "version": "7.17.7", | ||||
|             "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.17.7.tgz", | ||||
|             "integrity": "sha512-p8pdE6j0a29TNGebNm7NzYZWB3xVZJBZ7XGs42uAKzQo8VQ3F0By/cQCtUEABwIqw5zo6WA4NbmxsfzADzMKnQ==", | ||||
|             "engines": { | ||||
|                 "node": ">=6.9.0" | ||||
|             } | ||||
|         }, | ||||
|         "node_modules/@babel/core": { | ||||
|             "version": "7.17.5", | ||||
|             "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.17.5.tgz", | ||||
|             "integrity": "sha512-/BBMw4EvjmyquN5O+t5eh0+YqB3XXJkYD2cjKpYtWOfFy4lQ4UozNSmxAcWT8r2XtZs0ewG+zrfsqeR15i1ajA==", | ||||
|             "version": "7.17.8", | ||||
|             "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.17.8.tgz", | ||||
|             "integrity": "sha512-OdQDV/7cRBtJHLSOBqqbYNkOcydOgnX59TZx4puf41fzcVtN3e/4yqY8lMQsK+5X2lJtAdmA+6OHqsj1hBJ4IQ==", | ||||
|             "dependencies": { | ||||
|                 "@ampproject/remapping": "^2.1.0", | ||||
|                 "@babel/code-frame": "^7.16.7", | ||||
|                 "@babel/generator": "^7.17.3", | ||||
|                 "@babel/helper-compilation-targets": "^7.16.7", | ||||
|                 "@babel/helper-module-transforms": "^7.16.7", | ||||
|                 "@babel/helpers": "^7.17.2", | ||||
|                 "@babel/parser": "^7.17.3", | ||||
|                 "@babel/generator": "^7.17.7", | ||||
|                 "@babel/helper-compilation-targets": "^7.17.7", | ||||
|                 "@babel/helper-module-transforms": "^7.17.7", | ||||
|                 "@babel/helpers": "^7.17.8", | ||||
|                 "@babel/parser": "^7.17.8", | ||||
|                 "@babel/template": "^7.16.7", | ||||
|                 "@babel/traverse": "^7.17.3", | ||||
|                 "@babel/types": "^7.17.0", | ||||
| @ -138,9 +138,9 @@ | ||||
|             } | ||||
|         }, | ||||
|         "node_modules/@babel/generator": { | ||||
|             "version": "7.17.3", | ||||
|             "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.17.3.tgz", | ||||
|             "integrity": "sha512-+R6Dctil/MgUsZsZAkYgK+ADNSZzJRRy0TvY65T71z/CR854xHQ1EweBYXdfT+HNeN7w0cSJJEzgxZMv40pxsg==", | ||||
|             "version": "7.17.7", | ||||
|             "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.17.7.tgz", | ||||
|             "integrity": "sha512-oLcVCTeIFadUoArDTwpluncplrYBmTCCZZgXCbgNGvOBBiSDDK3eWO4b/+eOTli5tKv1lg+a5/NAXg+nTcei1w==", | ||||
|             "dependencies": { | ||||
|                 "@babel/types": "^7.17.0", | ||||
|                 "jsesc": "^2.5.1", | ||||
| @ -174,11 +174,11 @@ | ||||
|             } | ||||
|         }, | ||||
|         "node_modules/@babel/helper-compilation-targets": { | ||||
|             "version": "7.16.7", | ||||
|             "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.16.7.tgz", | ||||
|             "integrity": "sha512-mGojBwIWcwGD6rfqgRXVlVYmPAv7eOpIemUG3dGnDdCY4Pae70ROij3XmfrH6Fa1h1aiDylpglbZyktfzyo/hA==", | ||||
|             "version": "7.17.7", | ||||
|             "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.17.7.tgz", | ||||
|             "integrity": "sha512-UFzlz2jjd8kroj0hmCFV5zr+tQPi1dpC2cRsDV/3IEW8bJfCPrPpmcSN6ZS8RqIq4LXcmpipCQFPddyFA5Yc7w==", | ||||
|             "dependencies": { | ||||
|                 "@babel/compat-data": "^7.16.4", | ||||
|                 "@babel/compat-data": "^7.17.7", | ||||
|                 "@babel/helper-validator-option": "^7.16.7", | ||||
|                 "browserslist": "^4.17.5", | ||||
|                 "semver": "^6.3.0" | ||||
| @ -191,9 +191,9 @@ | ||||
|             } | ||||
|         }, | ||||
|         "node_modules/@babel/helper-create-class-features-plugin": { | ||||
|             "version": "7.17.1", | ||||
|             "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.17.1.tgz", | ||||
|             "integrity": "sha512-JBdSr/LtyYIno/pNnJ75lBcqc3Z1XXujzPanHqjvvrhOA+DTceTFuJi8XjmWTZh4r3fsdfqaCMN0iZemdkxZHQ==", | ||||
|             "version": "7.17.6", | ||||
|             "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.17.6.tgz", | ||||
|             "integrity": "sha512-SogLLSxXm2OkBbSsHZMM4tUi8fUzjs63AT/d0YQIzr6GSd8Hxsbk2KYDX0k0DweAzGMj/YWeiCsorIdtdcW8Eg==", | ||||
|             "dependencies": { | ||||
|                 "@babel/helper-annotate-as-pure": "^7.16.7", | ||||
|                 "@babel/helper-environment-visitor": "^7.16.7", | ||||
| @ -323,18 +323,18 @@ | ||||
|             } | ||||
|         }, | ||||
|         "node_modules/@babel/helper-module-transforms": { | ||||
|             "version": "7.16.7", | ||||
|             "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.16.7.tgz", | ||||
|             "integrity": "sha512-gaqtLDxJEFCeQbYp9aLAefjhkKdjKcdh6DB7jniIGU3Pz52WAmP268zK0VgPz9hUNkMSYeH976K2/Y6yPadpng==", | ||||
|             "version": "7.17.7", | ||||
|             "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.17.7.tgz", | ||||
|             "integrity": "sha512-VmZD99F3gNTYB7fJRDTi+u6l/zxY0BE6OIxPSU7a50s6ZUQkHwSDmV92FfM+oCG0pZRVojGYhkR8I0OGeCVREw==", | ||||
|             "dependencies": { | ||||
|                 "@babel/helper-environment-visitor": "^7.16.7", | ||||
|                 "@babel/helper-module-imports": "^7.16.7", | ||||
|                 "@babel/helper-simple-access": "^7.16.7", | ||||
|                 "@babel/helper-simple-access": "^7.17.7", | ||||
|                 "@babel/helper-split-export-declaration": "^7.16.7", | ||||
|                 "@babel/helper-validator-identifier": "^7.16.7", | ||||
|                 "@babel/template": "^7.16.7", | ||||
|                 "@babel/traverse": "^7.16.7", | ||||
|                 "@babel/types": "^7.16.7" | ||||
|                 "@babel/traverse": "^7.17.3", | ||||
|                 "@babel/types": "^7.17.0" | ||||
|             }, | ||||
|             "engines": { | ||||
|                 "node": ">=6.9.0" | ||||
| @ -388,11 +388,11 @@ | ||||
|             } | ||||
|         }, | ||||
|         "node_modules/@babel/helper-simple-access": { | ||||
|             "version": "7.16.7", | ||||
|             "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.16.7.tgz", | ||||
|             "integrity": "sha512-ZIzHVyoeLMvXMN/vok/a4LWRy8G2v205mNP0XOuf9XRLyX5/u9CnVulUtDgUTama3lT+bf/UqucuZjqiGuTS1g==", | ||||
|             "version": "7.17.7", | ||||
|             "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.17.7.tgz", | ||||
|             "integrity": "sha512-txyMCGroZ96i+Pxr3Je3lzEJjqwaRC9buMUgtomcrLe5Nd0+fk1h0LLA+ixUF5OW7AhHuQ7Es1WcQJZmZsz2XA==", | ||||
|             "dependencies": { | ||||
|                 "@babel/types": "^7.16.7" | ||||
|                 "@babel/types": "^7.17.0" | ||||
|             }, | ||||
|             "engines": { | ||||
|                 "node": ">=6.9.0" | ||||
| @ -451,12 +451,12 @@ | ||||
|             } | ||||
|         }, | ||||
|         "node_modules/@babel/helpers": { | ||||
|             "version": "7.17.2", | ||||
|             "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.17.2.tgz", | ||||
|             "integrity": "sha512-0Qu7RLR1dILozr/6M0xgj+DFPmi6Bnulgm9M8BVa9ZCWxDqlSnqt3cf8IDPB5m45sVXUZ0kuQAgUrdSFFH79fQ==", | ||||
|             "version": "7.17.8", | ||||
|             "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.17.8.tgz", | ||||
|             "integrity": "sha512-QcL86FGxpfSJwGtAvv4iG93UL6bmqBdmoVY0CMCU2g+oD2ezQse3PT5Pa+jiD6LJndBQi0EDlpzOWNlLuhz5gw==", | ||||
|             "dependencies": { | ||||
|                 "@babel/template": "^7.16.7", | ||||
|                 "@babel/traverse": "^7.17.0", | ||||
|                 "@babel/traverse": "^7.17.3", | ||||
|                 "@babel/types": "^7.17.0" | ||||
|             }, | ||||
|             "engines": { | ||||
| @ -477,9 +477,9 @@ | ||||
|             } | ||||
|         }, | ||||
|         "node_modules/@babel/parser": { | ||||
|             "version": "7.17.3", | ||||
|             "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.17.3.tgz", | ||||
|             "integrity": "sha512-7yJPvPV+ESz2IUTPbOL+YkIGyCqOyNIzdguKQuJGnH7bg1WTIifuM21YqokFt/THWh1AkCRn9IgoykTRCBVpzA==", | ||||
|             "version": "7.17.8", | ||||
|             "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.17.8.tgz", | ||||
|             "integrity": "sha512-BoHhDJrJXqcg+ZL16Xv39H9n+AqJ4pcDrQBGZN+wHxIysrLZ3/ECwCBUch/1zUNhnsXULcONU3Ei5Hmkfk6kiQ==", | ||||
|             "bin": { | ||||
|                 "parser": "bin/babel-parser.js" | ||||
|             }, | ||||
| @ -565,11 +565,11 @@ | ||||
|             } | ||||
|         }, | ||||
|         "node_modules/@babel/plugin-proposal-decorators": { | ||||
|             "version": "7.17.2", | ||||
|             "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-decorators/-/plugin-proposal-decorators-7.17.2.tgz", | ||||
|             "integrity": "sha512-WH8Z95CwTq/W8rFbMqb9p3hicpt4RX4f0K659ax2VHxgOyT6qQmUaEVEjIh4WR9Eh9NymkVn5vwsrE68fAQNUw==", | ||||
|             "version": "7.17.8", | ||||
|             "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-decorators/-/plugin-proposal-decorators-7.17.8.tgz", | ||||
|             "integrity": "sha512-U69odN4Umyyx1xO1rTII0IDkAEC+RNlcKXtqOblfpzqy1C+aOplb76BQNq0+XdpVkOaPlpEDwd++joY8FNFJKA==", | ||||
|             "dependencies": { | ||||
|                 "@babel/helper-create-class-features-plugin": "^7.17.1", | ||||
|                 "@babel/helper-create-class-features-plugin": "^7.17.6", | ||||
|                 "@babel/helper-plugin-utils": "^7.16.7", | ||||
|                 "@babel/helper-replace-supers": "^7.16.7", | ||||
|                 "@babel/plugin-syntax-decorators": "^7.17.0", | ||||
| @ -1757,18 +1757,18 @@ | ||||
|             } | ||||
|         }, | ||||
|         "node_modules/@fortawesome/fontawesome-free": { | ||||
|             "version": "6.0.0", | ||||
|             "resolved": "https://registry.npmjs.org/@fortawesome/fontawesome-free/-/fontawesome-free-6.0.0.tgz", | ||||
|             "integrity": "sha512-6LB4PYBST1Rx40klypw1SmSDArjFOcfBf2LeX9Zg5EKJT2eXiyiJq+CyBYKeXyK0sXS2FsCJWSPr/luyhuvh0Q==", | ||||
|             "version": "6.1.0", | ||||
|             "resolved": "https://registry.npmjs.org/@fortawesome/fontawesome-free/-/fontawesome-free-6.1.0.tgz", | ||||
|             "integrity": "sha512-OgM74M6+Q7BuKAj8r+VfzwjnIGZrY62R4ipbiDvBW4FA0mLnB3yeuV/2bW63j+zppGyTvBp/3jqXp9ZXy43nFw==", | ||||
|             "hasInstallScript": true, | ||||
|             "engines": { | ||||
|                 "node": ">=6" | ||||
|             } | ||||
|         }, | ||||
|         "node_modules/@goauthentik/api": { | ||||
|             "version": "2022.3.1-1647250825", | ||||
|             "resolved": "https://registry.npmjs.org/@goauthentik/api/-/api-2022.3.1-1647250825.tgz", | ||||
|             "integrity": "sha512-dhGE3Dj8vdyb8E4uCOfnKWXVN4N+elYcP7xT4tWZDzwwmlRxb3HU2I8OOrxJgVKmeICIaJtQu3/Ld6AmakJJCQ==" | ||||
|             "version": "2022.3.2-1647336362", | ||||
|             "resolved": "https://registry.npmjs.org/@goauthentik/api/-/api-2022.3.2-1647336362.tgz", | ||||
|             "integrity": "sha512-BU+FkUDEACeIfvdBw5A8WAKC6xZZ43kpyu7kE4jRe2ltNr3YjgWGgGdQFcPte4wHACDsZ6SLxwhujGjvCGX7iw==" | ||||
|         }, | ||||
|         "node_modules/@humanwhocodes/config-array": { | ||||
|             "version": "0.9.2", | ||||
| @ -2776,9 +2776,9 @@ | ||||
|             } | ||||
|         }, | ||||
|         "node_modules/@types/grecaptcha": { | ||||
|             "version": "3.0.3", | ||||
|             "resolved": "https://registry.npmjs.org/@types/grecaptcha/-/grecaptcha-3.0.3.tgz", | ||||
|             "integrity": "sha512-osLqWRzsRsDtCfiCl1lbtUY8ANGCQsG/hhht3E7g1pVT7fD5SXgAg53S2grKjjSkXcm0fvMDbhUeL9NyAJvzGQ==" | ||||
|             "version": "3.0.4", | ||||
|             "resolved": "https://registry.npmjs.org/@types/grecaptcha/-/grecaptcha-3.0.4.tgz", | ||||
|             "integrity": "sha512-7l1Y8DTGXkx/r4pwU1nMVAR+yD/QC+MCHKXAyEX/7JZhwcN1IED09aZ9vCjjkcGdhSQiu/eJqcXInpl6eEEEwg==" | ||||
|         }, | ||||
|         "node_modules/@types/html-minifier": { | ||||
|             "version": "3.5.3", | ||||
| @ -2879,13 +2879,13 @@ | ||||
|             "integrity": "sha512-7tFImggNeNBVMsn0vLrpn1H1uPrUBdnARPTpZoitY37ZrdJREzf7I16tMrlK3hen349gr1NYh8CmZQa7CTG6Aw==" | ||||
|         }, | ||||
|         "node_modules/@typescript-eslint/eslint-plugin": { | ||||
|             "version": "5.14.0", | ||||
|             "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.14.0.tgz", | ||||
|             "integrity": "sha512-ir0wYI4FfFUDfLcuwKzIH7sMVA+db7WYen47iRSaCGl+HMAZI9fpBwfDo45ZALD3A45ZGyHWDNLhbg8tZrMX4w==", | ||||
|             "version": "5.15.0", | ||||
|             "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.15.0.tgz", | ||||
|             "integrity": "sha512-u6Db5JfF0Esn3tiAKELvoU5TpXVSkOpZ78cEGn/wXtT2RVqs2vkt4ge6N8cRCyw7YVKhmmLDbwI2pg92mlv7cA==", | ||||
|             "dependencies": { | ||||
|                 "@typescript-eslint/scope-manager": "5.14.0", | ||||
|                 "@typescript-eslint/type-utils": "5.14.0", | ||||
|                 "@typescript-eslint/utils": "5.14.0", | ||||
|                 "@typescript-eslint/scope-manager": "5.15.0", | ||||
|                 "@typescript-eslint/type-utils": "5.15.0", | ||||
|                 "@typescript-eslint/utils": "5.15.0", | ||||
|                 "debug": "^4.3.2", | ||||
|                 "functional-red-black-tree": "^1.0.1", | ||||
|                 "ignore": "^5.1.8", | ||||
| @ -2925,13 +2925,13 @@ | ||||
|             } | ||||
|         }, | ||||
|         "node_modules/@typescript-eslint/parser": { | ||||
|             "version": "5.14.0", | ||||
|             "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-5.14.0.tgz", | ||||
|             "integrity": "sha512-aHJN8/FuIy1Zvqk4U/gcO/fxeMKyoSv/rS46UXMXOJKVsLQ+iYPuXNbpbH7cBLcpSbmyyFbwrniLx5+kutu1pw==", | ||||
|             "version": "5.15.0", | ||||
|             "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-5.15.0.tgz", | ||||
|             "integrity": "sha512-NGAYP/+RDM2sVfmKiKOCgJYPstAO40vPAgACoWPO/+yoYKSgAXIFaBKsV8P0Cc7fwKgvj27SjRNX4L7f4/jCKQ==", | ||||
|             "dependencies": { | ||||
|                 "@typescript-eslint/scope-manager": "5.14.0", | ||||
|                 "@typescript-eslint/types": "5.14.0", | ||||
|                 "@typescript-eslint/typescript-estree": "5.14.0", | ||||
|                 "@typescript-eslint/scope-manager": "5.15.0", | ||||
|                 "@typescript-eslint/types": "5.15.0", | ||||
|                 "@typescript-eslint/typescript-estree": "5.15.0", | ||||
|                 "debug": "^4.3.2" | ||||
|             }, | ||||
|             "engines": { | ||||
| @ -2951,12 +2951,12 @@ | ||||
|             } | ||||
|         }, | ||||
|         "node_modules/@typescript-eslint/scope-manager": { | ||||
|             "version": "5.14.0", | ||||
|             "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.14.0.tgz", | ||||
|             "integrity": "sha512-LazdcMlGnv+xUc5R4qIlqH0OWARyl2kaP8pVCS39qSL3Pd1F7mI10DbdXeARcE62sVQE4fHNvEqMWsypWO+yEw==", | ||||
|             "version": "5.15.0", | ||||
|             "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.15.0.tgz", | ||||
|             "integrity": "sha512-EFiZcSKrHh4kWk0pZaa+YNJosvKE50EnmN4IfgjkA3bTHElPtYcd2U37QQkNTqwMCS7LXeDeZzEqnsOH8chjSg==", | ||||
|             "dependencies": { | ||||
|                 "@typescript-eslint/types": "5.14.0", | ||||
|                 "@typescript-eslint/visitor-keys": "5.14.0" | ||||
|                 "@typescript-eslint/types": "5.15.0", | ||||
|                 "@typescript-eslint/visitor-keys": "5.15.0" | ||||
|             }, | ||||
|             "engines": { | ||||
|                 "node": "^12.22.0 || ^14.17.0 || >=16.0.0" | ||||
| @ -2967,11 +2967,11 @@ | ||||
|             } | ||||
|         }, | ||||
|         "node_modules/@typescript-eslint/type-utils": { | ||||
|             "version": "5.14.0", | ||||
|             "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-5.14.0.tgz", | ||||
|             "integrity": "sha512-d4PTJxsqaUpv8iERTDSQBKUCV7Q5yyXjqXUl3XF7Sd9ogNLuKLkxz82qxokqQ4jXdTPZudWpmNtr/JjbbvUixw==", | ||||
|             "version": "5.15.0", | ||||
|             "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-5.15.0.tgz", | ||||
|             "integrity": "sha512-KGeDoEQ7gHieLydujGEFLyLofipe9PIzfvA/41urz4hv+xVxPEbmMQonKSynZ0Ks2xDhJQ4VYjB3DnRiywvKDA==", | ||||
|             "dependencies": { | ||||
|                 "@typescript-eslint/utils": "5.14.0", | ||||
|                 "@typescript-eslint/utils": "5.15.0", | ||||
|                 "debug": "^4.3.2", | ||||
|                 "tsutils": "^3.21.0" | ||||
|             }, | ||||
| @ -2992,9 +2992,9 @@ | ||||
|             } | ||||
|         }, | ||||
|         "node_modules/@typescript-eslint/types": { | ||||
|             "version": "5.14.0", | ||||
|             "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.14.0.tgz", | ||||
|             "integrity": "sha512-BR6Y9eE9360LNnW3eEUqAg6HxS9Q35kSIs4rp4vNHRdfg0s+/PgHgskvu5DFTM7G5VKAVjuyaN476LCPrdA7Mw==", | ||||
|             "version": "5.15.0", | ||||
|             "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.15.0.tgz", | ||||
|             "integrity": "sha512-yEiTN4MDy23vvsIksrShjNwQl2vl6kJeG9YkVJXjXZnkJElzVK8nfPsWKYxcsGWG8GhurYXP4/KGj3aZAxbeOA==", | ||||
|             "engines": { | ||||
|                 "node": "^12.22.0 || ^14.17.0 || >=16.0.0" | ||||
|             }, | ||||
| @ -3004,12 +3004,12 @@ | ||||
|             } | ||||
|         }, | ||||
|         "node_modules/@typescript-eslint/typescript-estree": { | ||||
|             "version": "5.14.0", | ||||
|             "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.14.0.tgz", | ||||
|             "integrity": "sha512-QGnxvROrCVtLQ1724GLTHBTR0lZVu13izOp9njRvMkCBgWX26PKvmMP8k82nmXBRD3DQcFFq2oj3cKDwr0FaUA==", | ||||
|             "version": "5.15.0", | ||||
|             "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.15.0.tgz", | ||||
|             "integrity": "sha512-Hb0e3dGc35b75xLzixM3cSbG1sSbrTBQDfIScqdyvrfJZVEi4XWAT+UL/HMxEdrJNB8Yk28SKxPLtAhfCbBInA==", | ||||
|             "dependencies": { | ||||
|                 "@typescript-eslint/types": "5.14.0", | ||||
|                 "@typescript-eslint/visitor-keys": "5.14.0", | ||||
|                 "@typescript-eslint/types": "5.15.0", | ||||
|                 "@typescript-eslint/visitor-keys": "5.15.0", | ||||
|                 "debug": "^4.3.2", | ||||
|                 "globby": "^11.0.4", | ||||
|                 "is-glob": "^4.0.3", | ||||
| @ -3044,14 +3044,14 @@ | ||||
|             } | ||||
|         }, | ||||
|         "node_modules/@typescript-eslint/utils": { | ||||
|             "version": "5.14.0", | ||||
|             "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-5.14.0.tgz", | ||||
|             "integrity": "sha512-EHwlII5mvUA0UsKYnVzySb/5EE/t03duUTweVy8Zqt3UQXBrpEVY144OTceFKaOe4xQXZJrkptCf7PjEBeGK4w==", | ||||
|             "version": "5.15.0", | ||||
|             "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-5.15.0.tgz", | ||||
|             "integrity": "sha512-081rWu2IPKOgTOhHUk/QfxuFog8m4wxW43sXNOMSCdh578tGJ1PAaWPsj42LOa7pguh173tNlMigsbrHvh/mtA==", | ||||
|             "dependencies": { | ||||
|                 "@types/json-schema": "^7.0.9", | ||||
|                 "@typescript-eslint/scope-manager": "5.14.0", | ||||
|                 "@typescript-eslint/types": "5.14.0", | ||||
|                 "@typescript-eslint/typescript-estree": "5.14.0", | ||||
|                 "@typescript-eslint/scope-manager": "5.15.0", | ||||
|                 "@typescript-eslint/types": "5.15.0", | ||||
|                 "@typescript-eslint/typescript-estree": "5.15.0", | ||||
|                 "eslint-scope": "^5.1.1", | ||||
|                 "eslint-utils": "^3.0.0" | ||||
|             }, | ||||
| @ -3067,11 +3067,11 @@ | ||||
|             } | ||||
|         }, | ||||
|         "node_modules/@typescript-eslint/visitor-keys": { | ||||
|             "version": "5.14.0", | ||||
|             "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.14.0.tgz", | ||||
|             "integrity": "sha512-yL0XxfzR94UEkjBqyymMLgCBdojzEuy/eim7N9/RIcTNxpJudAcqsU8eRyfzBbcEzGoPWfdM3AGak3cN08WOIw==", | ||||
|             "version": "5.15.0", | ||||
|             "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.15.0.tgz", | ||||
|             "integrity": "sha512-+vX5FKtgvyHbmIJdxMJ2jKm9z2BIlXJiuewI8dsDYMp5LzPUcuTT78Ya5iwvQg3VqSVdmxyM8Anj1Jeq7733ZQ==", | ||||
|             "dependencies": { | ||||
|                 "@typescript-eslint/types": "5.14.0", | ||||
|                 "@typescript-eslint/types": "5.15.0", | ||||
|                 "eslint-visitor-keys": "^3.0.0" | ||||
|             }, | ||||
|             "engines": { | ||||
| @ -3941,9 +3941,9 @@ | ||||
|             } | ||||
|         }, | ||||
|         "node_modules/country-flag-icons": { | ||||
|             "version": "1.4.21", | ||||
|             "resolved": "https://registry.npmjs.org/country-flag-icons/-/country-flag-icons-1.4.21.tgz", | ||||
|             "integrity": "sha512-bA9jDr+T5li7EsKdDx0xVnO0bdMdoT8IA3BNbeT2XSWUygR1okhiZ2+eYiC1EKLrFZhI4aEHni2w03lUlOjogg==" | ||||
|             "version": "1.4.24", | ||||
|             "resolved": "https://registry.npmjs.org/country-flag-icons/-/country-flag-icons-1.4.24.tgz", | ||||
|             "integrity": "sha512-yUphht6AbH5OEbj1DGbG/sTenyRV2SEyW64JQazlmHV/ArFV8lQRQ5fvO4e8L7dC5UV95c21hJ1FEfu49WogbQ==" | ||||
|         }, | ||||
|         "node_modules/create-require": { | ||||
|             "version": "1.1.1", | ||||
| @ -5798,9 +5798,9 @@ | ||||
|             "integrity": "sha1-HADHQ7QzzQpOgHWPe2SldEDZ/wA=" | ||||
|         }, | ||||
|         "node_modules/lit": { | ||||
|             "version": "2.2.0", | ||||
|             "resolved": "https://registry.npmjs.org/lit/-/lit-2.2.0.tgz", | ||||
|             "integrity": "sha512-FDyxUuczo6cJJY/2Bkgfh1872U4ikUvmK1Cb6+lYC1CW+QOo8CaWXCpvPKFzYsz0ojUxoruBLVrECc7VI2f1dQ==", | ||||
|             "version": "2.2.1", | ||||
|             "resolved": "https://registry.npmjs.org/lit/-/lit-2.2.1.tgz", | ||||
|             "integrity": "sha512-dSe++R50JqrvNGXmI9OE13de1z5U/Y3J2dTm/9GC86vedI8ILoR8ZGnxfThFpvQ9m0lR0qRnIR4IiKj/jDCfYw==", | ||||
|             "dependencies": { | ||||
|                 "@lit/reactive-element": "^1.3.0", | ||||
|                 "lit-element": "^3.2.0", | ||||
| @ -6876,14 +6876,17 @@ | ||||
|             } | ||||
|         }, | ||||
|         "node_modules/prettier": { | ||||
|             "version": "2.5.1", | ||||
|             "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.5.1.tgz", | ||||
|             "integrity": "sha512-vBZcPRUR5MZJwoyi3ZoyQlc1rXeEck8KgeC9AwwOn+exuxLxq5toTRDTSaVrXHxelDMHy9zlicw8u66yxoSUFg==", | ||||
|             "version": "2.6.0", | ||||
|             "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.6.0.tgz", | ||||
|             "integrity": "sha512-m2FgJibYrBGGgQXNzfd0PuDGShJgRavjUoRCw1mZERIWVSXF0iLzLm+aOqTAbLnC3n6JzUhAA8uZnFVghHJ86A==", | ||||
|             "bin": { | ||||
|                 "prettier": "bin-prettier.js" | ||||
|             }, | ||||
|             "engines": { | ||||
|                 "node": ">=10.13.0" | ||||
|             }, | ||||
|             "funding": { | ||||
|                 "url": "https://github.com/prettier/prettier?sponsor=1" | ||||
|             } | ||||
|         }, | ||||
|         "node_modules/pretty-format": { | ||||
| @ -7310,9 +7313,9 @@ | ||||
|             } | ||||
|         }, | ||||
|         "node_modules/rollup": { | ||||
|             "version": "2.70.0", | ||||
|             "resolved": "https://registry.npmjs.org/rollup/-/rollup-2.70.0.tgz", | ||||
|             "integrity": "sha512-iEzYw+syFxQ0X9RefVwhr8BA2TNJsTaX8L8dhyeyMECDbmiba+8UQzcu+xZdji0+JQ+s7kouQnw+9Oz5M19XKA==", | ||||
|             "version": "2.70.1", | ||||
|             "resolved": "https://registry.npmjs.org/rollup/-/rollup-2.70.1.tgz", | ||||
|             "integrity": "sha512-CRYsI5EuzLbXdxC6RnYhOuRdtz4bhejPMSWjsFLfVM/7w/85n2szZv6yExqUXsBdz5KT8eoubeyDUDjhLHEslA==", | ||||
|             "bin": { | ||||
|                 "rollup": "dist/bin/rollup" | ||||
|             }, | ||||
| @ -8705,9 +8708,9 @@ | ||||
|             } | ||||
|         }, | ||||
|         "node_modules/webcomponent-qr-code": { | ||||
|             "version": "1.0.5", | ||||
|             "resolved": "https://registry.npmjs.org/webcomponent-qr-code/-/webcomponent-qr-code-1.0.5.tgz", | ||||
|             "integrity": "sha512-uLulSj2nUe8HvhsuXSy8NySz3YPikpA2oIVrv15a4acNoiAdpickMFw5wSgFp7kxEb0twT/wC5VozZQHZhsZIw==", | ||||
|             "version": "1.0.6", | ||||
|             "resolved": "https://registry.npmjs.org/webcomponent-qr-code/-/webcomponent-qr-code-1.0.6.tgz", | ||||
|             "integrity": "sha512-uEsH1rfuLQro8xgiyKHumdMEHeIKOvtS/LlvWTtdQ1ZLJXXpMT0dAqO0TJcXlk/DSHIl7btnq3mUdPR3QBSgNw==", | ||||
|             "dependencies": { | ||||
|                 "qrjs": "^0.1.2" | ||||
|             } | ||||
| @ -8937,22 +8940,22 @@ | ||||
|             } | ||||
|         }, | ||||
|         "@babel/compat-data": { | ||||
|             "version": "7.16.8", | ||||
|             "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.16.8.tgz", | ||||
|             "integrity": "sha512-m7OkX0IdKLKPpBlJtF561YJal5y/jyI5fNfWbPxh2D/nbzzGI4qRyrD8xO2jB24u7l+5I2a43scCG2IrfjC50Q==" | ||||
|             "version": "7.17.7", | ||||
|             "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.17.7.tgz", | ||||
|             "integrity": "sha512-p8pdE6j0a29TNGebNm7NzYZWB3xVZJBZ7XGs42uAKzQo8VQ3F0By/cQCtUEABwIqw5zo6WA4NbmxsfzADzMKnQ==" | ||||
|         }, | ||||
|         "@babel/core": { | ||||
|             "version": "7.17.5", | ||||
|             "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.17.5.tgz", | ||||
|             "integrity": "sha512-/BBMw4EvjmyquN5O+t5eh0+YqB3XXJkYD2cjKpYtWOfFy4lQ4UozNSmxAcWT8r2XtZs0ewG+zrfsqeR15i1ajA==", | ||||
|             "version": "7.17.8", | ||||
|             "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.17.8.tgz", | ||||
|             "integrity": "sha512-OdQDV/7cRBtJHLSOBqqbYNkOcydOgnX59TZx4puf41fzcVtN3e/4yqY8lMQsK+5X2lJtAdmA+6OHqsj1hBJ4IQ==", | ||||
|             "requires": { | ||||
|                 "@ampproject/remapping": "^2.1.0", | ||||
|                 "@babel/code-frame": "^7.16.7", | ||||
|                 "@babel/generator": "^7.17.3", | ||||
|                 "@babel/helper-compilation-targets": "^7.16.7", | ||||
|                 "@babel/helper-module-transforms": "^7.16.7", | ||||
|                 "@babel/helpers": "^7.17.2", | ||||
|                 "@babel/parser": "^7.17.3", | ||||
|                 "@babel/generator": "^7.17.7", | ||||
|                 "@babel/helper-compilation-targets": "^7.17.7", | ||||
|                 "@babel/helper-module-transforms": "^7.17.7", | ||||
|                 "@babel/helpers": "^7.17.8", | ||||
|                 "@babel/parser": "^7.17.8", | ||||
|                 "@babel/template": "^7.16.7", | ||||
|                 "@babel/traverse": "^7.17.3", | ||||
|                 "@babel/types": "^7.17.0", | ||||
| @ -8964,9 +8967,9 @@ | ||||
|             } | ||||
|         }, | ||||
|         "@babel/generator": { | ||||
|             "version": "7.17.3", | ||||
|             "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.17.3.tgz", | ||||
|             "integrity": "sha512-+R6Dctil/MgUsZsZAkYgK+ADNSZzJRRy0TvY65T71z/CR854xHQ1EweBYXdfT+HNeN7w0cSJJEzgxZMv40pxsg==", | ||||
|             "version": "7.17.7", | ||||
|             "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.17.7.tgz", | ||||
|             "integrity": "sha512-oLcVCTeIFadUoArDTwpluncplrYBmTCCZZgXCbgNGvOBBiSDDK3eWO4b/+eOTli5tKv1lg+a5/NAXg+nTcei1w==", | ||||
|             "requires": { | ||||
|                 "@babel/types": "^7.17.0", | ||||
|                 "jsesc": "^2.5.1", | ||||
| @ -8991,20 +8994,20 @@ | ||||
|             } | ||||
|         }, | ||||
|         "@babel/helper-compilation-targets": { | ||||
|             "version": "7.16.7", | ||||
|             "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.16.7.tgz", | ||||
|             "integrity": "sha512-mGojBwIWcwGD6rfqgRXVlVYmPAv7eOpIemUG3dGnDdCY4Pae70ROij3XmfrH6Fa1h1aiDylpglbZyktfzyo/hA==", | ||||
|             "version": "7.17.7", | ||||
|             "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.17.7.tgz", | ||||
|             "integrity": "sha512-UFzlz2jjd8kroj0hmCFV5zr+tQPi1dpC2cRsDV/3IEW8bJfCPrPpmcSN6ZS8RqIq4LXcmpipCQFPddyFA5Yc7w==", | ||||
|             "requires": { | ||||
|                 "@babel/compat-data": "^7.16.4", | ||||
|                 "@babel/compat-data": "^7.17.7", | ||||
|                 "@babel/helper-validator-option": "^7.16.7", | ||||
|                 "browserslist": "^4.17.5", | ||||
|                 "semver": "^6.3.0" | ||||
|             } | ||||
|         }, | ||||
|         "@babel/helper-create-class-features-plugin": { | ||||
|             "version": "7.17.1", | ||||
|             "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.17.1.tgz", | ||||
|             "integrity": "sha512-JBdSr/LtyYIno/pNnJ75lBcqc3Z1XXujzPanHqjvvrhOA+DTceTFuJi8XjmWTZh4r3fsdfqaCMN0iZemdkxZHQ==", | ||||
|             "version": "7.17.6", | ||||
|             "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.17.6.tgz", | ||||
|             "integrity": "sha512-SogLLSxXm2OkBbSsHZMM4tUi8fUzjs63AT/d0YQIzr6GSd8Hxsbk2KYDX0k0DweAzGMj/YWeiCsorIdtdcW8Eg==", | ||||
|             "requires": { | ||||
|                 "@babel/helper-annotate-as-pure": "^7.16.7", | ||||
|                 "@babel/helper-environment-visitor": "^7.16.7", | ||||
| @ -9098,18 +9101,18 @@ | ||||
|             } | ||||
|         }, | ||||
|         "@babel/helper-module-transforms": { | ||||
|             "version": "7.16.7", | ||||
|             "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.16.7.tgz", | ||||
|             "integrity": "sha512-gaqtLDxJEFCeQbYp9aLAefjhkKdjKcdh6DB7jniIGU3Pz52WAmP268zK0VgPz9hUNkMSYeH976K2/Y6yPadpng==", | ||||
|             "version": "7.17.7", | ||||
|             "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.17.7.tgz", | ||||
|             "integrity": "sha512-VmZD99F3gNTYB7fJRDTi+u6l/zxY0BE6OIxPSU7a50s6ZUQkHwSDmV92FfM+oCG0pZRVojGYhkR8I0OGeCVREw==", | ||||
|             "requires": { | ||||
|                 "@babel/helper-environment-visitor": "^7.16.7", | ||||
|                 "@babel/helper-module-imports": "^7.16.7", | ||||
|                 "@babel/helper-simple-access": "^7.16.7", | ||||
|                 "@babel/helper-simple-access": "^7.17.7", | ||||
|                 "@babel/helper-split-export-declaration": "^7.16.7", | ||||
|                 "@babel/helper-validator-identifier": "^7.16.7", | ||||
|                 "@babel/template": "^7.16.7", | ||||
|                 "@babel/traverse": "^7.16.7", | ||||
|                 "@babel/types": "^7.16.7" | ||||
|                 "@babel/traverse": "^7.17.3", | ||||
|                 "@babel/types": "^7.17.0" | ||||
|             } | ||||
|         }, | ||||
|         "@babel/helper-optimise-call-expression": { | ||||
| @ -9148,11 +9151,11 @@ | ||||
|             } | ||||
|         }, | ||||
|         "@babel/helper-simple-access": { | ||||
|             "version": "7.16.7", | ||||
|             "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.16.7.tgz", | ||||
|             "integrity": "sha512-ZIzHVyoeLMvXMN/vok/a4LWRy8G2v205mNP0XOuf9XRLyX5/u9CnVulUtDgUTama3lT+bf/UqucuZjqiGuTS1g==", | ||||
|             "version": "7.17.7", | ||||
|             "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.17.7.tgz", | ||||
|             "integrity": "sha512-txyMCGroZ96i+Pxr3Je3lzEJjqwaRC9buMUgtomcrLe5Nd0+fk1h0LLA+ixUF5OW7AhHuQ7Es1WcQJZmZsz2XA==", | ||||
|             "requires": { | ||||
|                 "@babel/types": "^7.16.7" | ||||
|                 "@babel/types": "^7.17.0" | ||||
|             } | ||||
|         }, | ||||
|         "@babel/helper-skip-transparent-expression-wrappers": { | ||||
| @ -9193,12 +9196,12 @@ | ||||
|             } | ||||
|         }, | ||||
|         "@babel/helpers": { | ||||
|             "version": "7.17.2", | ||||
|             "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.17.2.tgz", | ||||
|             "integrity": "sha512-0Qu7RLR1dILozr/6M0xgj+DFPmi6Bnulgm9M8BVa9ZCWxDqlSnqt3cf8IDPB5m45sVXUZ0kuQAgUrdSFFH79fQ==", | ||||
|             "version": "7.17.8", | ||||
|             "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.17.8.tgz", | ||||
|             "integrity": "sha512-QcL86FGxpfSJwGtAvv4iG93UL6bmqBdmoVY0CMCU2g+oD2ezQse3PT5Pa+jiD6LJndBQi0EDlpzOWNlLuhz5gw==", | ||||
|             "requires": { | ||||
|                 "@babel/template": "^7.16.7", | ||||
|                 "@babel/traverse": "^7.17.0", | ||||
|                 "@babel/traverse": "^7.17.3", | ||||
|                 "@babel/types": "^7.17.0" | ||||
|             } | ||||
|         }, | ||||
| @ -9213,9 +9216,9 @@ | ||||
|             } | ||||
|         }, | ||||
|         "@babel/parser": { | ||||
|             "version": "7.17.3", | ||||
|             "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.17.3.tgz", | ||||
|             "integrity": "sha512-7yJPvPV+ESz2IUTPbOL+YkIGyCqOyNIzdguKQuJGnH7bg1WTIifuM21YqokFt/THWh1AkCRn9IgoykTRCBVpzA==" | ||||
|             "version": "7.17.8", | ||||
|             "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.17.8.tgz", | ||||
|             "integrity": "sha512-BoHhDJrJXqcg+ZL16Xv39H9n+AqJ4pcDrQBGZN+wHxIysrLZ3/ECwCBUch/1zUNhnsXULcONU3Ei5Hmkfk6kiQ==" | ||||
|         }, | ||||
|         "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": { | ||||
|             "version": "7.16.7", | ||||
| @ -9265,11 +9268,11 @@ | ||||
|             } | ||||
|         }, | ||||
|         "@babel/plugin-proposal-decorators": { | ||||
|             "version": "7.17.2", | ||||
|             "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-decorators/-/plugin-proposal-decorators-7.17.2.tgz", | ||||
|             "integrity": "sha512-WH8Z95CwTq/W8rFbMqb9p3hicpt4RX4f0K659ax2VHxgOyT6qQmUaEVEjIh4WR9Eh9NymkVn5vwsrE68fAQNUw==", | ||||
|             "version": "7.17.8", | ||||
|             "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-decorators/-/plugin-proposal-decorators-7.17.8.tgz", | ||||
|             "integrity": "sha512-U69odN4Umyyx1xO1rTII0IDkAEC+RNlcKXtqOblfpzqy1C+aOplb76BQNq0+XdpVkOaPlpEDwd++joY8FNFJKA==", | ||||
|             "requires": { | ||||
|                 "@babel/helper-create-class-features-plugin": "^7.17.1", | ||||
|                 "@babel/helper-create-class-features-plugin": "^7.17.6", | ||||
|                 "@babel/helper-plugin-utils": "^7.16.7", | ||||
|                 "@babel/helper-replace-supers": "^7.16.7", | ||||
|                 "@babel/plugin-syntax-decorators": "^7.17.0", | ||||
| @ -10057,14 +10060,14 @@ | ||||
|             } | ||||
|         }, | ||||
|         "@fortawesome/fontawesome-free": { | ||||
|             "version": "6.0.0", | ||||
|             "resolved": "https://registry.npmjs.org/@fortawesome/fontawesome-free/-/fontawesome-free-6.0.0.tgz", | ||||
|             "integrity": "sha512-6LB4PYBST1Rx40klypw1SmSDArjFOcfBf2LeX9Zg5EKJT2eXiyiJq+CyBYKeXyK0sXS2FsCJWSPr/luyhuvh0Q==" | ||||
|             "version": "6.1.0", | ||||
|             "resolved": "https://registry.npmjs.org/@fortawesome/fontawesome-free/-/fontawesome-free-6.1.0.tgz", | ||||
|             "integrity": "sha512-OgM74M6+Q7BuKAj8r+VfzwjnIGZrY62R4ipbiDvBW4FA0mLnB3yeuV/2bW63j+zppGyTvBp/3jqXp9ZXy43nFw==" | ||||
|         }, | ||||
|         "@goauthentik/api": { | ||||
|             "version": "2022.3.1-1647250825", | ||||
|             "resolved": "https://registry.npmjs.org/@goauthentik/api/-/api-2022.3.1-1647250825.tgz", | ||||
|             "integrity": "sha512-dhGE3Dj8vdyb8E4uCOfnKWXVN4N+elYcP7xT4tWZDzwwmlRxb3HU2I8OOrxJgVKmeICIaJtQu3/Ld6AmakJJCQ==" | ||||
|             "version": "2022.3.2-1647336362", | ||||
|             "resolved": "https://registry.npmjs.org/@goauthentik/api/-/api-2022.3.2-1647336362.tgz", | ||||
|             "integrity": "sha512-BU+FkUDEACeIfvdBw5A8WAKC6xZZ43kpyu7kE4jRe2ltNr3YjgWGgGdQFcPte4wHACDsZ6SLxwhujGjvCGX7iw==" | ||||
|         }, | ||||
|         "@humanwhocodes/config-array": { | ||||
|             "version": "0.9.2", | ||||
| @ -10884,9 +10887,9 @@ | ||||
|             } | ||||
|         }, | ||||
|         "@types/grecaptcha": { | ||||
|             "version": "3.0.3", | ||||
|             "resolved": "https://registry.npmjs.org/@types/grecaptcha/-/grecaptcha-3.0.3.tgz", | ||||
|             "integrity": "sha512-osLqWRzsRsDtCfiCl1lbtUY8ANGCQsG/hhht3E7g1pVT7fD5SXgAg53S2grKjjSkXcm0fvMDbhUeL9NyAJvzGQ==" | ||||
|             "version": "3.0.4", | ||||
|             "resolved": "https://registry.npmjs.org/@types/grecaptcha/-/grecaptcha-3.0.4.tgz", | ||||
|             "integrity": "sha512-7l1Y8DTGXkx/r4pwU1nMVAR+yD/QC+MCHKXAyEX/7JZhwcN1IED09aZ9vCjjkcGdhSQiu/eJqcXInpl6eEEEwg==" | ||||
|         }, | ||||
|         "@types/html-minifier": { | ||||
|             "version": "3.5.3", | ||||
| @ -10986,13 +10989,13 @@ | ||||
|             "integrity": "sha512-7tFImggNeNBVMsn0vLrpn1H1uPrUBdnARPTpZoitY37ZrdJREzf7I16tMrlK3hen349gr1NYh8CmZQa7CTG6Aw==" | ||||
|         }, | ||||
|         "@typescript-eslint/eslint-plugin": { | ||||
|             "version": "5.14.0", | ||||
|             "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.14.0.tgz", | ||||
|             "integrity": "sha512-ir0wYI4FfFUDfLcuwKzIH7sMVA+db7WYen47iRSaCGl+HMAZI9fpBwfDo45ZALD3A45ZGyHWDNLhbg8tZrMX4w==", | ||||
|             "version": "5.15.0", | ||||
|             "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.15.0.tgz", | ||||
|             "integrity": "sha512-u6Db5JfF0Esn3tiAKELvoU5TpXVSkOpZ78cEGn/wXtT2RVqs2vkt4ge6N8cRCyw7YVKhmmLDbwI2pg92mlv7cA==", | ||||
|             "requires": { | ||||
|                 "@typescript-eslint/scope-manager": "5.14.0", | ||||
|                 "@typescript-eslint/type-utils": "5.14.0", | ||||
|                 "@typescript-eslint/utils": "5.14.0", | ||||
|                 "@typescript-eslint/scope-manager": "5.15.0", | ||||
|                 "@typescript-eslint/type-utils": "5.15.0", | ||||
|                 "@typescript-eslint/utils": "5.15.0", | ||||
|                 "debug": "^4.3.2", | ||||
|                 "functional-red-black-tree": "^1.0.1", | ||||
|                 "ignore": "^5.1.8", | ||||
| @ -11012,47 +11015,47 @@ | ||||
|             } | ||||
|         }, | ||||
|         "@typescript-eslint/parser": { | ||||
|             "version": "5.14.0", | ||||
|             "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-5.14.0.tgz", | ||||
|             "integrity": "sha512-aHJN8/FuIy1Zvqk4U/gcO/fxeMKyoSv/rS46UXMXOJKVsLQ+iYPuXNbpbH7cBLcpSbmyyFbwrniLx5+kutu1pw==", | ||||
|             "version": "5.15.0", | ||||
|             "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-5.15.0.tgz", | ||||
|             "integrity": "sha512-NGAYP/+RDM2sVfmKiKOCgJYPstAO40vPAgACoWPO/+yoYKSgAXIFaBKsV8P0Cc7fwKgvj27SjRNX4L7f4/jCKQ==", | ||||
|             "requires": { | ||||
|                 "@typescript-eslint/scope-manager": "5.14.0", | ||||
|                 "@typescript-eslint/types": "5.14.0", | ||||
|                 "@typescript-eslint/typescript-estree": "5.14.0", | ||||
|                 "@typescript-eslint/scope-manager": "5.15.0", | ||||
|                 "@typescript-eslint/types": "5.15.0", | ||||
|                 "@typescript-eslint/typescript-estree": "5.15.0", | ||||
|                 "debug": "^4.3.2" | ||||
|             } | ||||
|         }, | ||||
|         "@typescript-eslint/scope-manager": { | ||||
|             "version": "5.14.0", | ||||
|             "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.14.0.tgz", | ||||
|             "integrity": "sha512-LazdcMlGnv+xUc5R4qIlqH0OWARyl2kaP8pVCS39qSL3Pd1F7mI10DbdXeARcE62sVQE4fHNvEqMWsypWO+yEw==", | ||||
|             "version": "5.15.0", | ||||
|             "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.15.0.tgz", | ||||
|             "integrity": "sha512-EFiZcSKrHh4kWk0pZaa+YNJosvKE50EnmN4IfgjkA3bTHElPtYcd2U37QQkNTqwMCS7LXeDeZzEqnsOH8chjSg==", | ||||
|             "requires": { | ||||
|                 "@typescript-eslint/types": "5.14.0", | ||||
|                 "@typescript-eslint/visitor-keys": "5.14.0" | ||||
|                 "@typescript-eslint/types": "5.15.0", | ||||
|                 "@typescript-eslint/visitor-keys": "5.15.0" | ||||
|             } | ||||
|         }, | ||||
|         "@typescript-eslint/type-utils": { | ||||
|             "version": "5.14.0", | ||||
|             "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-5.14.0.tgz", | ||||
|             "integrity": "sha512-d4PTJxsqaUpv8iERTDSQBKUCV7Q5yyXjqXUl3XF7Sd9ogNLuKLkxz82qxokqQ4jXdTPZudWpmNtr/JjbbvUixw==", | ||||
|             "version": "5.15.0", | ||||
|             "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-5.15.0.tgz", | ||||
|             "integrity": "sha512-KGeDoEQ7gHieLydujGEFLyLofipe9PIzfvA/41urz4hv+xVxPEbmMQonKSynZ0Ks2xDhJQ4VYjB3DnRiywvKDA==", | ||||
|             "requires": { | ||||
|                 "@typescript-eslint/utils": "5.14.0", | ||||
|                 "@typescript-eslint/utils": "5.15.0", | ||||
|                 "debug": "^4.3.2", | ||||
|                 "tsutils": "^3.21.0" | ||||
|             } | ||||
|         }, | ||||
|         "@typescript-eslint/types": { | ||||
|             "version": "5.14.0", | ||||
|             "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.14.0.tgz", | ||||
|             "integrity": "sha512-BR6Y9eE9360LNnW3eEUqAg6HxS9Q35kSIs4rp4vNHRdfg0s+/PgHgskvu5DFTM7G5VKAVjuyaN476LCPrdA7Mw==" | ||||
|             "version": "5.15.0", | ||||
|             "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.15.0.tgz", | ||||
|             "integrity": "sha512-yEiTN4MDy23vvsIksrShjNwQl2vl6kJeG9YkVJXjXZnkJElzVK8nfPsWKYxcsGWG8GhurYXP4/KGj3aZAxbeOA==" | ||||
|         }, | ||||
|         "@typescript-eslint/typescript-estree": { | ||||
|             "version": "5.14.0", | ||||
|             "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.14.0.tgz", | ||||
|             "integrity": "sha512-QGnxvROrCVtLQ1724GLTHBTR0lZVu13izOp9njRvMkCBgWX26PKvmMP8k82nmXBRD3DQcFFq2oj3cKDwr0FaUA==", | ||||
|             "version": "5.15.0", | ||||
|             "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.15.0.tgz", | ||||
|             "integrity": "sha512-Hb0e3dGc35b75xLzixM3cSbG1sSbrTBQDfIScqdyvrfJZVEi4XWAT+UL/HMxEdrJNB8Yk28SKxPLtAhfCbBInA==", | ||||
|             "requires": { | ||||
|                 "@typescript-eslint/types": "5.14.0", | ||||
|                 "@typescript-eslint/visitor-keys": "5.14.0", | ||||
|                 "@typescript-eslint/types": "5.15.0", | ||||
|                 "@typescript-eslint/visitor-keys": "5.15.0", | ||||
|                 "debug": "^4.3.2", | ||||
|                 "globby": "^11.0.4", | ||||
|                 "is-glob": "^4.0.3", | ||||
| @ -11071,24 +11074,24 @@ | ||||
|             } | ||||
|         }, | ||||
|         "@typescript-eslint/utils": { | ||||
|             "version": "5.14.0", | ||||
|             "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-5.14.0.tgz", | ||||
|             "integrity": "sha512-EHwlII5mvUA0UsKYnVzySb/5EE/t03duUTweVy8Zqt3UQXBrpEVY144OTceFKaOe4xQXZJrkptCf7PjEBeGK4w==", | ||||
|             "version": "5.15.0", | ||||
|             "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-5.15.0.tgz", | ||||
|             "integrity": "sha512-081rWu2IPKOgTOhHUk/QfxuFog8m4wxW43sXNOMSCdh578tGJ1PAaWPsj42LOa7pguh173tNlMigsbrHvh/mtA==", | ||||
|             "requires": { | ||||
|                 "@types/json-schema": "^7.0.9", | ||||
|                 "@typescript-eslint/scope-manager": "5.14.0", | ||||
|                 "@typescript-eslint/types": "5.14.0", | ||||
|                 "@typescript-eslint/typescript-estree": "5.14.0", | ||||
|                 "@typescript-eslint/scope-manager": "5.15.0", | ||||
|                 "@typescript-eslint/types": "5.15.0", | ||||
|                 "@typescript-eslint/typescript-estree": "5.15.0", | ||||
|                 "eslint-scope": "^5.1.1", | ||||
|                 "eslint-utils": "^3.0.0" | ||||
|             } | ||||
|         }, | ||||
|         "@typescript-eslint/visitor-keys": { | ||||
|             "version": "5.14.0", | ||||
|             "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.14.0.tgz", | ||||
|             "integrity": "sha512-yL0XxfzR94UEkjBqyymMLgCBdojzEuy/eim7N9/RIcTNxpJudAcqsU8eRyfzBbcEzGoPWfdM3AGak3cN08WOIw==", | ||||
|             "version": "5.15.0", | ||||
|             "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.15.0.tgz", | ||||
|             "integrity": "sha512-+vX5FKtgvyHbmIJdxMJ2jKm9z2BIlXJiuewI8dsDYMp5LzPUcuTT78Ya5iwvQg3VqSVdmxyM8Anj1Jeq7733ZQ==", | ||||
|             "requires": { | ||||
|                 "@typescript-eslint/types": "5.14.0", | ||||
|                 "@typescript-eslint/types": "5.15.0", | ||||
|                 "eslint-visitor-keys": "^3.0.0" | ||||
|             }, | ||||
|             "dependencies": { | ||||
| @ -11715,9 +11718,9 @@ | ||||
|             } | ||||
|         }, | ||||
|         "country-flag-icons": { | ||||
|             "version": "1.4.21", | ||||
|             "resolved": "https://registry.npmjs.org/country-flag-icons/-/country-flag-icons-1.4.21.tgz", | ||||
|             "integrity": "sha512-bA9jDr+T5li7EsKdDx0xVnO0bdMdoT8IA3BNbeT2XSWUygR1okhiZ2+eYiC1EKLrFZhI4aEHni2w03lUlOjogg==" | ||||
|             "version": "1.4.24", | ||||
|             "resolved": "https://registry.npmjs.org/country-flag-icons/-/country-flag-icons-1.4.24.tgz", | ||||
|             "integrity": "sha512-yUphht6AbH5OEbj1DGbG/sTenyRV2SEyW64JQazlmHV/ArFV8lQRQ5fvO4e8L7dC5UV95c21hJ1FEfu49WogbQ==" | ||||
|         }, | ||||
|         "create-require": { | ||||
|             "version": "1.1.1", | ||||
| @ -13085,9 +13088,9 @@ | ||||
|             "integrity": "sha1-HADHQ7QzzQpOgHWPe2SldEDZ/wA=" | ||||
|         }, | ||||
|         "lit": { | ||||
|             "version": "2.2.0", | ||||
|             "resolved": "https://registry.npmjs.org/lit/-/lit-2.2.0.tgz", | ||||
|             "integrity": "sha512-FDyxUuczo6cJJY/2Bkgfh1872U4ikUvmK1Cb6+lYC1CW+QOo8CaWXCpvPKFzYsz0ojUxoruBLVrECc7VI2f1dQ==", | ||||
|             "version": "2.2.1", | ||||
|             "resolved": "https://registry.npmjs.org/lit/-/lit-2.2.1.tgz", | ||||
|             "integrity": "sha512-dSe++R50JqrvNGXmI9OE13de1z5U/Y3J2dTm/9GC86vedI8ILoR8ZGnxfThFpvQ9m0lR0qRnIR4IiKj/jDCfYw==", | ||||
|             "requires": { | ||||
|                 "@lit/reactive-element": "^1.3.0", | ||||
|                 "lit-element": "^3.2.0", | ||||
| @ -13908,9 +13911,9 @@ | ||||
|             "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==" | ||||
|         }, | ||||
|         "prettier": { | ||||
|             "version": "2.5.1", | ||||
|             "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.5.1.tgz", | ||||
|             "integrity": "sha512-vBZcPRUR5MZJwoyi3ZoyQlc1rXeEck8KgeC9AwwOn+exuxLxq5toTRDTSaVrXHxelDMHy9zlicw8u66yxoSUFg==" | ||||
|             "version": "2.6.0", | ||||
|             "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.6.0.tgz", | ||||
|             "integrity": "sha512-m2FgJibYrBGGgQXNzfd0PuDGShJgRavjUoRCw1mZERIWVSXF0iLzLm+aOqTAbLnC3n6JzUhAA8uZnFVghHJ86A==" | ||||
|         }, | ||||
|         "pretty-format": { | ||||
|             "version": "26.6.2", | ||||
| @ -14215,9 +14218,9 @@ | ||||
|             } | ||||
|         }, | ||||
|         "rollup": { | ||||
|             "version": "2.70.0", | ||||
|             "resolved": "https://registry.npmjs.org/rollup/-/rollup-2.70.0.tgz", | ||||
|             "integrity": "sha512-iEzYw+syFxQ0X9RefVwhr8BA2TNJsTaX8L8dhyeyMECDbmiba+8UQzcu+xZdji0+JQ+s7kouQnw+9Oz5M19XKA==", | ||||
|             "version": "2.70.1", | ||||
|             "resolved": "https://registry.npmjs.org/rollup/-/rollup-2.70.1.tgz", | ||||
|             "integrity": "sha512-CRYsI5EuzLbXdxC6RnYhOuRdtz4bhejPMSWjsFLfVM/7w/85n2szZv6yExqUXsBdz5KT8eoubeyDUDjhLHEslA==", | ||||
|             "requires": { | ||||
|                 "fsevents": "~2.3.2" | ||||
|             } | ||||
| @ -15318,9 +15321,9 @@ | ||||
|             "integrity": "sha512-Czi3fG883e96T4DLEPRvufrF2ydhOOW1+1a6c3gNjH2aIh50DNFBdfwh2AKoOf1rXvpvavAoA11Qdq9+BKjE0Q==" | ||||
|         }, | ||||
|         "webcomponent-qr-code": { | ||||
|             "version": "1.0.5", | ||||
|             "resolved": "https://registry.npmjs.org/webcomponent-qr-code/-/webcomponent-qr-code-1.0.5.tgz", | ||||
|             "integrity": "sha512-uLulSj2nUe8HvhsuXSy8NySz3YPikpA2oIVrv15a4acNoiAdpickMFw5wSgFp7kxEb0twT/wC5VozZQHZhsZIw==", | ||||
|             "version": "1.0.6", | ||||
|             "resolved": "https://registry.npmjs.org/webcomponent-qr-code/-/webcomponent-qr-code-1.0.6.tgz", | ||||
|             "integrity": "sha512-uEsH1rfuLQro8xgiyKHumdMEHeIKOvtS/LlvWTtdQ1ZLJXXpMT0dAqO0TJcXlk/DSHIl7btnq3mUdPR3QBSgNw==", | ||||
|             "requires": { | ||||
|                 "qrjs": "^0.1.2" | ||||
|             } | ||||
|  | ||||
| @ -52,14 +52,14 @@ | ||||
|         ] | ||||
|     }, | ||||
|     "dependencies": { | ||||
|         "@babel/core": "^7.17.5", | ||||
|         "@babel/plugin-proposal-decorators": "^7.17.2", | ||||
|         "@babel/core": "^7.17.8", | ||||
|         "@babel/plugin-proposal-decorators": "^7.17.8", | ||||
|         "@babel/plugin-transform-runtime": "^7.17.0", | ||||
|         "@babel/preset-env": "^7.16.11", | ||||
|         "@babel/preset-typescript": "^7.16.7", | ||||
|         "@formatjs/intl-listformat": "^6.5.2", | ||||
|         "@fortawesome/fontawesome-free": "^6.0.0", | ||||
|         "@goauthentik/api": "^2022.3.1-1647250825", | ||||
|         "@fortawesome/fontawesome-free": "^6.1.0", | ||||
|         "@goauthentik/api": "^2022.3.2-1647336362", | ||||
|         "@jackfranklin/rollup-plugin-markdown": "^0.3.0", | ||||
|         "@lingui/cli": "^3.13.2", | ||||
|         "@lingui/core": "^3.13.2", | ||||
| @ -79,9 +79,9 @@ | ||||
|         "@trivago/prettier-plugin-sort-imports": "^3.2.0", | ||||
|         "@types/chart.js": "^2.9.35", | ||||
|         "@types/codemirror": "5.60.5", | ||||
|         "@types/grecaptcha": "^3.0.3", | ||||
|         "@typescript-eslint/eslint-plugin": "^5.14.0", | ||||
|         "@typescript-eslint/parser": "^5.14.0", | ||||
|         "@types/grecaptcha": "^3.0.4", | ||||
|         "@typescript-eslint/eslint-plugin": "^5.15.0", | ||||
|         "@typescript-eslint/parser": "^5.15.0", | ||||
|         "@webcomponents/webcomponentsjs": "^2.6.0", | ||||
|         "babel-plugin-macros": "^3.1.0", | ||||
|         "base64-js": "^1.5.1", | ||||
| @ -89,18 +89,18 @@ | ||||
|         "chartjs-adapter-moment": "^1.0.0", | ||||
|         "codemirror": "^5.65.2", | ||||
|         "construct-style-sheets-polyfill": "^3.1.0", | ||||
|         "country-flag-icons": "^1.4.21", | ||||
|         "country-flag-icons": "^1.4.24", | ||||
|         "eslint": "^8.11.0", | ||||
|         "eslint-config-google": "^0.14.0", | ||||
|         "eslint-plugin-custom-elements": "0.0.4", | ||||
|         "eslint-plugin-lit": "^1.6.1", | ||||
|         "flowchart.js": "^1.17.1", | ||||
|         "fuse.js": "^6.5.3", | ||||
|         "lit": "^2.2.0", | ||||
|         "lit": "^2.2.1", | ||||
|         "moment": "^2.29.1", | ||||
|         "prettier": "^2.5.1", | ||||
|         "prettier": "^2.6.0", | ||||
|         "rapidoc": "^9.2.0", | ||||
|         "rollup": "^2.70.0", | ||||
|         "rollup": "^2.70.1", | ||||
|         "rollup-plugin-copy": "^3.4.0", | ||||
|         "rollup-plugin-cssimport": "^1.0.2", | ||||
|         "rollup-plugin-minify-html-literals": "^1.2.6", | ||||
| @ -109,7 +109,7 @@ | ||||
|         "ts-lit-plugin": "^1.2.1", | ||||
|         "tslib": "^2.3.1", | ||||
|         "typescript": "^4.6.2", | ||||
|         "webcomponent-qr-code": "^1.0.5", | ||||
|         "webcomponent-qr-code": "^1.0.6", | ||||
|         "yaml": "^1.10.2" | ||||
|     } | ||||
| } | ||||
|  | ||||
| @ -223,8 +223,8 @@ html > form > input { | ||||
|     option { | ||||
|         color: var(--ak-dark-foreground); | ||||
|     } | ||||
|     optgroup:checked, | ||||
|     option:checked { | ||||
|     select[multiple] optgroup:checked, | ||||
|     select[multiple] option:checked { | ||||
|         color: var(--ak-dark-background); | ||||
|     } | ||||
|     .pf-c-input-group { | ||||
|  | ||||
| @ -3,7 +3,7 @@ export const SUCCESS_CLASS = "pf-m-success"; | ||||
| export const ERROR_CLASS = "pf-m-danger"; | ||||
| export const PROGRESS_CLASS = "pf-m-in-progress"; | ||||
| export const CURRENT_CLASS = "pf-m-current"; | ||||
| export const VERSION = "2022.3.2"; | ||||
| export const VERSION = "2022.3.3"; | ||||
| export const TITLE_DEFAULT = "authentik"; | ||||
| export const ROUTE_SEPARATOR = ";"; | ||||
|  | ||||
|  | ||||
| @ -26,6 +26,9 @@ export class SearchSelect<T> extends LitElement { | ||||
|     @property({ type: Boolean }) | ||||
|     open = false; | ||||
|  | ||||
|     @property({ type: Boolean }) | ||||
|     blankable = false; | ||||
|  | ||||
|     @property() | ||||
|     placeholder: string = t`Select an object.`; | ||||
|  | ||||
| @ -82,6 +85,22 @@ export class SearchSelect<T> extends LitElement { | ||||
|             </div> | ||||
|  | ||||
|             <ul class="pf-c-select__menu" role="listbox" ?hidden="${!this.open}"> | ||||
|                 ${this.blankable | ||||
|                     ? html` | ||||
|                           <li role="presentation"> | ||||
|                               <button | ||||
|                                   class="pf-c-select__menu-item" | ||||
|                                   role="option" | ||||
|                                   @click=${() => { | ||||
|                                       this.selectedObject = undefined; | ||||
|                                       this.open = false; | ||||
|                                   }} | ||||
|                               > | ||||
|                                   --------- | ||||
|                               </button> | ||||
|                           </li> | ||||
|                       ` | ||||
|                     : html``} | ||||
|                 ${this.objects.map((obj) => { | ||||
|                     return html` | ||||
|                         <li role="presentation"> | ||||
|  | ||||
| @ -6181,6 +6181,10 @@ msgstr "Die Referenz wird auf den Standardwert zurückgesetzt" | ||||
| msgid "reference will be set to an empty value" | ||||
| msgstr "Referenz wird auf einen leeren Wert gesetzt" | ||||
|  | ||||
| #: src/pages/flows/FlowViewPage.ts | ||||
| msgid "with current user" | ||||
| msgstr "" | ||||
|  | ||||
| #: src/pages/flows/FlowViewPage.ts | ||||
| msgid "with inspector" | ||||
| msgstr "Mit Inspektor" | ||||
|  | ||||
| @ -6303,6 +6303,10 @@ msgstr "reference will be reset to default value" | ||||
| msgid "reference will be set to an empty value" | ||||
| msgstr "reference will be set to an empty value" | ||||
|  | ||||
| #: src/pages/flows/FlowViewPage.ts | ||||
| msgid "with current user" | ||||
| msgstr "with current user" | ||||
|  | ||||
| #: src/pages/flows/FlowViewPage.ts | ||||
| msgid "with inspector" | ||||
| msgstr "with inspector" | ||||
|  | ||||
| @ -6175,6 +6175,10 @@ msgstr "la referencia se restablecerá al valor predeterminado" | ||||
| msgid "reference will be set to an empty value" | ||||
| msgstr "la referencia se establecerá en un valor vacío" | ||||
|  | ||||
| #: src/pages/flows/FlowViewPage.ts | ||||
| msgid "with current user" | ||||
| msgstr "" | ||||
|  | ||||
| #: src/pages/flows/FlowViewPage.ts | ||||
| msgid "with inspector" | ||||
| msgstr "con inspector" | ||||
|  | ||||
| @ -6236,6 +6236,10 @@ msgstr "la référence sera réinitialisée à sa valeur par défaut" | ||||
| msgid "reference will be set to an empty value" | ||||
| msgstr "la référence sera réinitialisée à une valeur vide" | ||||
|  | ||||
| #: src/pages/flows/FlowViewPage.ts | ||||
| msgid "with current user" | ||||
| msgstr "" | ||||
|  | ||||
| #: src/pages/flows/FlowViewPage.ts | ||||
| msgid "with inspector" | ||||
| msgstr "" | ||||
|  | ||||
| @ -6172,6 +6172,10 @@ msgstr "odniesienie zostanie zresetowane do wartości domyślnej" | ||||
| msgid "reference will be set to an empty value" | ||||
| msgstr "referencja zostanie ustawiona na pustą wartość" | ||||
|  | ||||
| #: src/pages/flows/FlowViewPage.ts | ||||
| msgid "with current user" | ||||
| msgstr "" | ||||
|  | ||||
| #: src/pages/flows/FlowViewPage.ts | ||||
| msgid "with inspector" | ||||
| msgstr "z inspektorem" | ||||
|  | ||||
| @ -6279,6 +6279,10 @@ msgstr "" | ||||
| msgid "reference will be set to an empty value" | ||||
| msgstr "" | ||||
|  | ||||
| #: src/pages/flows/FlowViewPage.ts | ||||
| msgid "with current user" | ||||
| msgstr "" | ||||
|  | ||||
| #: src/pages/flows/FlowViewPage.ts | ||||
| msgid "with inspector" | ||||
| msgstr "" | ||||
|  | ||||
| @ -6177,6 +6177,10 @@ msgstr "referans varsayılan değere sıfırlanır" | ||||
| msgid "reference will be set to an empty value" | ||||
| msgstr "referans boş bir değere ayarlanacaktır" | ||||
|  | ||||
| #: src/pages/flows/FlowViewPage.ts | ||||
| msgid "with current user" | ||||
| msgstr "" | ||||
|  | ||||
| #: src/pages/flows/FlowViewPage.ts | ||||
| msgid "with inspector" | ||||
| msgstr "müfettiş ile" | ||||
|  | ||||
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							| @ -6317,6 +6317,10 @@ msgstr "引用将被重置为默认值" | ||||
| msgid "reference will be set to an empty value" | ||||
| msgstr "引用将被设置为空值" | ||||
|  | ||||
| #: src/pages/flows/FlowViewPage.ts | ||||
| msgid "with current user" | ||||
| msgstr "以当前用户" | ||||
|  | ||||
| #: src/pages/flows/FlowViewPage.ts | ||||
| msgid "with inspector" | ||||
| msgstr "附加检视器" | ||||
|  | ||||
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							| @ -6,7 +6,7 @@ import { customElement, property } from "lit/decorators.js"; | ||||
| import { Flow, FlowsApi } from "@goauthentik/api"; | ||||
|  | ||||
| import { AKResponse } from "../../api/Client"; | ||||
| import { DEFAULT_CONFIG } from "../../api/Config"; | ||||
| import { AndNext, DEFAULT_CONFIG } from "../../api/Config"; | ||||
| import { uiConfig } from "../../common/config"; | ||||
| import "../../elements/buttons/SpinnerButton"; | ||||
| import "../../elements/forms/ConfirmationForm"; | ||||
| @ -113,17 +113,10 @@ export class FlowListPage extends TablePage<Flow> { | ||||
|                 <button | ||||
|                     class="pf-c-button pf-m-plain" | ||||
|                     @click=${() => { | ||||
|                         new FlowsApi(DEFAULT_CONFIG) | ||||
|                             .flowsInstancesExecuteRetrieve({ | ||||
|                                 slug: item.slug, | ||||
|                             }) | ||||
|                             .then((link) => { | ||||
|                                 window.open( | ||||
|                                     `${link.link}?inspector&next=${encodeURIComponent( | ||||
|                                         `/#${window.location.href}`, | ||||
|                                     )}`, | ||||
|                                 ); | ||||
|                             }); | ||||
|                         const finalURL = `${window.location.origin}/if/flows/${item.slug}/${AndNext( | ||||
|                             `${window.location.pathname}#${window.location.hash}`, | ||||
|                         )}`; | ||||
|                         window.open(finalURL, "_blank"); | ||||
|                     }} | ||||
|                 > | ||||
|                     <i class="fas fa-play"></i> | ||||
|  | ||||
| @ -119,6 +119,19 @@ export class FlowViewPage extends LitElement { | ||||
|                                             <div class="pf-c-description-list__text"> | ||||
|                                                 <button | ||||
|                                                     class="pf-c-button pf-m-primary" | ||||
|                                                     @click=${() => { | ||||
|                                                         const finalURL = `${ | ||||
|                                                             window.location.origin | ||||
|                                                         }/if/flows/${this.flow.slug}/${AndNext( | ||||
|                                                             `${window.location.pathname}#${window.location.hash}`, | ||||
|                                                         )}`; | ||||
|                                                         window.open(finalURL, "_blank"); | ||||
|                                                     }} | ||||
|                                                 > | ||||
|                                                     ${t`Normal`} | ||||
|                                                 </button> | ||||
|                                                 <button | ||||
|                                                     class="pf-c-button pf-m-secondary" | ||||
|                                                     @click=${() => { | ||||
|                                                         new FlowsApi(DEFAULT_CONFIG) | ||||
|                                                             .flowsInstancesExecuteRetrieve({ | ||||
| @ -134,7 +147,7 @@ export class FlowViewPage extends LitElement { | ||||
|                                                             }); | ||||
|                                                     }} | ||||
|                                                 > | ||||
|                                                     ${t`Normal`} | ||||
|                                                     ${t`with current user`} | ||||
|                                                 </button> | ||||
|                                                 <button | ||||
|                                                     class="pf-c-button pf-m-secondary" | ||||
|  | ||||
| @ -222,12 +222,13 @@ export class PolicyBindingForm extends ModelForm<PolicyBinding, string> { | ||||
|                             .renderElement=${(group: Group): string => { | ||||
|                                 return group.name; | ||||
|                             }} | ||||
|                             .value=${(group: Group | undefined): string => { | ||||
|                                 return group ? group.pk : ""; | ||||
|                             .value=${(group: Group | undefined): string | undefined => { | ||||
|                                 return group ? group.pk : undefined; | ||||
|                             }} | ||||
|                             .selected=${(group: Group): boolean => { | ||||
|                                 return group.pk === this.instance?.group; | ||||
|                             }} | ||||
|                             ?blankable=${true} | ||||
|                         > | ||||
|                         </ak-search-select> | ||||
|                         ${this.policyOnly | ||||
| @ -256,12 +257,13 @@ export class PolicyBindingForm extends ModelForm<PolicyBinding, string> { | ||||
|                             .renderElement=${(user: User): string => { | ||||
|                                 return UserOption(user); | ||||
|                             }} | ||||
|                             .value=${(user: User | undefined): number => { | ||||
|                                 return user ? user.pk : 0; | ||||
|                             .value=${(user: User | undefined): number | undefined => { | ||||
|                                 return user ? user.pk : undefined; | ||||
|                             }} | ||||
|                             .selected=${(user: User): boolean => { | ||||
|                                 return user.pk === this.instance?.user; | ||||
|                             }} | ||||
|                             ?blankable=${true} | ||||
|                         > | ||||
|                         </ak-search-select> | ||||
|                         ${this.policyOnly | ||||
|  | ||||
							
								
								
									
										9
									
								
								website/docs/expressions/_user.md
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										9
									
								
								website/docs/expressions/_user.md
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,9 @@ | ||||
| - `user`: The current user. This may be `None` if there is no contextual user. See ([User](../user-group/user.md#object-attributes)) | ||||
|  | ||||
| Example: | ||||
|  | ||||
| ```python | ||||
| return { | ||||
|   "custom_attribute": request.user.attributes.get("custom_attribute", "default"), | ||||
| } | ||||
| ``` | ||||
| @ -17,6 +17,9 @@ import Objects from '../expressions/_objects.md' | ||||
|  | ||||
| <Objects /> | ||||
|  | ||||
| - `user`: The current user. This may be `None` if there is no contextual user. See ([User](../user-group/user.md#object-attributes)) | ||||
| import User from '../expressions/_user.md' | ||||
|  | ||||
| <User /> | ||||
|  | ||||
| - `request`: The current request. This may be `None` if there is no contextual request. See ([Django documentation](https://docs.djangoproject.com/en/3.0/ref/request-response/#httprequest-objects)) | ||||
| - Other arbitrary arguments given by the provider, this is documented on the Provider/Source. | ||||
|  | ||||
| @ -48,6 +48,17 @@ To simplify the release process we don't publish explicitly tagged release-candi | ||||
| - web/user: filter applications by launch URL lto show empty state | ||||
| - web/user: fix duplicate help text in prompts | ||||
|  | ||||
| ## Fixed in 2022.3.3 | ||||
|  | ||||
| - core: fix provider launch URL being prioritised over manually configured launch URL | ||||
| - crypto: open files in read-only mode for importing (#2536) | ||||
| - outposts/ldap: prevent operations error from nil dereference (#2447) | ||||
| - outposts/proxy: use Prefix in ingress for k8s | ||||
| - web: fix style for selected item in select in dark mode | ||||
| - web/admin: default to not include current session in flow play, add option to start with current session | ||||
| - web/admin: fix user defaulting to 0 when not set in PolicyBindingForm | ||||
| - web/elements: make SearchSelect optionally blankable | ||||
|  | ||||
| ## Upgrading | ||||
|  | ||||
| This release does not introduce any new requirements. | ||||
|  | ||||
							
								
								
									
										164
									
								
								website/integrations/services/pfsense/index.md
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										164
									
								
								website/integrations/services/pfsense/index.md
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,164 @@ | ||||
| --- | ||||
| title: pfSense | ||||
| --- | ||||
|  | ||||
| ## What is pfSense | ||||
|  | ||||
| From https://www.pfsense.org/ | ||||
|  | ||||
| :::note | ||||
| The pfSense project is a free network firewall distribution, based on the FreeBSD operating system with a custom kernel and including third party free software packages for additional functionality. | ||||
| ::: | ||||
|  | ||||
| :::note | ||||
| This is based on authentik 2022.3.31 and pfSense 2.6.0-amd64 | ||||
| ::: | ||||
|  | ||||
| ## Preparation | ||||
|  | ||||
| The following placeholders will be used: | ||||
|  | ||||
| - `authentik.company` is the FQDN of authentik. | ||||
| - `pfsense-user` is the name of the authentik Service account we'll create. | ||||
| - `DC=ldap,DC=goauthentik,DC=io` is the Base DN of the LDAP Provider (default) | ||||
|  | ||||
|  | ||||
| ### Step 1 - Service account | ||||
|  | ||||
| In authentik, create a service account (under _Directory/Users_) for pfSense to use as the LDAP Binder and take note of the password generated. | ||||
|  | ||||
| In this example, we'll use `pfsense-user` as the Service account's username | ||||
|  | ||||
| :::note | ||||
| If you didn't keep the password, you can copy it from _Directory/Tokens & App password_. | ||||
| ::: | ||||
|  | ||||
|  | ||||
| ### Step 2 - LDAP Provider | ||||
|  | ||||
| In authentik, create a LDAP Provider (under _Applications/Providers_) with these settings : | ||||
| - Name : LDAP | ||||
| - Bind DN : `DC=ldap,DC=goauthentik,DC=io` | ||||
| - Certificate : `self-signed` | ||||
|  | ||||
| ### Step 3 - Application | ||||
|  | ||||
| In authentik, create an application (under _Resources/Applications_) with these settings : | ||||
|  | ||||
| - Name: LDAP | ||||
| - Slug: ldap | ||||
| - Provider: LDAP | ||||
|  | ||||
| ### Step 4 - Outpost | ||||
|  | ||||
| In authentik, create an outpost (under _Applications/Outposts_) of type `LDAP` that uses the LDAP Application you created in _Step 3_. | ||||
|  | ||||
| - Name: LDAP | ||||
| - Type: LDAP | ||||
|  | ||||
| ## pfSense unsecure setup (without SSL) | ||||
|  | ||||
| :::warning | ||||
| This setup should only be used for testing purpose, because passwords will be sent in clear text to authentik.   | ||||
| ::: | ||||
|  | ||||
| Add your authentik LDAP server to pfSense by going to your pfSense Web UI and clicking the `+ Add` under _System/User Manager/Authentication Servers_. | ||||
|  | ||||
| Change the following fields | ||||
|  | ||||
| - Descriptive name: LDAP authentik | ||||
| - Hostname or IP address: `authentik.company` | ||||
| - Port value: 389 | ||||
| - Transport: Standard TCP | ||||
| - Base DN: `DC=ldap,DC=goauthentik,DC=io` | ||||
| - Authentication containers: `OU=users,DC=ldap,DC=goauthentik,DC=io` | ||||
| - Bind anonymous: **unticked** | ||||
| - Bind credentials: | ||||
|   - User DN: `cn=pfsense-user,ou=users,dc=ldap,dc=goauthentik,dc=io` | ||||
|   - Password: `<pfsense-user password from step 2>` | ||||
| - Extended Query: &(objectClass=user) | ||||
| - Allow unauthenticated bind: **unticked** | ||||
|  | ||||
|  | ||||
|  | ||||
| ## pfSense secure setup (with SSL) | ||||
|  | ||||
| When enabling SSL, authentik will send a certificate to pfSense. This certificate has to be signed by a certificate authority trusted by pfSense. In this setup we will create our own certificate authority in pfSense and create a certificate that will be used by authentik. | ||||
|  | ||||
| ### Step 1 - Certificate Authority | ||||
|  | ||||
| In pfSense, create a certificate authority under _System/Cert. Manager_ and click the `+ Add` button. | ||||
|  | ||||
| - Descriptive Name: `pfSense CA` | ||||
| - Method: Create an internal Certificate Authority | ||||
| - Common Name : `pfSense CA` | ||||
|  | ||||
| ### Step 2 - Server Certificate | ||||
|  | ||||
| In pfSense, create a server certificate under _System/Cert. Manager_. Go to the _Certificates_ tab then click the `+ Add` button. | ||||
|  | ||||
| Change the following fields | ||||
|  | ||||
| - Method: Create an internal Certificate | ||||
| - Descriptive name: `authentik.company` | ||||
| - Lifetime: `398` | ||||
| - Common Name: `authentik.company` | ||||
| - Certificate Type: `Server Certificate` | ||||
|  | ||||
| All other field can be left blank. | ||||
|  | ||||
| ### Step 3 - Certificate import | ||||
|  | ||||
| In pfsense, export the public **and** the private key of the certificate by going under _System/Cert. Manager_ and then to the _Certificate_ tab. | ||||
|  | ||||
|  | ||||
|  | ||||
| In authentik, import the public **and** the private key by going under _System/Certificates_ and then click on `create`. | ||||
|  | ||||
| ### Step 4 - Provider configuration | ||||
|  | ||||
| In authentik, edit the LDAP provider configuration under _Applications/Providers_ and select the certificate we just imported. | ||||
|  | ||||
| ### Step 5 - pfSense authentication server | ||||
|  | ||||
| In pfSense, add your authentik LDAP server by going to your pfSense Web UI and clicking the `+ Add` under _System/User Manager/Authentication Servers_. | ||||
|  | ||||
| Change the following fields | ||||
|  | ||||
| - Descriptive name: LDAP authentik | ||||
| - Hostname or IP address: `authentik.company` | ||||
| - Port value: 636 | ||||
| - Transport: SSL/TLS Encrypted | ||||
| - Peer Certificate Authority: `pfSense CA` | ||||
| - Base DN: `DC=ldap,DC=goauthentik,DC=io` | ||||
| - Authentication containers: `OU=users,DC=ldap,DC=goauthentik,DC=io` | ||||
| - Bind anonymous: **unticked** | ||||
| - Bind credentials: | ||||
|   - User DN: `cn=pfsense-user,ou=users,dc=ldap,dc=goauthentik,dc=io` | ||||
|   - Password: `<pfsense-user password from step 2>` | ||||
| - Extended Query: &(objectClass=user) | ||||
| - Allow unauthenticated bind: **unticked** | ||||
|  | ||||
|  | ||||
|  | ||||
| ## Test your setup | ||||
|  | ||||
| In pfSense, you can validate the authentication backend setup by going to _Diagnostics/Authentication_ and then select `LDAP authentik` as _Authentication Server_. | ||||
|  | ||||
| You can use the credentials of an authentik user, pfSense will tell you if the connection was successful or not. If it is, congratulations, you can now change the pfSense default authentication backend. | ||||
|  | ||||
|  | ||||
|  | ||||
| ## Change pfSense default authentication backend | ||||
|  | ||||
| In pfSense, you can change the authentication backend used by the Web UI by going to _System/User Manager_ and then click on _Settings_ tab. | ||||
|  | ||||
| - Authentication Server: `LDAP authentik` | ||||
|  | ||||
|  | ||||
|  | ||||
| ## Notes | ||||
|  | ||||
| :::tip | ||||
| Secure LDAP more by creating a group for your `DN Bind` users and restricting the `Search group` of the LDAP Provider to them. | ||||
| ::: | ||||
										
											Binary file not shown.
										
									
								
							| After Width: | Height: | Size: 6.2 KiB | 
							
								
								
									
										45
									
								
								website/package-lock.json
									
									
									
										generated
									
									
									
								
							
							
						
						
									
										45
									
								
								website/package-lock.json
									
									
									
										generated
									
									
									
								
							| @ -12,7 +12,7 @@ | ||||
|                 "@docusaurus/preset-classic": "2.0.0-beta.17", | ||||
|                 "@mdx-js/react": "^1.6.22", | ||||
|                 "clsx": "^1.1.1", | ||||
|                 "postcss": "^8.4.8", | ||||
|                 "postcss": "^8.4.12", | ||||
|                 "rapidoc": "^9.2.0", | ||||
|                 "react": "^17.0.2", | ||||
|                 "react-before-after-slider-component": "^1.1.1", | ||||
| @ -21,7 +21,7 @@ | ||||
|                 "react-toggle": "^4.1.2" | ||||
|             }, | ||||
|             "devDependencies": { | ||||
|                 "prettier": "2.5.1" | ||||
|                 "prettier": "2.6.0" | ||||
|             } | ||||
|         }, | ||||
|         "node_modules/@algolia/autocomplete-core": { | ||||
| @ -9019,9 +9019,19 @@ | ||||
|             } | ||||
|         }, | ||||
|         "node_modules/postcss": { | ||||
|             "version": "8.4.8", | ||||
|             "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.8.tgz", | ||||
|             "integrity": "sha512-2tXEqGxrjvAO6U+CJzDL2Fk2kPHTv1jQsYkSoMeOis2SsYaXRO2COxTdQp99cYvif9JTXaAk9lYGc3VhJt7JPQ==", | ||||
|             "version": "8.4.12", | ||||
|             "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.12.tgz", | ||||
|             "integrity": "sha512-lg6eITwYe9v6Hr5CncVbK70SoioNQIq81nsaG86ev5hAidQvmOeETBqs7jm43K2F5/Ley3ytDtriImV6TpNiSg==", | ||||
|             "funding": [ | ||||
|                 { | ||||
|                     "type": "opencollective", | ||||
|                     "url": "https://opencollective.com/postcss/" | ||||
|                 }, | ||||
|                 { | ||||
|                     "type": "tidelift", | ||||
|                     "url": "https://tidelift.com/funding/github/npm/postcss" | ||||
|                 } | ||||
|             ], | ||||
|             "dependencies": { | ||||
|                 "nanoid": "^3.3.1", | ||||
|                 "picocolors": "^1.0.0", | ||||
| @ -9029,10 +9039,6 @@ | ||||
|             }, | ||||
|             "engines": { | ||||
|                 "node": "^10 || ^12 || >=14" | ||||
|             }, | ||||
|             "funding": { | ||||
|                 "type": "opencollective", | ||||
|                 "url": "https://opencollective.com/postcss/" | ||||
|             } | ||||
|         }, | ||||
|         "node_modules/postcss-calc": { | ||||
| @ -9582,15 +9588,18 @@ | ||||
|             } | ||||
|         }, | ||||
|         "node_modules/prettier": { | ||||
|             "version": "2.5.1", | ||||
|             "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.5.1.tgz", | ||||
|             "integrity": "sha512-vBZcPRUR5MZJwoyi3ZoyQlc1rXeEck8KgeC9AwwOn+exuxLxq5toTRDTSaVrXHxelDMHy9zlicw8u66yxoSUFg==", | ||||
|             "version": "2.6.0", | ||||
|             "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.6.0.tgz", | ||||
|             "integrity": "sha512-m2FgJibYrBGGgQXNzfd0PuDGShJgRavjUoRCw1mZERIWVSXF0iLzLm+aOqTAbLnC3n6JzUhAA8uZnFVghHJ86A==", | ||||
|             "dev": true, | ||||
|             "bin": { | ||||
|                 "prettier": "bin-prettier.js" | ||||
|             }, | ||||
|             "engines": { | ||||
|                 "node": ">=10.13.0" | ||||
|             }, | ||||
|             "funding": { | ||||
|                 "url": "https://github.com/prettier/prettier?sponsor=1" | ||||
|             } | ||||
|         }, | ||||
|         "node_modules/pretty-error": { | ||||
| @ -19598,9 +19607,9 @@ | ||||
|             } | ||||
|         }, | ||||
|         "postcss": { | ||||
|             "version": "8.4.8", | ||||
|             "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.8.tgz", | ||||
|             "integrity": "sha512-2tXEqGxrjvAO6U+CJzDL2Fk2kPHTv1jQsYkSoMeOis2SsYaXRO2COxTdQp99cYvif9JTXaAk9lYGc3VhJt7JPQ==", | ||||
|             "version": "8.4.12", | ||||
|             "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.12.tgz", | ||||
|             "integrity": "sha512-lg6eITwYe9v6Hr5CncVbK70SoioNQIq81nsaG86ev5hAidQvmOeETBqs7jm43K2F5/Ley3ytDtriImV6TpNiSg==", | ||||
|             "requires": { | ||||
|                 "nanoid": "^3.3.1", | ||||
|                 "picocolors": "^1.0.0", | ||||
| @ -19931,9 +19940,9 @@ | ||||
|             "integrity": "sha1-6SQ0v6XqjBn0HN/UAddBo8gZ2Jc=" | ||||
|         }, | ||||
|         "prettier": { | ||||
|             "version": "2.5.1", | ||||
|             "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.5.1.tgz", | ||||
|             "integrity": "sha512-vBZcPRUR5MZJwoyi3ZoyQlc1rXeEck8KgeC9AwwOn+exuxLxq5toTRDTSaVrXHxelDMHy9zlicw8u66yxoSUFg==", | ||||
|             "version": "2.6.0", | ||||
|             "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.6.0.tgz", | ||||
|             "integrity": "sha512-m2FgJibYrBGGgQXNzfd0PuDGShJgRavjUoRCw1mZERIWVSXF0iLzLm+aOqTAbLnC3n6JzUhAA8uZnFVghHJ86A==", | ||||
|             "dev": true | ||||
|         }, | ||||
|         "pretty-error": { | ||||
|  | ||||
| @ -16,7 +16,7 @@ | ||||
|         "@docusaurus/preset-classic": "2.0.0-beta.17", | ||||
|         "@mdx-js/react": "^1.6.22", | ||||
|         "clsx": "^1.1.1", | ||||
|         "postcss": "^8.4.8", | ||||
|         "postcss": "^8.4.12", | ||||
|         "rapidoc": "^9.2.0", | ||||
|         "react": "^17.0.2", | ||||
|         "react-before-after-slider-component": "^1.1.1", | ||||
| @ -37,6 +37,6 @@ | ||||
|         ] | ||||
|     }, | ||||
|     "devDependencies": { | ||||
|         "prettier": "2.5.1" | ||||
|         "prettier": "2.6.0" | ||||
|     } | ||||
| } | ||||
|  | ||||
| @ -27,6 +27,7 @@ module.exports = { | ||||
|                 "services/onlyoffice/index", | ||||
|                 "services/opnsense/index", | ||||
|                 "services/paperless-ng/index", | ||||
|                 "services/pfsense/index", | ||||
|                 "services/portainer/index", | ||||
|                 "services/powerdns-admin/index", | ||||
|                 "services/proxmox-ve/index", | ||||
|  | ||||
		Reference in New Issue
	
	Block a user
	