mirror of
https://github.com/goauthentik/authentik
synced 2026-05-05 22:52:42 +02:00
Compare commits
2 Commits
version/20
...
nunoalves/
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
b055ce9c2c | ||
|
|
eb2b8ca8e2 |
@@ -13,6 +13,11 @@ class Pagination(pagination.PageNumberPagination):
|
||||
page_query_param = "page"
|
||||
page_size_query_param = "page_size"
|
||||
|
||||
def get_page_size(self, request):
|
||||
if self.page_size_query_param in request.query_params:
|
||||
return min(super().get_page_size(request), request.tenant.pagination_max_page_size)
|
||||
return request.tenant.pagination_default_page_size
|
||||
|
||||
def get_paginated_response(self, data):
|
||||
previous_page_number = 0
|
||||
if self.page.has_previous():
|
||||
|
||||
@@ -205,7 +205,7 @@ SPECTACULAR_SETTINGS = {
|
||||
|
||||
REST_FRAMEWORK = {
|
||||
"DEFAULT_PAGINATION_CLASS": "authentik.api.pagination.Pagination",
|
||||
"PAGE_SIZE": 100,
|
||||
"PAGE_SIZE": CONFIG.get("pagination.page_size", 100),
|
||||
"DEFAULT_FILTER_BACKENDS": [
|
||||
"authentik.rbac.filters.ObjectFilter",
|
||||
"django_filters.rest_framework.DjangoFilterBackend",
|
||||
|
||||
@@ -69,6 +69,8 @@ class SettingsSerializer(ModelSerializer):
|
||||
"impersonation_require_reason",
|
||||
"default_token_duration",
|
||||
"default_token_length",
|
||||
"pagination_default_page_size",
|
||||
"pagination_max_page_size",
|
||||
"flags",
|
||||
]
|
||||
|
||||
|
||||
@@ -0,0 +1,26 @@
|
||||
# Generated by Django 5.2.8 on 2025-12-10 03:33
|
||||
|
||||
from django.db import migrations, models
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
dependencies = [
|
||||
("authentik_tenants", "0006_tenant_flags"),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.AddField(
|
||||
model_name="tenant",
|
||||
name="pagination_default_page_size",
|
||||
field=models.PositiveIntegerField(
|
||||
default=20,
|
||||
help_text="Default page size for API responses, if no size was requested.",
|
||||
),
|
||||
),
|
||||
migrations.AddField(
|
||||
model_name="tenant",
|
||||
name="pagination_max_page_size",
|
||||
field=models.PositiveIntegerField(default=100, help_text="Maximum page size"),
|
||||
),
|
||||
]
|
||||
@@ -113,6 +113,16 @@ class Tenant(TenantMixin, SerializerModel):
|
||||
default=DEFAULT_TOKEN_LENGTH,
|
||||
validators=[MinValueValidator(1)],
|
||||
)
|
||||
|
||||
pagination_default_page_size = models.PositiveIntegerField(
|
||||
help_text=_("Default page size for API responses, if no size was requested."),
|
||||
default=20,
|
||||
)
|
||||
pagination_max_page_size = models.PositiveIntegerField(
|
||||
help_text=_("Maximum page size"),
|
||||
default=100,
|
||||
)
|
||||
|
||||
flags = models.JSONField(default=dict)
|
||||
|
||||
def save(self, *args, **kwargs):
|
||||
|
||||
30
schema.yml
30
schema.yml
@@ -48272,6 +48272,16 @@ components:
|
||||
maximum: 2147483647
|
||||
minimum: 1
|
||||
description: Default token length
|
||||
pagination_default_page_size:
|
||||
type: integer
|
||||
maximum: 2147483647
|
||||
minimum: 0
|
||||
description: Default page size for API responses, if no size was requested.
|
||||
pagination_max_page_size:
|
||||
type: integer
|
||||
maximum: 2147483647
|
||||
minimum: 0
|
||||
description: Maximum page size
|
||||
flags:
|
||||
type: object
|
||||
properties:
|
||||
@@ -52685,6 +52695,16 @@ components:
|
||||
maximum: 2147483647
|
||||
minimum: 1
|
||||
description: Default token length
|
||||
pagination_default_page_size:
|
||||
type: integer
|
||||
maximum: 2147483647
|
||||
minimum: 0
|
||||
description: Default page size for API responses, if no size was requested.
|
||||
pagination_max_page_size:
|
||||
type: integer
|
||||
maximum: 2147483647
|
||||
minimum: 0
|
||||
description: Maximum page size
|
||||
flags:
|
||||
type: object
|
||||
properties:
|
||||
@@ -52747,6 +52767,16 @@ components:
|
||||
maximum: 2147483647
|
||||
minimum: 1
|
||||
description: Default token length
|
||||
pagination_default_page_size:
|
||||
type: integer
|
||||
maximum: 2147483647
|
||||
minimum: 0
|
||||
description: Default page size for API responses, if no size was requested.
|
||||
pagination_max_page_size:
|
||||
type: integer
|
||||
maximum: 2147483647
|
||||
minimum: 0
|
||||
description: Maximum page size
|
||||
flags:
|
||||
type: object
|
||||
properties:
|
||||
|
||||
Reference in New Issue
Block a user