* core: add support for user settable token duration * web: add support for user settable token duration * website: add documentation for user settable token duration * core : fix locales * web: fix tokenIntent when updating * core: fix linting * website: Update website/docs/user-group-role/user/user_ref.md Co-authored-by: Tana M Berry <tanamarieberry@yahoo.com> Signed-off-by: Jean-Michel DILLY <48059109+jmdilly@users.noreply.github.com> * make token duration system-wide configurable Signed-off-by: Marc 'risson' Schmitt <marc.schmitt@risson.space> * small fixup Signed-off-by: Jens Langhammer <jens@goauthentik.io> * migrate token configs to tenants Signed-off-by: Marc 'risson' Schmitt <marc.schmitt@risson.space> * add release notes Signed-off-by: Marc 'risson' Schmitt <marc.schmitt@risson.space> * make website Signed-off-by: Marc 'risson' Schmitt <marc.schmitt@risson.space> * lint-fix Signed-off-by: Marc 'risson' Schmitt <marc.schmitt@risson.space> * fix migrations Signed-off-by: Marc 'risson' Schmitt <marc.schmitt@risson.space> * nosec Signed-off-by: Marc 'risson' Schmitt <marc.schmitt@risson.space> * lint-fix Signed-off-by: Marc 'risson' Schmitt <marc.schmitt@risson.space> * fix migrations for real this time Signed-off-by: Marc 'risson' Schmitt <marc.schmitt@risson.space> * trying with no model using default_token_key Signed-off-by: Marc 'risson' Schmitt <marc.schmitt@risson.space> * lint-fix Signed-off-by: Marc 'risson' Schmitt <marc.schmitt@risson.space> * fix save Signed-off-by: Marc 'risson' Schmitt <marc.schmitt@risson.space> * lint-fix Signed-off-by: Marc 'risson' Schmitt <marc.schmitt@risson.space> * use signal instead of overriding save Signed-off-by: Marc 'risson' Schmitt <marc.schmitt@risson.space> * fix tests Signed-off-by: Marc 'risson' Schmitt <marc.schmitt@risson.space> --------- Signed-off-by: Jean-Michel DILLY <48059109+jmdilly@users.noreply.github.com> Signed-off-by: Marc 'risson' Schmitt <marc.schmitt@risson.space> Signed-off-by: Jens Langhammer <jens@goauthentik.io> Co-authored-by: Tana M Berry <tanamarieberry@yahoo.com> Co-authored-by: Marc 'risson' Schmitt <marc.schmitt@risson.space> Co-authored-by: Jens Langhammer <jens@goauthentik.io>
56 lines
1.6 KiB
Python
56 lines
1.6 KiB
Python
"""Serializer for tenants models"""
|
|
|
|
from django_tenants.utils import get_public_schema_name
|
|
from rest_framework.generics import RetrieveUpdateAPIView
|
|
from rest_framework.permissions import SAFE_METHODS
|
|
from rest_framework.serializers import ModelSerializer
|
|
|
|
from authentik.rbac.permissions import HasPermission
|
|
from authentik.tenants.models import Tenant
|
|
|
|
|
|
class SettingsSerializer(ModelSerializer):
|
|
"""Settings Serializer"""
|
|
|
|
class Meta:
|
|
model = Tenant
|
|
fields = [
|
|
"avatars",
|
|
"default_user_change_name",
|
|
"default_user_change_email",
|
|
"default_user_change_username",
|
|
"event_retention",
|
|
"footer_links",
|
|
"gdpr_compliance",
|
|
"impersonation",
|
|
"default_token_duration",
|
|
"default_token_length",
|
|
]
|
|
|
|
|
|
class SettingsView(RetrieveUpdateAPIView):
|
|
"""Settings view"""
|
|
|
|
queryset = Tenant.objects.filter(ready=True)
|
|
serializer_class = SettingsSerializer
|
|
filter_backends = []
|
|
|
|
def get_permissions(self):
|
|
return [
|
|
HasPermission(
|
|
"authentik_rbac.view_system_settings"
|
|
if self.request.method in SAFE_METHODS
|
|
else "authentik_rbac.edit_system_settings"
|
|
)()
|
|
]
|
|
|
|
def get_object(self):
|
|
obj = self.request.tenant
|
|
self.check_object_permissions(self.request, obj)
|
|
return obj
|
|
|
|
def perform_update(self, serializer):
|
|
# We need to be in the public schema to actually modify a tenant
|
|
with Tenant.objects.get(schema_name=get_public_schema_name()):
|
|
super().perform_update(serializer)
|