feature(chat): adding authentication
adding authentication
This commit is contained in:
parent
9d9727008a
commit
3e81a0a0f1
6 changed files with 45 additions and 19 deletions
|
|
@ -83,9 +83,10 @@ def test_user_conversation_list_view_enriches_participants_once_per_page(
|
|||
# ConversationService/MessageService/ReadStateService are mocked at the
|
||||
# class level so this stays a unit test of the participants_info wiring
|
||||
# and never opens a real connection to Mattermost.
|
||||
from rest_framework.test import APIRequestFactory
|
||||
from rest_framework.test import APIRequestFactory, force_authenticate
|
||||
|
||||
from apps.chat.views.conversations import UserConversationListView
|
||||
from apps.users.models import User
|
||||
|
||||
user_1, user_2 = uuid.uuid4(), uuid.uuid4()
|
||||
mock_bulk.return_value = {
|
||||
|
|
@ -102,6 +103,7 @@ def test_user_conversation_list_view_enriches_participants_once_per_page(
|
|||
mock_read_svc_cls.return_value.has_unread.return_value = False
|
||||
|
||||
request = APIRequestFactory().get(f"/api/users/{user_1}/chats/")
|
||||
force_authenticate(request, user=User.objects.create_user(pk=uuid.uuid4()))
|
||||
response = UserConversationListView.as_view()(request, user_uuid=user_1)
|
||||
|
||||
assert response.status_code == 200
|
||||
|
|
|
|||
|
|
@ -17,11 +17,14 @@ from apps.chat.services.account import AccountService
|
|||
from apps.chat.services.conversation import ConversationService
|
||||
from apps.chat.services.message import MessageService
|
||||
from apps.chat.services.read_state import ReadStateService
|
||||
from apps.gooyal_oauth2.rest_framework import IsAuthenticatedOrTokenMatchesOASRequirements
|
||||
|
||||
|
||||
class ConversationCreateView(APIView):
|
||||
authentication_classes = []
|
||||
permission_classes = []
|
||||
permission_classes = [IsAuthenticatedOrTokenMatchesOASRequirements]
|
||||
required_alternate_scopes = {
|
||||
"POST": [[]],
|
||||
}
|
||||
|
||||
@extend_schema(
|
||||
request=CreateConversationSerializer,
|
||||
|
|
@ -45,8 +48,10 @@ class ConversationCreateView(APIView):
|
|||
|
||||
|
||||
class UserConversationListView(APIView):
|
||||
authentication_classes = []
|
||||
permission_classes = []
|
||||
permission_classes = [IsAuthenticatedOrTokenMatchesOASRequirements]
|
||||
required_alternate_scopes = {
|
||||
"GET": [[]],
|
||||
}
|
||||
|
||||
@extend_schema(
|
||||
parameters=[
|
||||
|
|
@ -117,8 +122,10 @@ class UserConversationListView(APIView):
|
|||
|
||||
|
||||
class ConversationCloseView(APIView):
|
||||
authentication_classes = []
|
||||
permission_classes = []
|
||||
permission_classes = [IsAuthenticatedOrTokenMatchesOASRequirements]
|
||||
required_alternate_scopes = {
|
||||
"POST": [[]],
|
||||
}
|
||||
|
||||
@extend_schema(
|
||||
request=ConversationUserActionSerializer,
|
||||
|
|
@ -136,8 +143,10 @@ class ConversationCloseView(APIView):
|
|||
|
||||
|
||||
class ConversationReopenView(APIView):
|
||||
authentication_classes = []
|
||||
permission_classes = []
|
||||
permission_classes = [IsAuthenticatedOrTokenMatchesOASRequirements]
|
||||
required_alternate_scopes = {
|
||||
"POST": [[]],
|
||||
}
|
||||
|
||||
@extend_schema(
|
||||
request=ConversationUserActionSerializer,
|
||||
|
|
|
|||
|
|
@ -8,11 +8,15 @@ from rest_framework.views import APIView
|
|||
from apps.chat.exceptions import ConversationClosedError
|
||||
from apps.chat.serializers.messages import MessageSerializer, SendMessageSerializer
|
||||
from apps.chat.services.message import MessageService
|
||||
from apps.gooyal_oauth2.rest_framework import IsAuthenticatedOrTokenMatchesOASRequirements
|
||||
|
||||
|
||||
class MessageView(APIView):
|
||||
authentication_classes = []
|
||||
permission_classes = []
|
||||
permission_classes = [IsAuthenticatedOrTokenMatchesOASRequirements]
|
||||
required_alternate_scopes = {
|
||||
"GET": [[]],
|
||||
"POST": [[]],
|
||||
}
|
||||
|
||||
@extend_schema(
|
||||
request=SendMessageSerializer,
|
||||
|
|
|
|||
|
|
@ -5,11 +5,14 @@ from rest_framework.viewsets import GenericViewSet
|
|||
|
||||
from apps.chat.serializers.presign import PresignResultSerializer, SignContentSerializer
|
||||
from apps.chat.services.storage import StorageService
|
||||
from apps.gooyal_oauth2.rest_framework import IsAuthenticatedOrTokenMatchesOASRequirements
|
||||
|
||||
|
||||
class PresignViewSet(GenericViewSet):
|
||||
authentication_classes = []
|
||||
permission_classes = []
|
||||
permission_classes = [IsAuthenticatedOrTokenMatchesOASRequirements]
|
||||
required_alternate_scopes = {
|
||||
"POST": [[]],
|
||||
}
|
||||
serializer_class = SignContentSerializer
|
||||
|
||||
@extend_schema(
|
||||
|
|
|
|||
|
|
@ -10,11 +10,14 @@ from rest_framework.views import APIView
|
|||
from apps.chat.serializers.messages import MessageSerializer
|
||||
from apps.chat.serializers.read_state import MarkReadSerializer, ReadStateSerializer
|
||||
from apps.chat.services.read_state import ReadStateService
|
||||
from apps.gooyal_oauth2.rest_framework import IsAuthenticatedOrTokenMatchesOASRequirements
|
||||
|
||||
|
||||
class ReadStateView(APIView):
|
||||
authentication_classes = []
|
||||
permission_classes = []
|
||||
permission_classes = [IsAuthenticatedOrTokenMatchesOASRequirements]
|
||||
required_alternate_scopes = {
|
||||
"POST": [[]],
|
||||
}
|
||||
|
||||
@extend_schema(
|
||||
request=MarkReadSerializer,
|
||||
|
|
@ -43,8 +46,10 @@ class ReadStateView(APIView):
|
|||
|
||||
|
||||
class ChatEventsView(APIView):
|
||||
authentication_classes = []
|
||||
permission_classes = []
|
||||
permission_classes = [IsAuthenticatedOrTokenMatchesOASRequirements]
|
||||
required_alternate_scopes = {
|
||||
"GET": [[]],
|
||||
}
|
||||
|
||||
@extend_schema(
|
||||
responses={200: MessageSerializer(many=True)},
|
||||
|
|
|
|||
|
|
@ -7,11 +7,14 @@ from rest_framework.views import APIView
|
|||
|
||||
from apps.chat.serializers.reports import CreateReportSerializer, ReportSerializer
|
||||
from apps.chat.services.report import ReportService
|
||||
from apps.gooyal_oauth2.rest_framework import IsAuthenticatedOrTokenMatchesOASRequirements
|
||||
|
||||
|
||||
class ConversationReportView(APIView):
|
||||
authentication_classes = []
|
||||
permission_classes = []
|
||||
permission_classes = [IsAuthenticatedOrTokenMatchesOASRequirements]
|
||||
required_alternate_scopes = {
|
||||
"POST": [[]],
|
||||
}
|
||||
|
||||
@extend_schema(
|
||||
request=CreateReportSerializer,
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue