list session api
This commit is contained in:
parent
be4df13c78
commit
9c81505a46
3 changed files with 27 additions and 2 deletions
|
|
@ -1,4 +1,5 @@
|
|||
from django.core.validators import RegexValidator
|
||||
from oauth2_provider.models import get_access_token_model
|
||||
from rest_framework import serializers
|
||||
|
||||
from apps.users.models import User
|
||||
|
|
@ -133,3 +134,11 @@ class ChangePasswordSerializer(serializers.Serializer):
|
|||
old_password = serializers.CharField(required=True)
|
||||
old_password_field = serializers.CharField(default='password')
|
||||
new_password = serializers.CharField(required=True)
|
||||
|
||||
|
||||
AccessToken = get_access_token_model()
|
||||
class SessionSerializer(serializers.ModelSerializer):
|
||||
class Meta:
|
||||
model = AccessToken
|
||||
fields = ('uuid', 'token', 'created', "detail")
|
||||
read_only_fields = ['uuid', 'token', 'created', "detail"]
|
||||
|
|
|
|||
|
|
@ -2,7 +2,7 @@ from django.urls import path
|
|||
from django.contrib.auth.views import LogoutView
|
||||
from .views import UserListView, UserPublicRetrieveView, AccountView, RequestOTPView, ChangePasswordView, \
|
||||
OTPLoginView, ProfileDetailView, ProfileUpdateView, RequestOTTView, UserCurrentAvatarUrlView, UserInquiryView, \
|
||||
UserDetailedRetrieveView
|
||||
UserDetailedRetrieveView, UserSessionListView
|
||||
|
||||
app_name = "users"
|
||||
|
||||
|
|
@ -13,6 +13,7 @@ urlpatterns = [
|
|||
path('account/update/', ProfileUpdateView.as_view(), name='account_update'),
|
||||
path('api/account/', AccountView.as_view(), name='account_api'),
|
||||
path('api/users/', UserListView.as_view(), name='user_list_api'),
|
||||
path('api/sessions/', UserSessionListView.as_view(), name='user_sessions_api'),
|
||||
path('api/users/<uuid>/', UserPublicRetrieveView.as_view(), name='user_public_retrieve_api'),
|
||||
path('api/users/<uuid>/avatar', UserCurrentAvatarUrlView.as_view(), name='user_avatar_api'),
|
||||
path('api/users/<uuid>/details', UserDetailedRetrieveView.as_view(), name='user_detailed_retrieve_api'),
|
||||
|
|
|
|||
|
|
@ -20,7 +20,7 @@ from apps.users.forms import OTPAuthenticationForm, ProfileUpdateForm
|
|||
from apps.users.models import User
|
||||
from apps.users.provinces_and_cities import State
|
||||
from apps.users.serializers import PublicUserSerializer, AccountSerializer, RequestOTPSerializer, RequestOTTSerializer, \
|
||||
ChangePasswordSerializer, UserInquirySerializer
|
||||
ChangePasswordSerializer, UserInquirySerializer, SessionSerializer
|
||||
from utils.throttles import RequestOTPDayRateThrottle, RequestOTPMinRateThrottle
|
||||
|
||||
UserModel = get_user_model()
|
||||
|
|
@ -180,3 +180,18 @@ class ProfileUpdateView(UpdateView):
|
|||
|
||||
def form_valid(self, form):
|
||||
return super().form_valid(form)
|
||||
|
||||
|
||||
class UserSessionListView(generics.ListAPIView):
|
||||
permission_classes = [IsAuthenticatedOrTokenMatchesOASRequirements]
|
||||
serializer_class = SessionSerializer
|
||||
filter_backends = (DjangoFilterBackend,)
|
||||
|
||||
required_alternate_scopes = {
|
||||
"GET": [["accounts.account:retrieve"]],
|
||||
}
|
||||
|
||||
def get_queryset(self):
|
||||
from apps.gooyal_oauth2.models import AccessToken
|
||||
return AccessToken.objects.filter(user=self.request.user).all()
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue