core: add API Endpoint to get all MFA devices, add web ui to delete MFA devices of any user
closes #3237 Signed-off-by: Jens Langhammer <jens.langhammer@beryju.org>
This commit is contained in:
parent
b82a142745
commit
83eba36f8d
|
@ -14,7 +14,7 @@ from authentik.api.v3.config import ConfigView
|
||||||
from authentik.api.views import APIBrowserView
|
from authentik.api.views import APIBrowserView
|
||||||
from authentik.core.api.applications import ApplicationViewSet
|
from authentik.core.api.applications import ApplicationViewSet
|
||||||
from authentik.core.api.authenticated_sessions import AuthenticatedSessionViewSet
|
from authentik.core.api.authenticated_sessions import AuthenticatedSessionViewSet
|
||||||
from authentik.core.api.devices import DeviceViewSet
|
from authentik.core.api.devices import AdminDeviceViewSet, DeviceViewSet
|
||||||
from authentik.core.api.groups import GroupViewSet
|
from authentik.core.api.groups import GroupViewSet
|
||||||
from authentik.core.api.propertymappings import PropertyMappingViewSet
|
from authentik.core.api.propertymappings import PropertyMappingViewSet
|
||||||
from authentik.core.api.providers import ProviderViewSet
|
from authentik.core.api.providers import ProviderViewSet
|
||||||
|
@ -171,6 +171,11 @@ router.register("authenticators/sms", SMSDeviceViewSet)
|
||||||
router.register("authenticators/static", StaticDeviceViewSet)
|
router.register("authenticators/static", StaticDeviceViewSet)
|
||||||
router.register("authenticators/totp", TOTPDeviceViewSet)
|
router.register("authenticators/totp", TOTPDeviceViewSet)
|
||||||
router.register("authenticators/webauthn", WebAuthnDeviceViewSet)
|
router.register("authenticators/webauthn", WebAuthnDeviceViewSet)
|
||||||
|
router.register(
|
||||||
|
"authenticators/admin/all",
|
||||||
|
AdminDeviceViewSet,
|
||||||
|
basename="admin-device",
|
||||||
|
)
|
||||||
router.register(
|
router.register(
|
||||||
"authenticators/admin/duo",
|
"authenticators/admin/duo",
|
||||||
DuoAdminDeviceViewSet,
|
DuoAdminDeviceViewSet,
|
||||||
|
|
|
@ -98,7 +98,6 @@ class ApplicationViewSet(UsedByMixin, ModelViewSet):
|
||||||
"group",
|
"group",
|
||||||
]
|
]
|
||||||
lookup_field = "slug"
|
lookup_field = "slug"
|
||||||
filterset_fields = ["name", "slug"]
|
|
||||||
ordering = ["name"]
|
ordering = ["name"]
|
||||||
|
|
||||||
def _filter_queryset_for_list(self, queryset: QuerySet) -> QuerySet:
|
def _filter_queryset_for_list(self, queryset: QuerySet) -> QuerySet:
|
||||||
|
|
|
@ -1,9 +1,10 @@
|
||||||
"""Authenticator Devices API Views"""
|
"""Authenticator Devices API Views"""
|
||||||
from django_otp import devices_for_user
|
from django_otp import device_classes, devices_for_user
|
||||||
from django_otp.models import Device
|
from django_otp.models import Device
|
||||||
from drf_spectacular.utils import extend_schema
|
from drf_spectacular.types import OpenApiTypes
|
||||||
from rest_framework.fields import CharField, IntegerField, SerializerMethodField
|
from drf_spectacular.utils import OpenApiParameter, extend_schema
|
||||||
from rest_framework.permissions import IsAuthenticated
|
from rest_framework.fields import BooleanField, CharField, IntegerField, SerializerMethodField
|
||||||
|
from rest_framework.permissions import IsAdminUser, IsAuthenticated
|
||||||
from rest_framework.request import Request
|
from rest_framework.request import Request
|
||||||
from rest_framework.response import Response
|
from rest_framework.response import Response
|
||||||
from rest_framework.viewsets import ViewSet
|
from rest_framework.viewsets import ViewSet
|
||||||
|
@ -17,6 +18,7 @@ class DeviceSerializer(MetaNameSerializer):
|
||||||
pk = IntegerField()
|
pk = IntegerField()
|
||||||
name = CharField()
|
name = CharField()
|
||||||
type = SerializerMethodField()
|
type = SerializerMethodField()
|
||||||
|
confirmed = BooleanField()
|
||||||
|
|
||||||
def get_type(self, instance: Device) -> str:
|
def get_type(self, instance: Device) -> str:
|
||||||
"""Get type of device"""
|
"""Get type of device"""
|
||||||
|
@ -34,3 +36,33 @@ class DeviceViewSet(ViewSet):
|
||||||
"""Get all devices for current user"""
|
"""Get all devices for current user"""
|
||||||
devices = devices_for_user(request.user)
|
devices = devices_for_user(request.user)
|
||||||
return Response(DeviceSerializer(devices, many=True).data)
|
return Response(DeviceSerializer(devices, many=True).data)
|
||||||
|
|
||||||
|
|
||||||
|
class AdminDeviceViewSet(ViewSet):
|
||||||
|
"""Viewset for authenticator devices"""
|
||||||
|
|
||||||
|
serializer_class = DeviceSerializer
|
||||||
|
permission_classes = [IsAdminUser]
|
||||||
|
|
||||||
|
def get_devices(self, **kwargs):
|
||||||
|
"""Get all devices in all child classes"""
|
||||||
|
for model in device_classes():
|
||||||
|
device_set = model.objects.filter(**kwargs)
|
||||||
|
yield from device_set
|
||||||
|
|
||||||
|
@extend_schema(
|
||||||
|
parameters=[
|
||||||
|
OpenApiParameter(
|
||||||
|
name="user",
|
||||||
|
location=OpenApiParameter.QUERY,
|
||||||
|
type=OpenApiTypes.INT,
|
||||||
|
)
|
||||||
|
],
|
||||||
|
responses={200: DeviceSerializer(many=True)},
|
||||||
|
)
|
||||||
|
def list(self, request: Request) -> Response:
|
||||||
|
"""Get all devices for current user"""
|
||||||
|
kwargs = {}
|
||||||
|
if "user" in request.query_params:
|
||||||
|
kwargs = {"user": request.query_params["user"]}
|
||||||
|
return Response(DeviceSerializer(self.get_devices(**kwargs), many=True).data)
|
||||||
|
|
|
@ -4,7 +4,7 @@ from rest_framework import mixins
|
||||||
from rest_framework.filters import OrderingFilter, SearchFilter
|
from rest_framework.filters import OrderingFilter, SearchFilter
|
||||||
from rest_framework.permissions import IsAdminUser
|
from rest_framework.permissions import IsAdminUser
|
||||||
from rest_framework.serializers import ModelSerializer
|
from rest_framework.serializers import ModelSerializer
|
||||||
from rest_framework.viewsets import GenericViewSet, ModelViewSet, ReadOnlyModelViewSet
|
from rest_framework.viewsets import GenericViewSet, ModelViewSet
|
||||||
|
|
||||||
from authentik.api.authorization import OwnerFilter, OwnerPermissions
|
from authentik.api.authorization import OwnerFilter, OwnerPermissions
|
||||||
from authentik.core.api.used_by import UsedByMixin
|
from authentik.core.api.used_by import UsedByMixin
|
||||||
|
@ -72,7 +72,7 @@ class SMSDeviceViewSet(
|
||||||
ordering = ["name"]
|
ordering = ["name"]
|
||||||
|
|
||||||
|
|
||||||
class SMSAdminDeviceViewSet(ReadOnlyModelViewSet):
|
class SMSAdminDeviceViewSet(ModelViewSet):
|
||||||
"""Viewset for sms authenticator devices (for admins)"""
|
"""Viewset for sms authenticator devices (for admins)"""
|
||||||
|
|
||||||
permission_classes = [IsAdminUser]
|
permission_classes = [IsAdminUser]
|
||||||
|
|
|
@ -5,7 +5,7 @@ from rest_framework import mixins
|
||||||
from rest_framework.filters import OrderingFilter, SearchFilter
|
from rest_framework.filters import OrderingFilter, SearchFilter
|
||||||
from rest_framework.permissions import IsAdminUser
|
from rest_framework.permissions import IsAdminUser
|
||||||
from rest_framework.serializers import ModelSerializer
|
from rest_framework.serializers import ModelSerializer
|
||||||
from rest_framework.viewsets import GenericViewSet, ModelViewSet, ReadOnlyModelViewSet
|
from rest_framework.viewsets import GenericViewSet, ModelViewSet
|
||||||
|
|
||||||
from authentik.api.authorization import OwnerFilter, OwnerPermissions
|
from authentik.api.authorization import OwnerFilter, OwnerPermissions
|
||||||
from authentik.core.api.used_by import UsedByMixin
|
from authentik.core.api.used_by import UsedByMixin
|
||||||
|
@ -71,7 +71,7 @@ class StaticDeviceViewSet(
|
||||||
ordering = ["name"]
|
ordering = ["name"]
|
||||||
|
|
||||||
|
|
||||||
class StaticAdminDeviceViewSet(ReadOnlyModelViewSet):
|
class StaticAdminDeviceViewSet(ModelViewSet):
|
||||||
"""Viewset for static authenticator devices (for admins)"""
|
"""Viewset for static authenticator devices (for admins)"""
|
||||||
|
|
||||||
permission_classes = [IsAdminUser]
|
permission_classes = [IsAdminUser]
|
||||||
|
|
|
@ -5,7 +5,7 @@ from rest_framework import mixins
|
||||||
from rest_framework.filters import OrderingFilter, SearchFilter
|
from rest_framework.filters import OrderingFilter, SearchFilter
|
||||||
from rest_framework.permissions import IsAdminUser
|
from rest_framework.permissions import IsAdminUser
|
||||||
from rest_framework.serializers import ModelSerializer
|
from rest_framework.serializers import ModelSerializer
|
||||||
from rest_framework.viewsets import GenericViewSet, ModelViewSet, ReadOnlyModelViewSet
|
from rest_framework.viewsets import GenericViewSet, ModelViewSet
|
||||||
|
|
||||||
from authentik.api.authorization import OwnerFilter, OwnerPermissions
|
from authentik.api.authorization import OwnerFilter, OwnerPermissions
|
||||||
from authentik.core.api.used_by import UsedByMixin
|
from authentik.core.api.used_by import UsedByMixin
|
||||||
|
@ -64,7 +64,7 @@ class TOTPDeviceViewSet(
|
||||||
ordering = ["name"]
|
ordering = ["name"]
|
||||||
|
|
||||||
|
|
||||||
class TOTPAdminDeviceViewSet(ReadOnlyModelViewSet):
|
class TOTPAdminDeviceViewSet(ModelViewSet):
|
||||||
"""Viewset for totp authenticator devices (for admins)"""
|
"""Viewset for totp authenticator devices (for admins)"""
|
||||||
|
|
||||||
permission_classes = [IsAdminUser]
|
permission_classes = [IsAdminUser]
|
||||||
|
|
|
@ -4,7 +4,7 @@ from rest_framework import mixins
|
||||||
from rest_framework.filters import OrderingFilter, SearchFilter
|
from rest_framework.filters import OrderingFilter, SearchFilter
|
||||||
from rest_framework.permissions import IsAdminUser
|
from rest_framework.permissions import IsAdminUser
|
||||||
from rest_framework.serializers import ModelSerializer
|
from rest_framework.serializers import ModelSerializer
|
||||||
from rest_framework.viewsets import GenericViewSet, ModelViewSet, ReadOnlyModelViewSet
|
from rest_framework.viewsets import GenericViewSet, ModelViewSet
|
||||||
|
|
||||||
from authentik.api.authorization import OwnerFilter, OwnerPermissions
|
from authentik.api.authorization import OwnerFilter, OwnerPermissions
|
||||||
from authentik.core.api.used_by import UsedByMixin
|
from authentik.core.api.used_by import UsedByMixin
|
||||||
|
@ -65,7 +65,7 @@ class WebAuthnDeviceViewSet(
|
||||||
filter_backends = [OwnerFilter, DjangoFilterBackend, OrderingFilter, SearchFilter]
|
filter_backends = [OwnerFilter, DjangoFilterBackend, OrderingFilter, SearchFilter]
|
||||||
|
|
||||||
|
|
||||||
class WebAuthnAdminDeviceViewSet(ReadOnlyModelViewSet):
|
class WebAuthnAdminDeviceViewSet(ModelViewSet):
|
||||||
"""Viewset for WebAuthn authenticator devices (for admins)"""
|
"""Viewset for WebAuthn authenticator devices (for admins)"""
|
||||||
|
|
||||||
permission_classes = [IsAdminUser]
|
permission_classes = [IsAdminUser]
|
||||||
|
|
469
schema.yml
469
schema.yml
|
@ -179,6 +179,32 @@ paths:
|
||||||
$ref: '#/components/schemas/ValidationError'
|
$ref: '#/components/schemas/ValidationError'
|
||||||
'403':
|
'403':
|
||||||
$ref: '#/components/schemas/GenericError'
|
$ref: '#/components/schemas/GenericError'
|
||||||
|
/authenticators/admin/all/:
|
||||||
|
get:
|
||||||
|
operationId: authenticators_admin_all_list
|
||||||
|
description: Get all devices for current user
|
||||||
|
parameters:
|
||||||
|
- in: query
|
||||||
|
name: user
|
||||||
|
schema:
|
||||||
|
type: integer
|
||||||
|
tags:
|
||||||
|
- authenticators
|
||||||
|
security:
|
||||||
|
- authentik: []
|
||||||
|
responses:
|
||||||
|
'200':
|
||||||
|
content:
|
||||||
|
application/json:
|
||||||
|
schema:
|
||||||
|
type: array
|
||||||
|
items:
|
||||||
|
$ref: '#/components/schemas/Device'
|
||||||
|
description: ''
|
||||||
|
'400':
|
||||||
|
$ref: '#/components/schemas/ValidationError'
|
||||||
|
'403':
|
||||||
|
$ref: '#/components/schemas/GenericError'
|
||||||
/authenticators/admin/duo/:
|
/authenticators/admin/duo/:
|
||||||
get:
|
get:
|
||||||
operationId: authenticators_admin_duo_list
|
operationId: authenticators_admin_duo_list
|
||||||
|
@ -407,6 +433,30 @@ paths:
|
||||||
$ref: '#/components/schemas/ValidationError'
|
$ref: '#/components/schemas/ValidationError'
|
||||||
'403':
|
'403':
|
||||||
$ref: '#/components/schemas/GenericError'
|
$ref: '#/components/schemas/GenericError'
|
||||||
|
post:
|
||||||
|
operationId: authenticators_admin_sms_create
|
||||||
|
description: Viewset for sms authenticator devices (for admins)
|
||||||
|
tags:
|
||||||
|
- authenticators
|
||||||
|
requestBody:
|
||||||
|
content:
|
||||||
|
application/json:
|
||||||
|
schema:
|
||||||
|
$ref: '#/components/schemas/SMSDeviceRequest'
|
||||||
|
required: true
|
||||||
|
security:
|
||||||
|
- authentik: []
|
||||||
|
responses:
|
||||||
|
'201':
|
||||||
|
content:
|
||||||
|
application/json:
|
||||||
|
schema:
|
||||||
|
$ref: '#/components/schemas/SMSDevice'
|
||||||
|
description: ''
|
||||||
|
'400':
|
||||||
|
$ref: '#/components/schemas/ValidationError'
|
||||||
|
'403':
|
||||||
|
$ref: '#/components/schemas/GenericError'
|
||||||
/authenticators/admin/sms/{id}/:
|
/authenticators/admin/sms/{id}/:
|
||||||
get:
|
get:
|
||||||
operationId: authenticators_admin_sms_retrieve
|
operationId: authenticators_admin_sms_retrieve
|
||||||
|
@ -433,6 +483,88 @@ paths:
|
||||||
$ref: '#/components/schemas/ValidationError'
|
$ref: '#/components/schemas/ValidationError'
|
||||||
'403':
|
'403':
|
||||||
$ref: '#/components/schemas/GenericError'
|
$ref: '#/components/schemas/GenericError'
|
||||||
|
put:
|
||||||
|
operationId: authenticators_admin_sms_update
|
||||||
|
description: Viewset for sms authenticator devices (for admins)
|
||||||
|
parameters:
|
||||||
|
- in: path
|
||||||
|
name: id
|
||||||
|
schema:
|
||||||
|
type: integer
|
||||||
|
description: A unique integer value identifying this SMS Device.
|
||||||
|
required: true
|
||||||
|
tags:
|
||||||
|
- authenticators
|
||||||
|
requestBody:
|
||||||
|
content:
|
||||||
|
application/json:
|
||||||
|
schema:
|
||||||
|
$ref: '#/components/schemas/SMSDeviceRequest'
|
||||||
|
required: true
|
||||||
|
security:
|
||||||
|
- authentik: []
|
||||||
|
responses:
|
||||||
|
'200':
|
||||||
|
content:
|
||||||
|
application/json:
|
||||||
|
schema:
|
||||||
|
$ref: '#/components/schemas/SMSDevice'
|
||||||
|
description: ''
|
||||||
|
'400':
|
||||||
|
$ref: '#/components/schemas/ValidationError'
|
||||||
|
'403':
|
||||||
|
$ref: '#/components/schemas/GenericError'
|
||||||
|
patch:
|
||||||
|
operationId: authenticators_admin_sms_partial_update
|
||||||
|
description: Viewset for sms authenticator devices (for admins)
|
||||||
|
parameters:
|
||||||
|
- in: path
|
||||||
|
name: id
|
||||||
|
schema:
|
||||||
|
type: integer
|
||||||
|
description: A unique integer value identifying this SMS Device.
|
||||||
|
required: true
|
||||||
|
tags:
|
||||||
|
- authenticators
|
||||||
|
requestBody:
|
||||||
|
content:
|
||||||
|
application/json:
|
||||||
|
schema:
|
||||||
|
$ref: '#/components/schemas/PatchedSMSDeviceRequest'
|
||||||
|
security:
|
||||||
|
- authentik: []
|
||||||
|
responses:
|
||||||
|
'200':
|
||||||
|
content:
|
||||||
|
application/json:
|
||||||
|
schema:
|
||||||
|
$ref: '#/components/schemas/SMSDevice'
|
||||||
|
description: ''
|
||||||
|
'400':
|
||||||
|
$ref: '#/components/schemas/ValidationError'
|
||||||
|
'403':
|
||||||
|
$ref: '#/components/schemas/GenericError'
|
||||||
|
delete:
|
||||||
|
operationId: authenticators_admin_sms_destroy
|
||||||
|
description: Viewset for sms authenticator devices (for admins)
|
||||||
|
parameters:
|
||||||
|
- in: path
|
||||||
|
name: id
|
||||||
|
schema:
|
||||||
|
type: integer
|
||||||
|
description: A unique integer value identifying this SMS Device.
|
||||||
|
required: true
|
||||||
|
tags:
|
||||||
|
- authenticators
|
||||||
|
security:
|
||||||
|
- authentik: []
|
||||||
|
responses:
|
||||||
|
'204':
|
||||||
|
description: No response body
|
||||||
|
'400':
|
||||||
|
$ref: '#/components/schemas/ValidationError'
|
||||||
|
'403':
|
||||||
|
$ref: '#/components/schemas/GenericError'
|
||||||
/authenticators/admin/static/:
|
/authenticators/admin/static/:
|
||||||
get:
|
get:
|
||||||
operationId: authenticators_admin_static_list
|
operationId: authenticators_admin_static_list
|
||||||
|
@ -481,6 +613,30 @@ paths:
|
||||||
$ref: '#/components/schemas/ValidationError'
|
$ref: '#/components/schemas/ValidationError'
|
||||||
'403':
|
'403':
|
||||||
$ref: '#/components/schemas/GenericError'
|
$ref: '#/components/schemas/GenericError'
|
||||||
|
post:
|
||||||
|
operationId: authenticators_admin_static_create
|
||||||
|
description: Viewset for static authenticator devices (for admins)
|
||||||
|
tags:
|
||||||
|
- authenticators
|
||||||
|
requestBody:
|
||||||
|
content:
|
||||||
|
application/json:
|
||||||
|
schema:
|
||||||
|
$ref: '#/components/schemas/StaticDeviceRequest'
|
||||||
|
required: true
|
||||||
|
security:
|
||||||
|
- authentik: []
|
||||||
|
responses:
|
||||||
|
'201':
|
||||||
|
content:
|
||||||
|
application/json:
|
||||||
|
schema:
|
||||||
|
$ref: '#/components/schemas/StaticDevice'
|
||||||
|
description: ''
|
||||||
|
'400':
|
||||||
|
$ref: '#/components/schemas/ValidationError'
|
||||||
|
'403':
|
||||||
|
$ref: '#/components/schemas/GenericError'
|
||||||
/authenticators/admin/static/{id}/:
|
/authenticators/admin/static/{id}/:
|
||||||
get:
|
get:
|
||||||
operationId: authenticators_admin_static_retrieve
|
operationId: authenticators_admin_static_retrieve
|
||||||
|
@ -507,6 +663,88 @@ paths:
|
||||||
$ref: '#/components/schemas/ValidationError'
|
$ref: '#/components/schemas/ValidationError'
|
||||||
'403':
|
'403':
|
||||||
$ref: '#/components/schemas/GenericError'
|
$ref: '#/components/schemas/GenericError'
|
||||||
|
put:
|
||||||
|
operationId: authenticators_admin_static_update
|
||||||
|
description: Viewset for static authenticator devices (for admins)
|
||||||
|
parameters:
|
||||||
|
- in: path
|
||||||
|
name: id
|
||||||
|
schema:
|
||||||
|
type: integer
|
||||||
|
description: A unique integer value identifying this static device.
|
||||||
|
required: true
|
||||||
|
tags:
|
||||||
|
- authenticators
|
||||||
|
requestBody:
|
||||||
|
content:
|
||||||
|
application/json:
|
||||||
|
schema:
|
||||||
|
$ref: '#/components/schemas/StaticDeviceRequest'
|
||||||
|
required: true
|
||||||
|
security:
|
||||||
|
- authentik: []
|
||||||
|
responses:
|
||||||
|
'200':
|
||||||
|
content:
|
||||||
|
application/json:
|
||||||
|
schema:
|
||||||
|
$ref: '#/components/schemas/StaticDevice'
|
||||||
|
description: ''
|
||||||
|
'400':
|
||||||
|
$ref: '#/components/schemas/ValidationError'
|
||||||
|
'403':
|
||||||
|
$ref: '#/components/schemas/GenericError'
|
||||||
|
patch:
|
||||||
|
operationId: authenticators_admin_static_partial_update
|
||||||
|
description: Viewset for static authenticator devices (for admins)
|
||||||
|
parameters:
|
||||||
|
- in: path
|
||||||
|
name: id
|
||||||
|
schema:
|
||||||
|
type: integer
|
||||||
|
description: A unique integer value identifying this static device.
|
||||||
|
required: true
|
||||||
|
tags:
|
||||||
|
- authenticators
|
||||||
|
requestBody:
|
||||||
|
content:
|
||||||
|
application/json:
|
||||||
|
schema:
|
||||||
|
$ref: '#/components/schemas/PatchedStaticDeviceRequest'
|
||||||
|
security:
|
||||||
|
- authentik: []
|
||||||
|
responses:
|
||||||
|
'200':
|
||||||
|
content:
|
||||||
|
application/json:
|
||||||
|
schema:
|
||||||
|
$ref: '#/components/schemas/StaticDevice'
|
||||||
|
description: ''
|
||||||
|
'400':
|
||||||
|
$ref: '#/components/schemas/ValidationError'
|
||||||
|
'403':
|
||||||
|
$ref: '#/components/schemas/GenericError'
|
||||||
|
delete:
|
||||||
|
operationId: authenticators_admin_static_destroy
|
||||||
|
description: Viewset for static authenticator devices (for admins)
|
||||||
|
parameters:
|
||||||
|
- in: path
|
||||||
|
name: id
|
||||||
|
schema:
|
||||||
|
type: integer
|
||||||
|
description: A unique integer value identifying this static device.
|
||||||
|
required: true
|
||||||
|
tags:
|
||||||
|
- authenticators
|
||||||
|
security:
|
||||||
|
- authentik: []
|
||||||
|
responses:
|
||||||
|
'204':
|
||||||
|
description: No response body
|
||||||
|
'400':
|
||||||
|
$ref: '#/components/schemas/ValidationError'
|
||||||
|
'403':
|
||||||
|
$ref: '#/components/schemas/GenericError'
|
||||||
/authenticators/admin/totp/:
|
/authenticators/admin/totp/:
|
||||||
get:
|
get:
|
||||||
operationId: authenticators_admin_totp_list
|
operationId: authenticators_admin_totp_list
|
||||||
|
@ -555,6 +793,30 @@ paths:
|
||||||
$ref: '#/components/schemas/ValidationError'
|
$ref: '#/components/schemas/ValidationError'
|
||||||
'403':
|
'403':
|
||||||
$ref: '#/components/schemas/GenericError'
|
$ref: '#/components/schemas/GenericError'
|
||||||
|
post:
|
||||||
|
operationId: authenticators_admin_totp_create
|
||||||
|
description: Viewset for totp authenticator devices (for admins)
|
||||||
|
tags:
|
||||||
|
- authenticators
|
||||||
|
requestBody:
|
||||||
|
content:
|
||||||
|
application/json:
|
||||||
|
schema:
|
||||||
|
$ref: '#/components/schemas/TOTPDeviceRequest'
|
||||||
|
required: true
|
||||||
|
security:
|
||||||
|
- authentik: []
|
||||||
|
responses:
|
||||||
|
'201':
|
||||||
|
content:
|
||||||
|
application/json:
|
||||||
|
schema:
|
||||||
|
$ref: '#/components/schemas/TOTPDevice'
|
||||||
|
description: ''
|
||||||
|
'400':
|
||||||
|
$ref: '#/components/schemas/ValidationError'
|
||||||
|
'403':
|
||||||
|
$ref: '#/components/schemas/GenericError'
|
||||||
/authenticators/admin/totp/{id}/:
|
/authenticators/admin/totp/{id}/:
|
||||||
get:
|
get:
|
||||||
operationId: authenticators_admin_totp_retrieve
|
operationId: authenticators_admin_totp_retrieve
|
||||||
|
@ -581,6 +843,88 @@ paths:
|
||||||
$ref: '#/components/schemas/ValidationError'
|
$ref: '#/components/schemas/ValidationError'
|
||||||
'403':
|
'403':
|
||||||
$ref: '#/components/schemas/GenericError'
|
$ref: '#/components/schemas/GenericError'
|
||||||
|
put:
|
||||||
|
operationId: authenticators_admin_totp_update
|
||||||
|
description: Viewset for totp authenticator devices (for admins)
|
||||||
|
parameters:
|
||||||
|
- in: path
|
||||||
|
name: id
|
||||||
|
schema:
|
||||||
|
type: integer
|
||||||
|
description: A unique integer value identifying this TOTP device.
|
||||||
|
required: true
|
||||||
|
tags:
|
||||||
|
- authenticators
|
||||||
|
requestBody:
|
||||||
|
content:
|
||||||
|
application/json:
|
||||||
|
schema:
|
||||||
|
$ref: '#/components/schemas/TOTPDeviceRequest'
|
||||||
|
required: true
|
||||||
|
security:
|
||||||
|
- authentik: []
|
||||||
|
responses:
|
||||||
|
'200':
|
||||||
|
content:
|
||||||
|
application/json:
|
||||||
|
schema:
|
||||||
|
$ref: '#/components/schemas/TOTPDevice'
|
||||||
|
description: ''
|
||||||
|
'400':
|
||||||
|
$ref: '#/components/schemas/ValidationError'
|
||||||
|
'403':
|
||||||
|
$ref: '#/components/schemas/GenericError'
|
||||||
|
patch:
|
||||||
|
operationId: authenticators_admin_totp_partial_update
|
||||||
|
description: Viewset for totp authenticator devices (for admins)
|
||||||
|
parameters:
|
||||||
|
- in: path
|
||||||
|
name: id
|
||||||
|
schema:
|
||||||
|
type: integer
|
||||||
|
description: A unique integer value identifying this TOTP device.
|
||||||
|
required: true
|
||||||
|
tags:
|
||||||
|
- authenticators
|
||||||
|
requestBody:
|
||||||
|
content:
|
||||||
|
application/json:
|
||||||
|
schema:
|
||||||
|
$ref: '#/components/schemas/PatchedTOTPDeviceRequest'
|
||||||
|
security:
|
||||||
|
- authentik: []
|
||||||
|
responses:
|
||||||
|
'200':
|
||||||
|
content:
|
||||||
|
application/json:
|
||||||
|
schema:
|
||||||
|
$ref: '#/components/schemas/TOTPDevice'
|
||||||
|
description: ''
|
||||||
|
'400':
|
||||||
|
$ref: '#/components/schemas/ValidationError'
|
||||||
|
'403':
|
||||||
|
$ref: '#/components/schemas/GenericError'
|
||||||
|
delete:
|
||||||
|
operationId: authenticators_admin_totp_destroy
|
||||||
|
description: Viewset for totp authenticator devices (for admins)
|
||||||
|
parameters:
|
||||||
|
- in: path
|
||||||
|
name: id
|
||||||
|
schema:
|
||||||
|
type: integer
|
||||||
|
description: A unique integer value identifying this TOTP device.
|
||||||
|
required: true
|
||||||
|
tags:
|
||||||
|
- authenticators
|
||||||
|
security:
|
||||||
|
- authentik: []
|
||||||
|
responses:
|
||||||
|
'204':
|
||||||
|
description: No response body
|
||||||
|
'400':
|
||||||
|
$ref: '#/components/schemas/ValidationError'
|
||||||
|
'403':
|
||||||
|
$ref: '#/components/schemas/GenericError'
|
||||||
/authenticators/admin/webauthn/:
|
/authenticators/admin/webauthn/:
|
||||||
get:
|
get:
|
||||||
operationId: authenticators_admin_webauthn_list
|
operationId: authenticators_admin_webauthn_list
|
||||||
|
@ -629,6 +973,30 @@ paths:
|
||||||
$ref: '#/components/schemas/ValidationError'
|
$ref: '#/components/schemas/ValidationError'
|
||||||
'403':
|
'403':
|
||||||
$ref: '#/components/schemas/GenericError'
|
$ref: '#/components/schemas/GenericError'
|
||||||
|
post:
|
||||||
|
operationId: authenticators_admin_webauthn_create
|
||||||
|
description: Viewset for WebAuthn authenticator devices (for admins)
|
||||||
|
tags:
|
||||||
|
- authenticators
|
||||||
|
requestBody:
|
||||||
|
content:
|
||||||
|
application/json:
|
||||||
|
schema:
|
||||||
|
$ref: '#/components/schemas/WebAuthnDeviceRequest'
|
||||||
|
required: true
|
||||||
|
security:
|
||||||
|
- authentik: []
|
||||||
|
responses:
|
||||||
|
'201':
|
||||||
|
content:
|
||||||
|
application/json:
|
||||||
|
schema:
|
||||||
|
$ref: '#/components/schemas/WebAuthnDevice'
|
||||||
|
description: ''
|
||||||
|
'400':
|
||||||
|
$ref: '#/components/schemas/ValidationError'
|
||||||
|
'403':
|
||||||
|
$ref: '#/components/schemas/GenericError'
|
||||||
/authenticators/admin/webauthn/{id}/:
|
/authenticators/admin/webauthn/{id}/:
|
||||||
get:
|
get:
|
||||||
operationId: authenticators_admin_webauthn_retrieve
|
operationId: authenticators_admin_webauthn_retrieve
|
||||||
|
@ -655,6 +1023,88 @@ paths:
|
||||||
$ref: '#/components/schemas/ValidationError'
|
$ref: '#/components/schemas/ValidationError'
|
||||||
'403':
|
'403':
|
||||||
$ref: '#/components/schemas/GenericError'
|
$ref: '#/components/schemas/GenericError'
|
||||||
|
put:
|
||||||
|
operationId: authenticators_admin_webauthn_update
|
||||||
|
description: Viewset for WebAuthn authenticator devices (for admins)
|
||||||
|
parameters:
|
||||||
|
- in: path
|
||||||
|
name: id
|
||||||
|
schema:
|
||||||
|
type: integer
|
||||||
|
description: A unique integer value identifying this WebAuthn Device.
|
||||||
|
required: true
|
||||||
|
tags:
|
||||||
|
- authenticators
|
||||||
|
requestBody:
|
||||||
|
content:
|
||||||
|
application/json:
|
||||||
|
schema:
|
||||||
|
$ref: '#/components/schemas/WebAuthnDeviceRequest'
|
||||||
|
required: true
|
||||||
|
security:
|
||||||
|
- authentik: []
|
||||||
|
responses:
|
||||||
|
'200':
|
||||||
|
content:
|
||||||
|
application/json:
|
||||||
|
schema:
|
||||||
|
$ref: '#/components/schemas/WebAuthnDevice'
|
||||||
|
description: ''
|
||||||
|
'400':
|
||||||
|
$ref: '#/components/schemas/ValidationError'
|
||||||
|
'403':
|
||||||
|
$ref: '#/components/schemas/GenericError'
|
||||||
|
patch:
|
||||||
|
operationId: authenticators_admin_webauthn_partial_update
|
||||||
|
description: Viewset for WebAuthn authenticator devices (for admins)
|
||||||
|
parameters:
|
||||||
|
- in: path
|
||||||
|
name: id
|
||||||
|
schema:
|
||||||
|
type: integer
|
||||||
|
description: A unique integer value identifying this WebAuthn Device.
|
||||||
|
required: true
|
||||||
|
tags:
|
||||||
|
- authenticators
|
||||||
|
requestBody:
|
||||||
|
content:
|
||||||
|
application/json:
|
||||||
|
schema:
|
||||||
|
$ref: '#/components/schemas/PatchedWebAuthnDeviceRequest'
|
||||||
|
security:
|
||||||
|
- authentik: []
|
||||||
|
responses:
|
||||||
|
'200':
|
||||||
|
content:
|
||||||
|
application/json:
|
||||||
|
schema:
|
||||||
|
$ref: '#/components/schemas/WebAuthnDevice'
|
||||||
|
description: ''
|
||||||
|
'400':
|
||||||
|
$ref: '#/components/schemas/ValidationError'
|
||||||
|
'403':
|
||||||
|
$ref: '#/components/schemas/GenericError'
|
||||||
|
delete:
|
||||||
|
operationId: authenticators_admin_webauthn_destroy
|
||||||
|
description: Viewset for WebAuthn authenticator devices (for admins)
|
||||||
|
parameters:
|
||||||
|
- in: path
|
||||||
|
name: id
|
||||||
|
schema:
|
||||||
|
type: integer
|
||||||
|
description: A unique integer value identifying this WebAuthn Device.
|
||||||
|
required: true
|
||||||
|
tags:
|
||||||
|
- authenticators
|
||||||
|
security:
|
||||||
|
- authentik: []
|
||||||
|
responses:
|
||||||
|
'204':
|
||||||
|
description: No response body
|
||||||
|
'400':
|
||||||
|
$ref: '#/components/schemas/ValidationError'
|
||||||
|
'403':
|
||||||
|
$ref: '#/components/schemas/GenericError'
|
||||||
/authenticators/all/:
|
/authenticators/all/:
|
||||||
get:
|
get:
|
||||||
operationId: authenticators_all_list
|
operationId: authenticators_all_list
|
||||||
|
@ -1601,6 +2051,22 @@ paths:
|
||||||
operationId: core_applications_list
|
operationId: core_applications_list
|
||||||
description: Custom list method that checks Policy based access instead of guardian
|
description: Custom list method that checks Policy based access instead of guardian
|
||||||
parameters:
|
parameters:
|
||||||
|
- in: query
|
||||||
|
name: group
|
||||||
|
schema:
|
||||||
|
type: string
|
||||||
|
- in: query
|
||||||
|
name: meta_description
|
||||||
|
schema:
|
||||||
|
type: string
|
||||||
|
- in: query
|
||||||
|
name: meta_launch_url
|
||||||
|
schema:
|
||||||
|
type: string
|
||||||
|
- in: query
|
||||||
|
name: meta_publisher
|
||||||
|
schema:
|
||||||
|
type: string
|
||||||
- in: query
|
- in: query
|
||||||
name: name
|
name: name
|
||||||
schema:
|
schema:
|
||||||
|
@ -20742,7 +21208,10 @@ components:
|
||||||
type:
|
type:
|
||||||
type: string
|
type: string
|
||||||
readOnly: true
|
readOnly: true
|
||||||
|
confirmed:
|
||||||
|
type: boolean
|
||||||
required:
|
required:
|
||||||
|
- confirmed
|
||||||
- meta_model_name
|
- meta_model_name
|
||||||
- name
|
- name
|
||||||
- pk
|
- pk
|
||||||
|
|
|
@ -0,0 +1,95 @@
|
||||||
|
import { AKResponse } from "@goauthentik/web/api/Client";
|
||||||
|
import { DEFAULT_CONFIG } from "@goauthentik/web/api/Config";
|
||||||
|
import "@goauthentik/web/elements/forms/DeleteBulkForm";
|
||||||
|
import { TableColumn } from "@goauthentik/web/elements/table/Table";
|
||||||
|
import {
|
||||||
|
MFADevicesPage,
|
||||||
|
deviceTypeName,
|
||||||
|
} from "@goauthentik/web/user/user-settings/mfa/MFADevicesPage";
|
||||||
|
|
||||||
|
import { t } from "@lingui/macro";
|
||||||
|
|
||||||
|
import { TemplateResult, html } from "lit";
|
||||||
|
import { customElement, property } from "lit/decorators.js";
|
||||||
|
|
||||||
|
import { AuthenticatorsApi, Device } from "@goauthentik/api";
|
||||||
|
|
||||||
|
@customElement("ak-user-device-list")
|
||||||
|
export class UserDeviceList extends MFADevicesPage {
|
||||||
|
@property({ type: Number })
|
||||||
|
userId?: number;
|
||||||
|
|
||||||
|
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
||||||
|
async apiEndpoint(page: number): Promise<AKResponse<Device>> {
|
||||||
|
return new AuthenticatorsApi(DEFAULT_CONFIG)
|
||||||
|
.authenticatorsAdminAllList({
|
||||||
|
user: this.userId,
|
||||||
|
})
|
||||||
|
.then((res) => {
|
||||||
|
return {
|
||||||
|
pagination: {
|
||||||
|
count: res.length,
|
||||||
|
current: 1,
|
||||||
|
totalPages: 1,
|
||||||
|
startIndex: 1,
|
||||||
|
endIndex: res.length,
|
||||||
|
},
|
||||||
|
results: res,
|
||||||
|
};
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
async deleteWrapper(device: Device) {
|
||||||
|
switch (device.type) {
|
||||||
|
case "authentik_stages_authenticator_duo.DuoDevice":
|
||||||
|
return new AuthenticatorsApi(DEFAULT_CONFIG).authenticatorsAdminDuoDestroy({
|
||||||
|
id: device.pk,
|
||||||
|
});
|
||||||
|
case "authentik_stages_authenticator_sms.SMSDevice":
|
||||||
|
return new AuthenticatorsApi(DEFAULT_CONFIG).authenticatorsAdminSmsDestroy({
|
||||||
|
id: device.pk,
|
||||||
|
});
|
||||||
|
case "otp_totp.TOTPDevice":
|
||||||
|
return new AuthenticatorsApi(DEFAULT_CONFIG).authenticatorsAdminTotpDestroy({
|
||||||
|
id: device.pk,
|
||||||
|
});
|
||||||
|
case "otp_static.StaticDevice":
|
||||||
|
return new AuthenticatorsApi(DEFAULT_CONFIG).authenticatorsAdminStaticDestroy({
|
||||||
|
id: device.pk,
|
||||||
|
});
|
||||||
|
case "authentik_stages_authenticator_webauthn.WebAuthnDevice":
|
||||||
|
return new AuthenticatorsApi(DEFAULT_CONFIG).authenticatorsAdminWebauthnDestroy({
|
||||||
|
id: device.pk,
|
||||||
|
});
|
||||||
|
default:
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
columns(): TableColumn[] {
|
||||||
|
return [
|
||||||
|
new TableColumn(t`Name`, ""),
|
||||||
|
new TableColumn(t`Type`, ""),
|
||||||
|
new TableColumn(t`Confirmed`, ""),
|
||||||
|
];
|
||||||
|
}
|
||||||
|
|
||||||
|
renderToolbar(): TemplateResult {
|
||||||
|
return html` <ak-spinner-button
|
||||||
|
.callAction=${() => {
|
||||||
|
return this.fetch();
|
||||||
|
}}
|
||||||
|
class="pf-m-secondary"
|
||||||
|
>
|
||||||
|
${t`Refresh`}</ak-spinner-button
|
||||||
|
>`;
|
||||||
|
}
|
||||||
|
|
||||||
|
row(item: Device): TemplateResult[] {
|
||||||
|
return [
|
||||||
|
html`${item.name}`,
|
||||||
|
html`${deviceTypeName(item)}`,
|
||||||
|
html`${item.confirmed ? t`Yes` : t`No`}`,
|
||||||
|
];
|
||||||
|
}
|
||||||
|
}
|
|
@ -1151,6 +1151,10 @@ msgstr "Konfiguriere visuelle Einstellungen und Standards für verschiedene Doma
|
||||||
msgid "Configure what data should be used as unique User Identifier. For most cases, the default should be fine."
|
msgid "Configure what data should be used as unique User Identifier. For most cases, the default should be fine."
|
||||||
msgstr "onfigurieren Sie, welche Daten als eindeutige Benutzerkennung verwendet werden sollen. In den meisten Fällen sollte die Standardeinstellung in Ordnung sein."
|
msgstr "onfigurieren Sie, welche Daten als eindeutige Benutzerkennung verwendet werden sollen. In den meisten Fällen sollte die Standardeinstellung in Ordnung sein."
|
||||||
|
|
||||||
|
#: src/elements/user/UserDevicesList.ts
|
||||||
|
msgid "Confirmed"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: src/user/user-settings/sources/SourceSettingsOAuth.ts
|
#: src/user/user-settings/sources/SourceSettingsOAuth.ts
|
||||||
#: src/user/user-settings/sources/SourceSettingsPlex.ts
|
#: src/user/user-settings/sources/SourceSettingsPlex.ts
|
||||||
msgid "Connect"
|
msgid "Connect"
|
||||||
|
@ -3198,6 +3202,10 @@ msgstr ""
|
||||||
msgid "MESSAGE_CONTINUE will follow the ?next parameter if set, otherwise show a message."
|
msgid "MESSAGE_CONTINUE will follow the ?next parameter if set, otherwise show a message."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/pages/users/UserViewPage.ts
|
||||||
|
msgid "MFA Authenticators"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: src/user/user-settings/UserSettingsPage.ts
|
#: src/user/user-settings/UserSettingsPage.ts
|
||||||
msgid "MFA Devices"
|
msgid "MFA Devices"
|
||||||
msgstr "Multifaktor-Authentifzierungs Geräte"
|
msgstr "Multifaktor-Authentifzierungs Geräte"
|
||||||
|
@ -3342,6 +3350,7 @@ msgid "My applications"
|
||||||
msgstr "Meine Anwendungen"
|
msgstr "Meine Anwendungen"
|
||||||
|
|
||||||
#: src/elements/forms/DeleteBulkForm.ts
|
#: src/elements/forms/DeleteBulkForm.ts
|
||||||
|
#: src/elements/user/UserDevicesList.ts
|
||||||
#: src/pages/applications/ApplicationForm.ts
|
#: src/pages/applications/ApplicationForm.ts
|
||||||
#: src/pages/applications/ApplicationListPage.ts
|
#: src/pages/applications/ApplicationListPage.ts
|
||||||
#: src/pages/applications/wizard/InitialApplicationWizardPage.ts
|
#: src/pages/applications/wizard/InitialApplicationWizardPage.ts
|
||||||
|
@ -3515,6 +3524,7 @@ msgid "Nginx (standalone)"
|
||||||
msgstr "Nginx (eigenständig)"
|
msgstr "Nginx (eigenständig)"
|
||||||
|
|
||||||
#: src/elements/oauth/UserRefreshList.ts
|
#: src/elements/oauth/UserRefreshList.ts
|
||||||
|
#: src/elements/user/UserDevicesList.ts
|
||||||
#: src/pages/applications/ApplicationCheckAccessForm.ts
|
#: src/pages/applications/ApplicationCheckAccessForm.ts
|
||||||
#: src/pages/crypto/CertificateKeyPairListPage.ts
|
#: src/pages/crypto/CertificateKeyPairListPage.ts
|
||||||
#: src/pages/groups/GroupListPage.ts
|
#: src/pages/groups/GroupListPage.ts
|
||||||
|
@ -5988,6 +5998,7 @@ msgstr "Twilio Konto SID"
|
||||||
msgid "Twilio Auth Token"
|
msgid "Twilio Auth Token"
|
||||||
msgstr "Twilio Authentifizierungs Token"
|
msgstr "Twilio Authentifizierungs Token"
|
||||||
|
|
||||||
|
#: src/elements/user/UserDevicesList.ts
|
||||||
#: src/pages/flows/BoundStagesList.ts
|
#: src/pages/flows/BoundStagesList.ts
|
||||||
#: src/pages/outposts/OutpostForm.ts
|
#: src/pages/outposts/OutpostForm.ts
|
||||||
#: src/pages/outposts/OutpostListPage.ts
|
#: src/pages/outposts/OutpostListPage.ts
|
||||||
|
@ -6795,6 +6806,7 @@ msgid "XML-based SSO standard. Use this if your application only supports SAML."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/elements/oauth/UserRefreshList.ts
|
#: src/elements/oauth/UserRefreshList.ts
|
||||||
|
#: src/elements/user/UserDevicesList.ts
|
||||||
#: src/pages/applications/ApplicationCheckAccessForm.ts
|
#: src/pages/applications/ApplicationCheckAccessForm.ts
|
||||||
#: src/pages/groups/GroupListPage.ts
|
#: src/pages/groups/GroupListPage.ts
|
||||||
#: src/pages/groups/MemberSelectModal.ts
|
#: src/pages/groups/MemberSelectModal.ts
|
||||||
|
|
|
@ -1158,6 +1158,10 @@ msgstr "Configure visual settings and defaults for different domains."
|
||||||
msgid "Configure what data should be used as unique User Identifier. For most cases, the default should be fine."
|
msgid "Configure what data should be used as unique User Identifier. For most cases, the default should be fine."
|
||||||
msgstr "Configure what data should be used as unique User Identifier. For most cases, the default should be fine."
|
msgstr "Configure what data should be used as unique User Identifier. For most cases, the default should be fine."
|
||||||
|
|
||||||
|
#: src/elements/user/UserDevicesList.ts
|
||||||
|
msgid "Confirmed"
|
||||||
|
msgstr "Confirmed"
|
||||||
|
|
||||||
#: src/user/user-settings/sources/SourceSettingsOAuth.ts
|
#: src/user/user-settings/sources/SourceSettingsOAuth.ts
|
||||||
#: src/user/user-settings/sources/SourceSettingsPlex.ts
|
#: src/user/user-settings/sources/SourceSettingsPlex.ts
|
||||||
msgid "Connect"
|
msgid "Connect"
|
||||||
|
@ -3250,6 +3254,10 @@ msgstr "MESSAGE will notify the user the flow isn't applicable."
|
||||||
msgid "MESSAGE_CONTINUE will follow the ?next parameter if set, otherwise show a message."
|
msgid "MESSAGE_CONTINUE will follow the ?next parameter if set, otherwise show a message."
|
||||||
msgstr "MESSAGE_CONTINUE will follow the ?next parameter if set, otherwise show a message."
|
msgstr "MESSAGE_CONTINUE will follow the ?next parameter if set, otherwise show a message."
|
||||||
|
|
||||||
|
#: src/pages/users/UserViewPage.ts
|
||||||
|
msgid "MFA Authenticators"
|
||||||
|
msgstr "MFA Authenticators"
|
||||||
|
|
||||||
#: src/user/user-settings/UserSettingsPage.ts
|
#: src/user/user-settings/UserSettingsPage.ts
|
||||||
msgid "MFA Devices"
|
msgid "MFA Devices"
|
||||||
msgstr "MFA Devices"
|
msgstr "MFA Devices"
|
||||||
|
@ -3395,6 +3403,7 @@ msgid "My applications"
|
||||||
msgstr "My applications"
|
msgstr "My applications"
|
||||||
|
|
||||||
#: src/elements/forms/DeleteBulkForm.ts
|
#: src/elements/forms/DeleteBulkForm.ts
|
||||||
|
#: src/elements/user/UserDevicesList.ts
|
||||||
#: src/pages/applications/ApplicationForm.ts
|
#: src/pages/applications/ApplicationForm.ts
|
||||||
#: src/pages/applications/ApplicationListPage.ts
|
#: src/pages/applications/ApplicationListPage.ts
|
||||||
#: src/pages/applications/wizard/InitialApplicationWizardPage.ts
|
#: src/pages/applications/wizard/InitialApplicationWizardPage.ts
|
||||||
|
@ -3568,6 +3577,7 @@ msgid "Nginx (standalone)"
|
||||||
msgstr "Nginx (standalone)"
|
msgstr "Nginx (standalone)"
|
||||||
|
|
||||||
#: src/elements/oauth/UserRefreshList.ts
|
#: src/elements/oauth/UserRefreshList.ts
|
||||||
|
#: src/elements/user/UserDevicesList.ts
|
||||||
#: src/pages/applications/ApplicationCheckAccessForm.ts
|
#: src/pages/applications/ApplicationCheckAccessForm.ts
|
||||||
#: src/pages/crypto/CertificateKeyPairListPage.ts
|
#: src/pages/crypto/CertificateKeyPairListPage.ts
|
||||||
#: src/pages/groups/GroupListPage.ts
|
#: src/pages/groups/GroupListPage.ts
|
||||||
|
@ -6108,6 +6118,7 @@ msgstr "Twilio Account SID"
|
||||||
msgid "Twilio Auth Token"
|
msgid "Twilio Auth Token"
|
||||||
msgstr "Twilio Auth Token"
|
msgstr "Twilio Auth Token"
|
||||||
|
|
||||||
|
#: src/elements/user/UserDevicesList.ts
|
||||||
#: src/pages/flows/BoundStagesList.ts
|
#: src/pages/flows/BoundStagesList.ts
|
||||||
#: src/pages/outposts/OutpostForm.ts
|
#: src/pages/outposts/OutpostForm.ts
|
||||||
#: src/pages/outposts/OutpostListPage.ts
|
#: src/pages/outposts/OutpostListPage.ts
|
||||||
|
@ -6925,6 +6936,7 @@ msgid "XML-based SSO standard. Use this if your application only supports SAML."
|
||||||
msgstr "XML-based SSO standard. Use this if your application only supports SAML."
|
msgstr "XML-based SSO standard. Use this if your application only supports SAML."
|
||||||
|
|
||||||
#: src/elements/oauth/UserRefreshList.ts
|
#: src/elements/oauth/UserRefreshList.ts
|
||||||
|
#: src/elements/user/UserDevicesList.ts
|
||||||
#: src/pages/applications/ApplicationCheckAccessForm.ts
|
#: src/pages/applications/ApplicationCheckAccessForm.ts
|
||||||
#: src/pages/groups/GroupListPage.ts
|
#: src/pages/groups/GroupListPage.ts
|
||||||
#: src/pages/groups/MemberSelectModal.ts
|
#: src/pages/groups/MemberSelectModal.ts
|
||||||
|
|
|
@ -1142,6 +1142,10 @@ msgstr "Configure los ajustes visuales y los valores predeterminados para los di
|
||||||
msgid "Configure what data should be used as unique User Identifier. For most cases, the default should be fine."
|
msgid "Configure what data should be used as unique User Identifier. For most cases, the default should be fine."
|
||||||
msgstr "Configure qué datos deben usarse como identificador de usuario único. En la mayoría de los casos, el valor predeterminado debería estar bien."
|
msgstr "Configure qué datos deben usarse como identificador de usuario único. En la mayoría de los casos, el valor predeterminado debería estar bien."
|
||||||
|
|
||||||
|
#: src/elements/user/UserDevicesList.ts
|
||||||
|
msgid "Confirmed"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: src/user/user-settings/sources/SourceSettingsOAuth.ts
|
#: src/user/user-settings/sources/SourceSettingsOAuth.ts
|
||||||
#: src/user/user-settings/sources/SourceSettingsPlex.ts
|
#: src/user/user-settings/sources/SourceSettingsPlex.ts
|
||||||
msgid "Connect"
|
msgid "Connect"
|
||||||
|
@ -3191,6 +3195,10 @@ msgstr ""
|
||||||
msgid "MESSAGE_CONTINUE will follow the ?next parameter if set, otherwise show a message."
|
msgid "MESSAGE_CONTINUE will follow the ?next parameter if set, otherwise show a message."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/pages/users/UserViewPage.ts
|
||||||
|
msgid "MFA Authenticators"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: src/user/user-settings/UserSettingsPage.ts
|
#: src/user/user-settings/UserSettingsPage.ts
|
||||||
msgid "MFA Devices"
|
msgid "MFA Devices"
|
||||||
msgstr "Dispositivos de MFA"
|
msgstr "Dispositivos de MFA"
|
||||||
|
@ -3335,6 +3343,7 @@ msgid "My applications"
|
||||||
msgstr "Mis solicitudes"
|
msgstr "Mis solicitudes"
|
||||||
|
|
||||||
#: src/elements/forms/DeleteBulkForm.ts
|
#: src/elements/forms/DeleteBulkForm.ts
|
||||||
|
#: src/elements/user/UserDevicesList.ts
|
||||||
#: src/pages/applications/ApplicationForm.ts
|
#: src/pages/applications/ApplicationForm.ts
|
||||||
#: src/pages/applications/ApplicationListPage.ts
|
#: src/pages/applications/ApplicationListPage.ts
|
||||||
#: src/pages/applications/wizard/InitialApplicationWizardPage.ts
|
#: src/pages/applications/wizard/InitialApplicationWizardPage.ts
|
||||||
|
@ -3508,6 +3517,7 @@ msgid "Nginx (standalone)"
|
||||||
msgstr "Nginx (independiente)"
|
msgstr "Nginx (independiente)"
|
||||||
|
|
||||||
#: src/elements/oauth/UserRefreshList.ts
|
#: src/elements/oauth/UserRefreshList.ts
|
||||||
|
#: src/elements/user/UserDevicesList.ts
|
||||||
#: src/pages/applications/ApplicationCheckAccessForm.ts
|
#: src/pages/applications/ApplicationCheckAccessForm.ts
|
||||||
#: src/pages/crypto/CertificateKeyPairListPage.ts
|
#: src/pages/crypto/CertificateKeyPairListPage.ts
|
||||||
#: src/pages/groups/GroupListPage.ts
|
#: src/pages/groups/GroupListPage.ts
|
||||||
|
@ -5982,6 +5992,7 @@ msgstr "SID de cuenta Twilio"
|
||||||
msgid "Twilio Auth Token"
|
msgid "Twilio Auth Token"
|
||||||
msgstr "Token de autenticación de Twilio"
|
msgstr "Token de autenticación de Twilio"
|
||||||
|
|
||||||
|
#: src/elements/user/UserDevicesList.ts
|
||||||
#: src/pages/flows/BoundStagesList.ts
|
#: src/pages/flows/BoundStagesList.ts
|
||||||
#: src/pages/outposts/OutpostForm.ts
|
#: src/pages/outposts/OutpostForm.ts
|
||||||
#: src/pages/outposts/OutpostListPage.ts
|
#: src/pages/outposts/OutpostListPage.ts
|
||||||
|
@ -6789,6 +6800,7 @@ msgid "XML-based SSO standard. Use this if your application only supports SAML."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/elements/oauth/UserRefreshList.ts
|
#: src/elements/oauth/UserRefreshList.ts
|
||||||
|
#: src/elements/user/UserDevicesList.ts
|
||||||
#: src/pages/applications/ApplicationCheckAccessForm.ts
|
#: src/pages/applications/ApplicationCheckAccessForm.ts
|
||||||
#: src/pages/groups/GroupListPage.ts
|
#: src/pages/groups/GroupListPage.ts
|
||||||
#: src/pages/groups/MemberSelectModal.ts
|
#: src/pages/groups/MemberSelectModal.ts
|
||||||
|
|
|
@ -1151,6 +1151,10 @@ msgstr "Configure le paramètres visuels et par défaut des différents domaines
|
||||||
msgid "Configure what data should be used as unique User Identifier. For most cases, the default should be fine."
|
msgid "Configure what data should be used as unique User Identifier. For most cases, the default should be fine."
|
||||||
msgstr "Configure quelle donnée utiliser pour l'identifiant unique utilisateur. La valeur par défaut devrait être correcte dans la plupart des cas."
|
msgstr "Configure quelle donnée utiliser pour l'identifiant unique utilisateur. La valeur par défaut devrait être correcte dans la plupart des cas."
|
||||||
|
|
||||||
|
#: src/elements/user/UserDevicesList.ts
|
||||||
|
msgid "Confirmed"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: src/user/user-settings/sources/SourceSettingsOAuth.ts
|
#: src/user/user-settings/sources/SourceSettingsOAuth.ts
|
||||||
#: src/user/user-settings/sources/SourceSettingsPlex.ts
|
#: src/user/user-settings/sources/SourceSettingsPlex.ts
|
||||||
msgid "Connect"
|
msgid "Connect"
|
||||||
|
@ -3222,6 +3226,10 @@ msgstr ""
|
||||||
msgid "MESSAGE_CONTINUE will follow the ?next parameter if set, otherwise show a message."
|
msgid "MESSAGE_CONTINUE will follow the ?next parameter if set, otherwise show a message."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/pages/users/UserViewPage.ts
|
||||||
|
msgid "MFA Authenticators"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: src/user/user-settings/UserSettingsPage.ts
|
#: src/user/user-settings/UserSettingsPage.ts
|
||||||
msgid "MFA Devices"
|
msgid "MFA Devices"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
@ -3366,6 +3374,7 @@ msgid "My applications"
|
||||||
msgstr "Mes applications"
|
msgstr "Mes applications"
|
||||||
|
|
||||||
#: src/elements/forms/DeleteBulkForm.ts
|
#: src/elements/forms/DeleteBulkForm.ts
|
||||||
|
#: src/elements/user/UserDevicesList.ts
|
||||||
#: src/pages/applications/ApplicationForm.ts
|
#: src/pages/applications/ApplicationForm.ts
|
||||||
#: src/pages/applications/ApplicationListPage.ts
|
#: src/pages/applications/ApplicationListPage.ts
|
||||||
#: src/pages/applications/wizard/InitialApplicationWizardPage.ts
|
#: src/pages/applications/wizard/InitialApplicationWizardPage.ts
|
||||||
|
@ -3539,6 +3548,7 @@ msgid "Nginx (standalone)"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/elements/oauth/UserRefreshList.ts
|
#: src/elements/oauth/UserRefreshList.ts
|
||||||
|
#: src/elements/user/UserDevicesList.ts
|
||||||
#: src/pages/applications/ApplicationCheckAccessForm.ts
|
#: src/pages/applications/ApplicationCheckAccessForm.ts
|
||||||
#: src/pages/crypto/CertificateKeyPairListPage.ts
|
#: src/pages/crypto/CertificateKeyPairListPage.ts
|
||||||
#: src/pages/groups/GroupListPage.ts
|
#: src/pages/groups/GroupListPage.ts
|
||||||
|
@ -6040,6 +6050,7 @@ msgstr ""
|
||||||
msgid "Twilio Auth Token"
|
msgid "Twilio Auth Token"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/elements/user/UserDevicesList.ts
|
||||||
#: src/pages/flows/BoundStagesList.ts
|
#: src/pages/flows/BoundStagesList.ts
|
||||||
#: src/pages/outposts/OutpostForm.ts
|
#: src/pages/outposts/OutpostForm.ts
|
||||||
#: src/pages/outposts/OutpostListPage.ts
|
#: src/pages/outposts/OutpostListPage.ts
|
||||||
|
@ -6850,6 +6861,7 @@ msgid "XML-based SSO standard. Use this if your application only supports SAML."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/elements/oauth/UserRefreshList.ts
|
#: src/elements/oauth/UserRefreshList.ts
|
||||||
|
#: src/elements/user/UserDevicesList.ts
|
||||||
#: src/pages/applications/ApplicationCheckAccessForm.ts
|
#: src/pages/applications/ApplicationCheckAccessForm.ts
|
||||||
#: src/pages/groups/GroupListPage.ts
|
#: src/pages/groups/GroupListPage.ts
|
||||||
#: src/pages/groups/MemberSelectModal.ts
|
#: src/pages/groups/MemberSelectModal.ts
|
||||||
|
|
|
@ -1139,6 +1139,10 @@ msgstr "Skonfiguruj ustawienia wizualne i domyślne dla różnych domen."
|
||||||
msgid "Configure what data should be used as unique User Identifier. For most cases, the default should be fine."
|
msgid "Configure what data should be used as unique User Identifier. For most cases, the default should be fine."
|
||||||
msgstr "Skonfiguruj, jakie dane mają być używane jako unikalny identyfikator użytkownika. W większości przypadków wartość domyślna powinna być w porządku."
|
msgstr "Skonfiguruj, jakie dane mają być używane jako unikalny identyfikator użytkownika. W większości przypadków wartość domyślna powinna być w porządku."
|
||||||
|
|
||||||
|
#: src/elements/user/UserDevicesList.ts
|
||||||
|
msgid "Confirmed"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: src/user/user-settings/sources/SourceSettingsOAuth.ts
|
#: src/user/user-settings/sources/SourceSettingsOAuth.ts
|
||||||
#: src/user/user-settings/sources/SourceSettingsPlex.ts
|
#: src/user/user-settings/sources/SourceSettingsPlex.ts
|
||||||
msgid "Connect"
|
msgid "Connect"
|
||||||
|
@ -3188,6 +3192,10 @@ msgstr ""
|
||||||
msgid "MESSAGE_CONTINUE will follow the ?next parameter if set, otherwise show a message."
|
msgid "MESSAGE_CONTINUE will follow the ?next parameter if set, otherwise show a message."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/pages/users/UserViewPage.ts
|
||||||
|
msgid "MFA Authenticators"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: src/user/user-settings/UserSettingsPage.ts
|
#: src/user/user-settings/UserSettingsPage.ts
|
||||||
msgid "MFA Devices"
|
msgid "MFA Devices"
|
||||||
msgstr "Urządzenia MFA"
|
msgstr "Urządzenia MFA"
|
||||||
|
@ -3332,6 +3340,7 @@ msgid "My applications"
|
||||||
msgstr "Moje aplikacje"
|
msgstr "Moje aplikacje"
|
||||||
|
|
||||||
#: src/elements/forms/DeleteBulkForm.ts
|
#: src/elements/forms/DeleteBulkForm.ts
|
||||||
|
#: src/elements/user/UserDevicesList.ts
|
||||||
#: src/pages/applications/ApplicationForm.ts
|
#: src/pages/applications/ApplicationForm.ts
|
||||||
#: src/pages/applications/ApplicationListPage.ts
|
#: src/pages/applications/ApplicationListPage.ts
|
||||||
#: src/pages/applications/wizard/InitialApplicationWizardPage.ts
|
#: src/pages/applications/wizard/InitialApplicationWizardPage.ts
|
||||||
|
@ -3505,6 +3514,7 @@ msgid "Nginx (standalone)"
|
||||||
msgstr "Nginx (standalone)"
|
msgstr "Nginx (standalone)"
|
||||||
|
|
||||||
#: src/elements/oauth/UserRefreshList.ts
|
#: src/elements/oauth/UserRefreshList.ts
|
||||||
|
#: src/elements/user/UserDevicesList.ts
|
||||||
#: src/pages/applications/ApplicationCheckAccessForm.ts
|
#: src/pages/applications/ApplicationCheckAccessForm.ts
|
||||||
#: src/pages/crypto/CertificateKeyPairListPage.ts
|
#: src/pages/crypto/CertificateKeyPairListPage.ts
|
||||||
#: src/pages/groups/GroupListPage.ts
|
#: src/pages/groups/GroupListPage.ts
|
||||||
|
@ -5979,6 +5989,7 @@ msgstr "Twilio Account SID"
|
||||||
msgid "Twilio Auth Token"
|
msgid "Twilio Auth Token"
|
||||||
msgstr "Twilio Auth Token"
|
msgstr "Twilio Auth Token"
|
||||||
|
|
||||||
|
#: src/elements/user/UserDevicesList.ts
|
||||||
#: src/pages/flows/BoundStagesList.ts
|
#: src/pages/flows/BoundStagesList.ts
|
||||||
#: src/pages/outposts/OutpostForm.ts
|
#: src/pages/outposts/OutpostForm.ts
|
||||||
#: src/pages/outposts/OutpostListPage.ts
|
#: src/pages/outposts/OutpostListPage.ts
|
||||||
|
@ -6786,6 +6797,7 @@ msgid "XML-based SSO standard. Use this if your application only supports SAML."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/elements/oauth/UserRefreshList.ts
|
#: src/elements/oauth/UserRefreshList.ts
|
||||||
|
#: src/elements/user/UserDevicesList.ts
|
||||||
#: src/pages/applications/ApplicationCheckAccessForm.ts
|
#: src/pages/applications/ApplicationCheckAccessForm.ts
|
||||||
#: src/pages/groups/GroupListPage.ts
|
#: src/pages/groups/GroupListPage.ts
|
||||||
#: src/pages/groups/MemberSelectModal.ts
|
#: src/pages/groups/MemberSelectModal.ts
|
||||||
|
|
|
@ -1146,6 +1146,10 @@ msgstr ""
|
||||||
msgid "Configure what data should be used as unique User Identifier. For most cases, the default should be fine."
|
msgid "Configure what data should be used as unique User Identifier. For most cases, the default should be fine."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/elements/user/UserDevicesList.ts
|
||||||
|
msgid "Confirmed"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: src/user/user-settings/sources/SourceSettingsOAuth.ts
|
#: src/user/user-settings/sources/SourceSettingsOAuth.ts
|
||||||
#: src/user/user-settings/sources/SourceSettingsPlex.ts
|
#: src/user/user-settings/sources/SourceSettingsPlex.ts
|
||||||
msgid "Connect"
|
msgid "Connect"
|
||||||
|
@ -3232,6 +3236,10 @@ msgstr ""
|
||||||
msgid "MESSAGE_CONTINUE will follow the ?next parameter if set, otherwise show a message."
|
msgid "MESSAGE_CONTINUE will follow the ?next parameter if set, otherwise show a message."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/pages/users/UserViewPage.ts
|
||||||
|
msgid "MFA Authenticators"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: src/user/user-settings/UserSettingsPage.ts
|
#: src/user/user-settings/UserSettingsPage.ts
|
||||||
msgid "MFA Devices"
|
msgid "MFA Devices"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
@ -3377,6 +3385,7 @@ msgid "My applications"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/elements/forms/DeleteBulkForm.ts
|
#: src/elements/forms/DeleteBulkForm.ts
|
||||||
|
#: src/elements/user/UserDevicesList.ts
|
||||||
#: src/pages/applications/ApplicationForm.ts
|
#: src/pages/applications/ApplicationForm.ts
|
||||||
#: src/pages/applications/ApplicationListPage.ts
|
#: src/pages/applications/ApplicationListPage.ts
|
||||||
#: src/pages/applications/wizard/InitialApplicationWizardPage.ts
|
#: src/pages/applications/wizard/InitialApplicationWizardPage.ts
|
||||||
|
@ -3550,6 +3559,7 @@ msgid "Nginx (standalone)"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/elements/oauth/UserRefreshList.ts
|
#: src/elements/oauth/UserRefreshList.ts
|
||||||
|
#: src/elements/user/UserDevicesList.ts
|
||||||
#: src/pages/applications/ApplicationCheckAccessForm.ts
|
#: src/pages/applications/ApplicationCheckAccessForm.ts
|
||||||
#: src/pages/crypto/CertificateKeyPairListPage.ts
|
#: src/pages/crypto/CertificateKeyPairListPage.ts
|
||||||
#: src/pages/groups/GroupListPage.ts
|
#: src/pages/groups/GroupListPage.ts
|
||||||
|
@ -6078,6 +6088,7 @@ msgstr ""
|
||||||
msgid "Twilio Auth Token"
|
msgid "Twilio Auth Token"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/elements/user/UserDevicesList.ts
|
||||||
#: src/pages/flows/BoundStagesList.ts
|
#: src/pages/flows/BoundStagesList.ts
|
||||||
#: src/pages/outposts/OutpostForm.ts
|
#: src/pages/outposts/OutpostForm.ts
|
||||||
#: src/pages/outposts/OutpostListPage.ts
|
#: src/pages/outposts/OutpostListPage.ts
|
||||||
|
@ -6891,6 +6902,7 @@ msgid "XML-based SSO standard. Use this if your application only supports SAML."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/elements/oauth/UserRefreshList.ts
|
#: src/elements/oauth/UserRefreshList.ts
|
||||||
|
#: src/elements/user/UserDevicesList.ts
|
||||||
#: src/pages/applications/ApplicationCheckAccessForm.ts
|
#: src/pages/applications/ApplicationCheckAccessForm.ts
|
||||||
#: src/pages/groups/GroupListPage.ts
|
#: src/pages/groups/GroupListPage.ts
|
||||||
#: src/pages/groups/MemberSelectModal.ts
|
#: src/pages/groups/MemberSelectModal.ts
|
||||||
|
|
|
@ -1142,6 +1142,10 @@ msgstr "Farklı etki alanları için görsel ayarları ve varsayılanları yapı
|
||||||
msgid "Configure what data should be used as unique User Identifier. For most cases, the default should be fine."
|
msgid "Configure what data should be used as unique User Identifier. For most cases, the default should be fine."
|
||||||
msgstr "Hangi verilerin benzersiz Kullanıcı Tanımlayıcısı olarak kullanılması gerektiğini yapılandırın. Çoğu durumda, varsayılan seçim yeterlidir."
|
msgstr "Hangi verilerin benzersiz Kullanıcı Tanımlayıcısı olarak kullanılması gerektiğini yapılandırın. Çoğu durumda, varsayılan seçim yeterlidir."
|
||||||
|
|
||||||
|
#: src/elements/user/UserDevicesList.ts
|
||||||
|
msgid "Confirmed"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: src/user/user-settings/sources/SourceSettingsOAuth.ts
|
#: src/user/user-settings/sources/SourceSettingsOAuth.ts
|
||||||
#: src/user/user-settings/sources/SourceSettingsPlex.ts
|
#: src/user/user-settings/sources/SourceSettingsPlex.ts
|
||||||
msgid "Connect"
|
msgid "Connect"
|
||||||
|
@ -3192,6 +3196,10 @@ msgstr ""
|
||||||
msgid "MESSAGE_CONTINUE will follow the ?next parameter if set, otherwise show a message."
|
msgid "MESSAGE_CONTINUE will follow the ?next parameter if set, otherwise show a message."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/pages/users/UserViewPage.ts
|
||||||
|
msgid "MFA Authenticators"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: src/user/user-settings/UserSettingsPage.ts
|
#: src/user/user-settings/UserSettingsPage.ts
|
||||||
msgid "MFA Devices"
|
msgid "MFA Devices"
|
||||||
msgstr "MFA Cihazları"
|
msgstr "MFA Cihazları"
|
||||||
|
@ -3336,6 +3344,7 @@ msgid "My applications"
|
||||||
msgstr "Uygulamalarım"
|
msgstr "Uygulamalarım"
|
||||||
|
|
||||||
#: src/elements/forms/DeleteBulkForm.ts
|
#: src/elements/forms/DeleteBulkForm.ts
|
||||||
|
#: src/elements/user/UserDevicesList.ts
|
||||||
#: src/pages/applications/ApplicationForm.ts
|
#: src/pages/applications/ApplicationForm.ts
|
||||||
#: src/pages/applications/ApplicationListPage.ts
|
#: src/pages/applications/ApplicationListPage.ts
|
||||||
#: src/pages/applications/wizard/InitialApplicationWizardPage.ts
|
#: src/pages/applications/wizard/InitialApplicationWizardPage.ts
|
||||||
|
@ -3509,6 +3518,7 @@ msgid "Nginx (standalone)"
|
||||||
msgstr "Nginx (bağımsız)"
|
msgstr "Nginx (bağımsız)"
|
||||||
|
|
||||||
#: src/elements/oauth/UserRefreshList.ts
|
#: src/elements/oauth/UserRefreshList.ts
|
||||||
|
#: src/elements/user/UserDevicesList.ts
|
||||||
#: src/pages/applications/ApplicationCheckAccessForm.ts
|
#: src/pages/applications/ApplicationCheckAccessForm.ts
|
||||||
#: src/pages/crypto/CertificateKeyPairListPage.ts
|
#: src/pages/crypto/CertificateKeyPairListPage.ts
|
||||||
#: src/pages/groups/GroupListPage.ts
|
#: src/pages/groups/GroupListPage.ts
|
||||||
|
@ -5984,6 +5994,7 @@ msgstr "Twilio Hesabı SID"
|
||||||
msgid "Twilio Auth Token"
|
msgid "Twilio Auth Token"
|
||||||
msgstr "Twilio Auth Belirteci"
|
msgstr "Twilio Auth Belirteci"
|
||||||
|
|
||||||
|
#: src/elements/user/UserDevicesList.ts
|
||||||
#: src/pages/flows/BoundStagesList.ts
|
#: src/pages/flows/BoundStagesList.ts
|
||||||
#: src/pages/outposts/OutpostForm.ts
|
#: src/pages/outposts/OutpostForm.ts
|
||||||
#: src/pages/outposts/OutpostListPage.ts
|
#: src/pages/outposts/OutpostListPage.ts
|
||||||
|
@ -6791,6 +6802,7 @@ msgid "XML-based SSO standard. Use this if your application only supports SAML."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/elements/oauth/UserRefreshList.ts
|
#: src/elements/oauth/UserRefreshList.ts
|
||||||
|
#: src/elements/user/UserDevicesList.ts
|
||||||
#: src/pages/applications/ApplicationCheckAccessForm.ts
|
#: src/pages/applications/ApplicationCheckAccessForm.ts
|
||||||
#: src/pages/groups/GroupListPage.ts
|
#: src/pages/groups/GroupListPage.ts
|
||||||
#: src/pages/groups/MemberSelectModal.ts
|
#: src/pages/groups/MemberSelectModal.ts
|
||||||
|
|
|
@ -1137,6 +1137,10 @@ msgstr "配置不同域名的可视化设置和默认值。"
|
||||||
msgid "Configure what data should be used as unique User Identifier. For most cases, the default should be fine."
|
msgid "Configure what data should be used as unique User Identifier. For most cases, the default should be fine."
|
||||||
msgstr "配置应将哪些数据用作唯一用户标识符。在大多数情况下保持默认值即可。"
|
msgstr "配置应将哪些数据用作唯一用户标识符。在大多数情况下保持默认值即可。"
|
||||||
|
|
||||||
|
#: src/elements/user/UserDevicesList.ts
|
||||||
|
msgid "Confirmed"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: src/user/user-settings/sources/SourceSettingsOAuth.ts
|
#: src/user/user-settings/sources/SourceSettingsOAuth.ts
|
||||||
#: src/user/user-settings/sources/SourceSettingsPlex.ts
|
#: src/user/user-settings/sources/SourceSettingsPlex.ts
|
||||||
msgid "Connect"
|
msgid "Connect"
|
||||||
|
@ -3174,6 +3178,10 @@ msgstr ""
|
||||||
msgid "MESSAGE_CONTINUE will follow the ?next parameter if set, otherwise show a message."
|
msgid "MESSAGE_CONTINUE will follow the ?next parameter if set, otherwise show a message."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/pages/users/UserViewPage.ts
|
||||||
|
msgid "MFA Authenticators"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: src/user/user-settings/UserSettingsPage.ts
|
#: src/user/user-settings/UserSettingsPage.ts
|
||||||
msgid "MFA Devices"
|
msgid "MFA Devices"
|
||||||
msgstr "MFA 设备"
|
msgstr "MFA 设备"
|
||||||
|
@ -3318,6 +3326,7 @@ msgid "My applications"
|
||||||
msgstr "我的应用"
|
msgstr "我的应用"
|
||||||
|
|
||||||
#: src/elements/forms/DeleteBulkForm.ts
|
#: src/elements/forms/DeleteBulkForm.ts
|
||||||
|
#: src/elements/user/UserDevicesList.ts
|
||||||
#: src/pages/applications/ApplicationForm.ts
|
#: src/pages/applications/ApplicationForm.ts
|
||||||
#: src/pages/applications/ApplicationListPage.ts
|
#: src/pages/applications/ApplicationListPage.ts
|
||||||
#: src/pages/applications/wizard/InitialApplicationWizardPage.ts
|
#: src/pages/applications/wizard/InitialApplicationWizardPage.ts
|
||||||
|
@ -3491,6 +3500,7 @@ msgid "Nginx (standalone)"
|
||||||
msgstr "Nginx(独立)"
|
msgstr "Nginx(独立)"
|
||||||
|
|
||||||
#: src/elements/oauth/UserRefreshList.ts
|
#: src/elements/oauth/UserRefreshList.ts
|
||||||
|
#: src/elements/user/UserDevicesList.ts
|
||||||
#: src/pages/applications/ApplicationCheckAccessForm.ts
|
#: src/pages/applications/ApplicationCheckAccessForm.ts
|
||||||
#: src/pages/crypto/CertificateKeyPairListPage.ts
|
#: src/pages/crypto/CertificateKeyPairListPage.ts
|
||||||
#: src/pages/groups/GroupListPage.ts
|
#: src/pages/groups/GroupListPage.ts
|
||||||
|
@ -5945,6 +5955,7 @@ msgstr "Twilio 账户 SID"
|
||||||
msgid "Twilio Auth Token"
|
msgid "Twilio Auth Token"
|
||||||
msgstr "Twilio 身份验证令牌"
|
msgstr "Twilio 身份验证令牌"
|
||||||
|
|
||||||
|
#: src/elements/user/UserDevicesList.ts
|
||||||
#: src/pages/flows/BoundStagesList.ts
|
#: src/pages/flows/BoundStagesList.ts
|
||||||
#: src/pages/outposts/OutpostForm.ts
|
#: src/pages/outposts/OutpostForm.ts
|
||||||
#: src/pages/outposts/OutpostListPage.ts
|
#: src/pages/outposts/OutpostListPage.ts
|
||||||
|
@ -6753,6 +6764,7 @@ msgid "XML-based SSO standard. Use this if your application only supports SAML."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/elements/oauth/UserRefreshList.ts
|
#: src/elements/oauth/UserRefreshList.ts
|
||||||
|
#: src/elements/user/UserDevicesList.ts
|
||||||
#: src/pages/applications/ApplicationCheckAccessForm.ts
|
#: src/pages/applications/ApplicationCheckAccessForm.ts
|
||||||
#: src/pages/groups/GroupListPage.ts
|
#: src/pages/groups/GroupListPage.ts
|
||||||
#: src/pages/groups/MemberSelectModal.ts
|
#: src/pages/groups/MemberSelectModal.ts
|
||||||
|
|
|
@ -1139,6 +1139,10 @@ msgstr "配置不同域的可视化设置和默认值。"
|
||||||
msgid "Configure what data should be used as unique User Identifier. For most cases, the default should be fine."
|
msgid "Configure what data should be used as unique User Identifier. For most cases, the default should be fine."
|
||||||
msgstr "配置应将哪些数据用作唯一用户标识符。在大多数情况下,默认值应该没问题。"
|
msgstr "配置应将哪些数据用作唯一用户标识符。在大多数情况下,默认值应该没问题。"
|
||||||
|
|
||||||
|
#: src/elements/user/UserDevicesList.ts
|
||||||
|
msgid "Confirmed"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: src/user/user-settings/sources/SourceSettingsOAuth.ts
|
#: src/user/user-settings/sources/SourceSettingsOAuth.ts
|
||||||
#: src/user/user-settings/sources/SourceSettingsPlex.ts
|
#: src/user/user-settings/sources/SourceSettingsPlex.ts
|
||||||
msgid "Connect"
|
msgid "Connect"
|
||||||
|
@ -3178,6 +3182,10 @@ msgstr ""
|
||||||
msgid "MESSAGE_CONTINUE will follow the ?next parameter if set, otherwise show a message."
|
msgid "MESSAGE_CONTINUE will follow the ?next parameter if set, otherwise show a message."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/pages/users/UserViewPage.ts
|
||||||
|
msgid "MFA Authenticators"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: src/user/user-settings/UserSettingsPage.ts
|
#: src/user/user-settings/UserSettingsPage.ts
|
||||||
msgid "MFA Devices"
|
msgid "MFA Devices"
|
||||||
msgstr "MFA 设备"
|
msgstr "MFA 设备"
|
||||||
|
@ -3322,6 +3330,7 @@ msgid "My applications"
|
||||||
msgstr "我的应用"
|
msgstr "我的应用"
|
||||||
|
|
||||||
#: src/elements/forms/DeleteBulkForm.ts
|
#: src/elements/forms/DeleteBulkForm.ts
|
||||||
|
#: src/elements/user/UserDevicesList.ts
|
||||||
#: src/pages/applications/ApplicationForm.ts
|
#: src/pages/applications/ApplicationForm.ts
|
||||||
#: src/pages/applications/ApplicationListPage.ts
|
#: src/pages/applications/ApplicationListPage.ts
|
||||||
#: src/pages/applications/wizard/InitialApplicationWizardPage.ts
|
#: src/pages/applications/wizard/InitialApplicationWizardPage.ts
|
||||||
|
@ -3495,6 +3504,7 @@ msgid "Nginx (standalone)"
|
||||||
msgstr "Nginx (standalone)"
|
msgstr "Nginx (standalone)"
|
||||||
|
|
||||||
#: src/elements/oauth/UserRefreshList.ts
|
#: src/elements/oauth/UserRefreshList.ts
|
||||||
|
#: src/elements/user/UserDevicesList.ts
|
||||||
#: src/pages/applications/ApplicationCheckAccessForm.ts
|
#: src/pages/applications/ApplicationCheckAccessForm.ts
|
||||||
#: src/pages/crypto/CertificateKeyPairListPage.ts
|
#: src/pages/crypto/CertificateKeyPairListPage.ts
|
||||||
#: src/pages/groups/GroupListPage.ts
|
#: src/pages/groups/GroupListPage.ts
|
||||||
|
@ -5954,6 +5964,7 @@ msgstr "Twilio 账户 SID"
|
||||||
msgid "Twilio Auth Token"
|
msgid "Twilio Auth Token"
|
||||||
msgstr "Twilio 身份验证令牌"
|
msgstr "Twilio 身份验证令牌"
|
||||||
|
|
||||||
|
#: src/elements/user/UserDevicesList.ts
|
||||||
#: src/pages/flows/BoundStagesList.ts
|
#: src/pages/flows/BoundStagesList.ts
|
||||||
#: src/pages/outposts/OutpostForm.ts
|
#: src/pages/outposts/OutpostForm.ts
|
||||||
#: src/pages/outposts/OutpostListPage.ts
|
#: src/pages/outposts/OutpostListPage.ts
|
||||||
|
@ -6763,6 +6774,7 @@ msgid "XML-based SSO standard. Use this if your application only supports SAML."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/elements/oauth/UserRefreshList.ts
|
#: src/elements/oauth/UserRefreshList.ts
|
||||||
|
#: src/elements/user/UserDevicesList.ts
|
||||||
#: src/pages/applications/ApplicationCheckAccessForm.ts
|
#: src/pages/applications/ApplicationCheckAccessForm.ts
|
||||||
#: src/pages/groups/GroupListPage.ts
|
#: src/pages/groups/GroupListPage.ts
|
||||||
#: src/pages/groups/MemberSelectModal.ts
|
#: src/pages/groups/MemberSelectModal.ts
|
||||||
|
|
|
@ -1139,6 +1139,10 @@ msgstr "配置不同域的可视化设置和默认值。"
|
||||||
msgid "Configure what data should be used as unique User Identifier. For most cases, the default should be fine."
|
msgid "Configure what data should be used as unique User Identifier. For most cases, the default should be fine."
|
||||||
msgstr "配置应将哪些数据用作唯一用户标识符。在大多数情况下,默认值应该没问题。"
|
msgstr "配置应将哪些数据用作唯一用户标识符。在大多数情况下,默认值应该没问题。"
|
||||||
|
|
||||||
|
#: src/elements/user/UserDevicesList.ts
|
||||||
|
msgid "Confirmed"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: src/user/user-settings/sources/SourceSettingsOAuth.ts
|
#: src/user/user-settings/sources/SourceSettingsOAuth.ts
|
||||||
#: src/user/user-settings/sources/SourceSettingsPlex.ts
|
#: src/user/user-settings/sources/SourceSettingsPlex.ts
|
||||||
msgid "Connect"
|
msgid "Connect"
|
||||||
|
@ -3178,6 +3182,10 @@ msgstr ""
|
||||||
msgid "MESSAGE_CONTINUE will follow the ?next parameter if set, otherwise show a message."
|
msgid "MESSAGE_CONTINUE will follow the ?next parameter if set, otherwise show a message."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/pages/users/UserViewPage.ts
|
||||||
|
msgid "MFA Authenticators"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: src/user/user-settings/UserSettingsPage.ts
|
#: src/user/user-settings/UserSettingsPage.ts
|
||||||
msgid "MFA Devices"
|
msgid "MFA Devices"
|
||||||
msgstr "MFA 设备"
|
msgstr "MFA 设备"
|
||||||
|
@ -3322,6 +3330,7 @@ msgid "My applications"
|
||||||
msgstr "我的应用"
|
msgstr "我的应用"
|
||||||
|
|
||||||
#: src/elements/forms/DeleteBulkForm.ts
|
#: src/elements/forms/DeleteBulkForm.ts
|
||||||
|
#: src/elements/user/UserDevicesList.ts
|
||||||
#: src/pages/applications/ApplicationForm.ts
|
#: src/pages/applications/ApplicationForm.ts
|
||||||
#: src/pages/applications/ApplicationListPage.ts
|
#: src/pages/applications/ApplicationListPage.ts
|
||||||
#: src/pages/applications/wizard/InitialApplicationWizardPage.ts
|
#: src/pages/applications/wizard/InitialApplicationWizardPage.ts
|
||||||
|
@ -3495,6 +3504,7 @@ msgid "Nginx (standalone)"
|
||||||
msgstr "Nginx (standalone)"
|
msgstr "Nginx (standalone)"
|
||||||
|
|
||||||
#: src/elements/oauth/UserRefreshList.ts
|
#: src/elements/oauth/UserRefreshList.ts
|
||||||
|
#: src/elements/user/UserDevicesList.ts
|
||||||
#: src/pages/applications/ApplicationCheckAccessForm.ts
|
#: src/pages/applications/ApplicationCheckAccessForm.ts
|
||||||
#: src/pages/crypto/CertificateKeyPairListPage.ts
|
#: src/pages/crypto/CertificateKeyPairListPage.ts
|
||||||
#: src/pages/groups/GroupListPage.ts
|
#: src/pages/groups/GroupListPage.ts
|
||||||
|
@ -5954,6 +5964,7 @@ msgstr "Twilio 账户 SID"
|
||||||
msgid "Twilio Auth Token"
|
msgid "Twilio Auth Token"
|
||||||
msgstr "Twilio 身份验证令牌"
|
msgstr "Twilio 身份验证令牌"
|
||||||
|
|
||||||
|
#: src/elements/user/UserDevicesList.ts
|
||||||
#: src/pages/flows/BoundStagesList.ts
|
#: src/pages/flows/BoundStagesList.ts
|
||||||
#: src/pages/outposts/OutpostForm.ts
|
#: src/pages/outposts/OutpostForm.ts
|
||||||
#: src/pages/outposts/OutpostListPage.ts
|
#: src/pages/outposts/OutpostListPage.ts
|
||||||
|
@ -6763,6 +6774,7 @@ msgid "XML-based SSO standard. Use this if your application only supports SAML."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/elements/oauth/UserRefreshList.ts
|
#: src/elements/oauth/UserRefreshList.ts
|
||||||
|
#: src/elements/user/UserDevicesList.ts
|
||||||
#: src/pages/applications/ApplicationCheckAccessForm.ts
|
#: src/pages/applications/ApplicationCheckAccessForm.ts
|
||||||
#: src/pages/groups/GroupListPage.ts
|
#: src/pages/groups/GroupListPage.ts
|
||||||
#: src/pages/groups/MemberSelectModal.ts
|
#: src/pages/groups/MemberSelectModal.ts
|
||||||
|
|
|
@ -16,6 +16,7 @@ import { showMessage } from "@goauthentik/web/elements/messages/MessageContainer
|
||||||
import "@goauthentik/web/elements/oauth/UserRefreshList";
|
import "@goauthentik/web/elements/oauth/UserRefreshList";
|
||||||
import "@goauthentik/web/elements/user/SessionList";
|
import "@goauthentik/web/elements/user/SessionList";
|
||||||
import "@goauthentik/web/elements/user/UserConsentList";
|
import "@goauthentik/web/elements/user/UserConsentList";
|
||||||
|
import "@goauthentik/web/elements/user/UserDevicesList";
|
||||||
import "@goauthentik/web/pages/groups/RelatedGroupList";
|
import "@goauthentik/web/pages/groups/RelatedGroupList";
|
||||||
import "@goauthentik/web/pages/users/UserActiveForm";
|
import "@goauthentik/web/pages/users/UserActiveForm";
|
||||||
import "@goauthentik/web/pages/users/UserForm";
|
import "@goauthentik/web/pages/users/UserForm";
|
||||||
|
@ -351,6 +352,17 @@ export class UserViewPage extends LitElement {
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</section>
|
</section>
|
||||||
|
<section
|
||||||
|
slot="page-mfa-authenticators"
|
||||||
|
data-tab-title="${t`MFA Authenticators`}"
|
||||||
|
class="pf-c-page__main-section pf-m-no-padding-mobile"
|
||||||
|
>
|
||||||
|
<div class="pf-c-card">
|
||||||
|
<div class="pf-c-card__body">
|
||||||
|
<ak-user-device-list userId=${this.user.pk}> </ak-user-device-list>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</section>
|
||||||
</ak-tabs>`;
|
</ak-tabs>`;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -34,6 +34,17 @@ export function stageToAuthenticatorName(stage: UserSetting): string {
|
||||||
return `Invalid stage component ${stage.component}`;
|
return `Invalid stage component ${stage.component}`;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
export function deviceTypeName(device: Device): string {
|
||||||
|
switch (device.type) {
|
||||||
|
case "otp_static.StaticDevice":
|
||||||
|
return t`Static tokens`;
|
||||||
|
case "otp_totp.TOTPDevice":
|
||||||
|
return t`TOTP Device`;
|
||||||
|
default:
|
||||||
|
return device.verboseName;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
@customElement("ak-user-settings-mfa")
|
@customElement("ak-user-settings-mfa")
|
||||||
export class MFADevicesPage extends Table<Device> {
|
export class MFADevicesPage extends Table<Device> {
|
||||||
@property({ attribute: false })
|
@property({ attribute: false })
|
||||||
|
@ -143,21 +154,10 @@ export class MFADevicesPage extends Table<Device> {
|
||||||
</ak-forms-delete-bulk>`;
|
</ak-forms-delete-bulk>`;
|
||||||
}
|
}
|
||||||
|
|
||||||
deviceTypeName(device: Device): string {
|
|
||||||
switch (device.type) {
|
|
||||||
case "otp_static.StaticDevice":
|
|
||||||
return t`Static tokens`;
|
|
||||||
case "otp_totp.TOTPDevice":
|
|
||||||
return t`TOTP Device`;
|
|
||||||
default:
|
|
||||||
return device.verboseName;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
row(item: Device): TemplateResult[] {
|
row(item: Device): TemplateResult[] {
|
||||||
return [
|
return [
|
||||||
html`${item.name}`,
|
html`${item.name}`,
|
||||||
html`${this.deviceTypeName(item)}`,
|
html`${deviceTypeName(item)}`,
|
||||||
html`
|
html`
|
||||||
<ak-forms-modal>
|
<ak-forms-modal>
|
||||||
<span slot="submit">${t`Update`}</span>
|
<span slot="submit">${t`Update`}</span>
|
||||||
|
|
Reference in New Issue