Skip to content

Commit 4cf69b6

Browse files
committed
remove enterprise license requirements from RAC
1 parent 1496f59 commit 4cf69b6

File tree

8 files changed

+9
-76
lines changed

8 files changed

+9
-76
lines changed

authentik/providers/rac/api/connection_tokens.py

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,13 +6,12 @@
66
from authentik.core.api.groups import GroupMemberSerializer
77
from authentik.core.api.used_by import UsedByMixin
88
from authentik.core.api.utils import ModelSerializer
9-
from authentik.enterprise.api import EnterpriseRequiredMixin
109
from authentik.providers.rac.api.endpoints import EndpointSerializer
1110
from authentik.providers.rac.api.providers import RACProviderSerializer
1211
from authentik.providers.rac.models import ConnectionToken
1312

1413

15-
class ConnectionTokenSerializer(EnterpriseRequiredMixin, ModelSerializer):
14+
class ConnectionTokenSerializer(ModelSerializer):
1615
"""ConnectionToken Serializer"""
1716

1817
provider_obj = RACProviderSerializer(source="provider", read_only=True)

authentik/providers/rac/api/endpoints.py

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,6 @@
1414
from authentik.core.api.used_by import UsedByMixin
1515
from authentik.core.api.utils import ModelSerializer
1616
from authentik.core.models import Provider
17-
from authentik.enterprise.api import EnterpriseRequiredMixin
1817
from authentik.policies.engine import PolicyEngine
1918
from authentik.providers.rac.api.providers import RACProviderSerializer
2019
from authentik.providers.rac.models import Endpoint
@@ -28,7 +27,7 @@ def user_endpoint_cache_key(user_pk: str) -> str:
2827
return f"goauthentik.io/providers/rac/endpoint_access/{user_pk}"
2928

3029

31-
class EndpointSerializer(EnterpriseRequiredMixin, ModelSerializer):
30+
class EndpointSerializer(ModelSerializer):
3231
"""Endpoint Serializer"""
3332

3433
provider_obj = RACProviderSerializer(source="provider", read_only=True)

authentik/providers/rac/api/providers.py

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,11 +5,10 @@
55

66
from authentik.core.api.providers import ProviderSerializer
77
from authentik.core.api.used_by import UsedByMixin
8-
from authentik.enterprise.api import EnterpriseRequiredMixin
98
from authentik.providers.rac.models import RACProvider
109

1110

12-
class RACProviderSerializer(EnterpriseRequiredMixin, ProviderSerializer):
11+
class RACProviderSerializer(ProviderSerializer):
1312
"""RACProvider Serializer"""
1413

1514
outpost_set = ListField(child=CharField(), read_only=True, source="outpost_set.all")

authentik/providers/rac/apps.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44

55

66
class AuthentikProviderRAC(AppConfig):
7-
"""authentik enterprise rac app config"""
7+
"""authentik rac app config"""
88

99
name = "authentik.providers.rac"
1010
label = "authentik_providers_rac"

authentik/providers/rac/consumer_client.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -15,14 +15,14 @@
1515
# to authentik for a specific connection
1616
# The `RACClientConsumer` consumer adds itself to this group on connection,
1717
# and removes itself once it has been assigned a specific outpost channel
18-
RAC_CLIENT_GROUP = "group_enterprise_rac_client"
18+
RAC_CLIENT_GROUP = "group_rac_client"
1919
# A group for all connections in a given authentik session ID
2020
# A disconnect message is sent to this group when the session expires/is deleted
21-
RAC_CLIENT_GROUP_SESSION = "group_enterprise_rac_client_%(session)s"
21+
RAC_CLIENT_GROUP_SESSION = "group_rac_client_%(session)s"
2222
# A group for all connections with a specific token, which in almost all cases
2323
# is just one connection, however this is used to disconnect the connection
2424
# when the token is deleted
25-
RAC_CLIENT_GROUP_TOKEN = "group_enterprise_rac_token_%(token)s" # nosec
25+
RAC_CLIENT_GROUP_TOKEN = "group_rac_token_%(token)s" # nosec
2626

2727
# Step 1: Client connects to this websocket endpoint
2828
# Step 2: We prepare all the connection args for Guac

authentik/providers/rac/tests/test_api.py

Lines changed: 0 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,10 @@
11
"""Test RAC Provider"""
22

3-
from datetime import timedelta
4-
from time import mktime
5-
from unittest.mock import MagicMock, patch
63

74
from django.urls import reverse
8-
from django.utils.timezone import now
95
from rest_framework.test import APITestCase
106

117
from authentik.core.tests.utils import create_test_admin_user, create_test_flow
12-
from authentik.enterprise.license import LicenseKey
13-
from authentik.enterprise.models import License
148
from authentik.lib.generators import generate_id
159

1610

@@ -20,21 +14,8 @@ class TestAPI(APITestCase):
2014
def setUp(self) -> None:
2115
self.user = create_test_admin_user()
2216

23-
@patch(
24-
"authentik.enterprise.license.LicenseKey.validate",
25-
MagicMock(
26-
return_value=LicenseKey(
27-
aud="",
28-
exp=int(mktime((now() + timedelta(days=3000)).timetuple())),
29-
name=generate_id(),
30-
internal_users=100,
31-
external_users=100,
32-
)
33-
),
34-
)
3517
def test_create(self):
3618
"""Test creation of RAC Provider"""
37-
License.objects.create(key=generate_id())
3819
self.client.force_login(self.user)
3920
response = self.client.post(
4021
reverse("authentik_api:racprovider-list"),

authentik/providers/rac/tests/test_views.py

Lines changed: 0 additions & 45 deletions
Original file line numberDiff line numberDiff line change
@@ -1,18 +1,12 @@
11
"""RAC Views tests"""
22

3-
from datetime import timedelta
43
from json import loads
5-
from time import mktime
6-
from unittest.mock import MagicMock, patch
74

85
from django.urls import reverse
9-
from django.utils.timezone import now
106
from rest_framework.test import APITestCase
117

128
from authentik.core.models import Application
139
from authentik.core.tests.utils import create_test_admin_user, create_test_flow
14-
from authentik.enterprise.license import LicenseKey
15-
from authentik.enterprise.models import License
1610
from authentik.lib.generators import generate_id
1711
from authentik.policies.denied import AccessDeniedResponse
1812
from authentik.policies.dummy.models import DummyPolicy
@@ -39,21 +33,8 @@ def setUp(self):
3933
provider=self.provider,
4034
)
4135

42-
@patch(
43-
"authentik.enterprise.license.LicenseKey.validate",
44-
MagicMock(
45-
return_value=LicenseKey(
46-
aud="",
47-
exp=int(mktime((now() + timedelta(days=3000)).timetuple())),
48-
name=generate_id(),
49-
internal_users=100,
50-
external_users=100,
51-
)
52-
),
53-
)
5436
def test_no_policy(self):
5537
"""Test request"""
56-
License.objects.create(key=generate_id())
5738
self.client.force_login(self.user)
5839
response = self.client.get(
5940
reverse(
@@ -70,26 +51,13 @@ def test_no_policy(self):
7051
final_response = self.client.get(next_url)
7152
self.assertEqual(final_response.status_code, 200)
7253

73-
@patch(
74-
"authentik.enterprise.license.LicenseKey.validate",
75-
MagicMock(
76-
return_value=LicenseKey(
77-
aud="",
78-
exp=int(mktime((now() + timedelta(days=3000)).timetuple())),
79-
name=generate_id(),
80-
internal_users=100,
81-
external_users=100,
82-
)
83-
),
84-
)
8554
def test_app_deny(self):
8655
"""Test request (deny on app level)"""
8756
PolicyBinding.objects.create(
8857
target=self.app,
8958
policy=DummyPolicy.objects.create(name="deny", result=False, wait_min=1, wait_max=2),
9059
order=0,
9160
)
92-
License.objects.create(key=generate_id())
9361
self.client.force_login(self.user)
9462
response = self.client.get(
9563
reverse(
@@ -99,26 +67,13 @@ def test_app_deny(self):
9967
)
10068
self.assertIsInstance(response, AccessDeniedResponse)
10169

102-
@patch(
103-
"authentik.enterprise.license.LicenseKey.validate",
104-
MagicMock(
105-
return_value=LicenseKey(
106-
aud="",
107-
exp=int(mktime((now() + timedelta(days=3000)).timetuple())),
108-
name=generate_id(),
109-
internal_users=100,
110-
external_users=100,
111-
)
112-
),
113-
)
11470
def test_endpoint_deny(self):
11571
"""Test request (deny on endpoint level)"""
11672
PolicyBinding.objects.create(
11773
target=self.endpoint,
11874
policy=DummyPolicy.objects.create(name="deny", result=False, wait_min=1, wait_max=2),
11975
order=0,
12076
)
121-
License.objects.create(key=generate_id())
12277
self.client.force_login(self.user)
12378
response = self.client.get(
12479
reverse(

authentik/providers/rac/views.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,6 @@
1010

1111
from authentik.core.models import Application, AuthenticatedSession
1212
from authentik.core.views.interface import InterfaceView
13-
from authentik.enterprise.policy import EnterprisePolicyAccessView
1413
from authentik.events.models import Event, EventAction
1514
from authentik.flows.challenge import RedirectChallenge
1615
from authentik.flows.exceptions import FlowNonApplicableException
@@ -19,10 +18,11 @@
1918
from authentik.flows.stage import RedirectStage
2019
from authentik.lib.utils.time import timedelta_from_string
2120
from authentik.policies.engine import PolicyEngine
21+
from authentik.policies.views import PolicyAccessView
2222
from authentik.providers.rac.models import ConnectionToken, Endpoint, RACProvider
2323

2424

25-
class RACStartView(EnterprisePolicyAccessView):
25+
class RACStartView(PolicyAccessView):
2626
"""Start a RAC connection by checking access and creating a connection token"""
2727

2828
endpoint: Endpoint

0 commit comments

Comments
 (0)