core: add current attribute to authenticated_session API
Signed-off-by: Jens Langhammer <jens.langhammer@beryju.org>
This commit is contained in:
parent
45b8b1e198
commit
059da74d1c
|
@ -1,6 +1,8 @@
|
||||||
"""AuthenticatedSessions API Viewset"""
|
"""AuthenticatedSessions API Viewset"""
|
||||||
from guardian.utils import get_anonymous_user
|
from guardian.utils import get_anonymous_user
|
||||||
from rest_framework import mixins
|
from rest_framework import mixins
|
||||||
|
from rest_framework.fields import SerializerMethodField
|
||||||
|
from rest_framework.request import Request
|
||||||
from rest_framework.serializers import ModelSerializer
|
from rest_framework.serializers import ModelSerializer
|
||||||
from rest_framework.viewsets import GenericViewSet
|
from rest_framework.viewsets import GenericViewSet
|
||||||
|
|
||||||
|
@ -10,11 +12,19 @@ from authentik.core.models import AuthenticatedSession
|
||||||
class AuthenticatedSessionSerializer(ModelSerializer):
|
class AuthenticatedSessionSerializer(ModelSerializer):
|
||||||
"""AuthenticatedSession Serializer"""
|
"""AuthenticatedSession Serializer"""
|
||||||
|
|
||||||
|
current = SerializerMethodField()
|
||||||
|
|
||||||
|
def get_current(self, instance: AuthenticatedSession) -> bool:
|
||||||
|
"""Check if session is currently active session"""
|
||||||
|
request: Request = self.context["request"]
|
||||||
|
return request._request.session.session_key == instance.session_key
|
||||||
|
|
||||||
class Meta:
|
class Meta:
|
||||||
|
|
||||||
model = AuthenticatedSession
|
model = AuthenticatedSession
|
||||||
fields = [
|
fields = [
|
||||||
"uuid",
|
"uuid",
|
||||||
|
"current",
|
||||||
"user",
|
"user",
|
||||||
"last_ip",
|
"last_ip",
|
||||||
"last_user_agent",
|
"last_user_agent",
|
||||||
|
|
|
@ -15569,6 +15569,9 @@ components:
|
||||||
uuid:
|
uuid:
|
||||||
type: string
|
type: string
|
||||||
format: uuid
|
format: uuid
|
||||||
|
current:
|
||||||
|
type: boolean
|
||||||
|
readOnly: true
|
||||||
user:
|
user:
|
||||||
type: integer
|
type: integer
|
||||||
last_ip:
|
last_ip:
|
||||||
|
@ -15583,6 +15586,7 @@ components:
|
||||||
type: string
|
type: string
|
||||||
format: date-time
|
format: date-time
|
||||||
required:
|
required:
|
||||||
|
- current
|
||||||
- last_ip
|
- last_ip
|
||||||
- last_used
|
- last_used
|
||||||
- user
|
- user
|
||||||
|
|
Reference in a new issue