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
|
# ConversationService/MessageService/ReadStateService are mocked at the
|
||||||
# class level so this stays a unit test of the participants_info wiring
|
# class level so this stays a unit test of the participants_info wiring
|
||||||
# and never opens a real connection to Mattermost.
|
# 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.chat.views.conversations import UserConversationListView
|
||||||
|
from apps.users.models import User
|
||||||
|
|
||||||
user_1, user_2 = uuid.uuid4(), uuid.uuid4()
|
user_1, user_2 = uuid.uuid4(), uuid.uuid4()
|
||||||
mock_bulk.return_value = {
|
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
|
mock_read_svc_cls.return_value.has_unread.return_value = False
|
||||||
|
|
||||||
request = APIRequestFactory().get(f"/api/users/{user_1}/chats/")
|
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)
|
response = UserConversationListView.as_view()(request, user_uuid=user_1)
|
||||||
|
|
||||||
assert response.status_code == 200
|
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.conversation import ConversationService
|
||||||
from apps.chat.services.message import MessageService
|
from apps.chat.services.message import MessageService
|
||||||
from apps.chat.services.read_state import ReadStateService
|
from apps.chat.services.read_state import ReadStateService
|
||||||
|
from apps.gooyal_oauth2.rest_framework import IsAuthenticatedOrTokenMatchesOASRequirements
|
||||||
|
|
||||||
|
|
||||||
class ConversationCreateView(APIView):
|
class ConversationCreateView(APIView):
|
||||||
authentication_classes = []
|
permission_classes = [IsAuthenticatedOrTokenMatchesOASRequirements]
|
||||||
permission_classes = []
|
required_alternate_scopes = {
|
||||||
|
"POST": [[]],
|
||||||
|
}
|
||||||
|
|
||||||
@extend_schema(
|
@extend_schema(
|
||||||
request=CreateConversationSerializer,
|
request=CreateConversationSerializer,
|
||||||
|
|
@ -45,8 +48,10 @@ class ConversationCreateView(APIView):
|
||||||
|
|
||||||
|
|
||||||
class UserConversationListView(APIView):
|
class UserConversationListView(APIView):
|
||||||
authentication_classes = []
|
permission_classes = [IsAuthenticatedOrTokenMatchesOASRequirements]
|
||||||
permission_classes = []
|
required_alternate_scopes = {
|
||||||
|
"GET": [[]],
|
||||||
|
}
|
||||||
|
|
||||||
@extend_schema(
|
@extend_schema(
|
||||||
parameters=[
|
parameters=[
|
||||||
|
|
@ -117,8 +122,10 @@ class UserConversationListView(APIView):
|
||||||
|
|
||||||
|
|
||||||
class ConversationCloseView(APIView):
|
class ConversationCloseView(APIView):
|
||||||
authentication_classes = []
|
permission_classes = [IsAuthenticatedOrTokenMatchesOASRequirements]
|
||||||
permission_classes = []
|
required_alternate_scopes = {
|
||||||
|
"POST": [[]],
|
||||||
|
}
|
||||||
|
|
||||||
@extend_schema(
|
@extend_schema(
|
||||||
request=ConversationUserActionSerializer,
|
request=ConversationUserActionSerializer,
|
||||||
|
|
@ -136,8 +143,10 @@ class ConversationCloseView(APIView):
|
||||||
|
|
||||||
|
|
||||||
class ConversationReopenView(APIView):
|
class ConversationReopenView(APIView):
|
||||||
authentication_classes = []
|
permission_classes = [IsAuthenticatedOrTokenMatchesOASRequirements]
|
||||||
permission_classes = []
|
required_alternate_scopes = {
|
||||||
|
"POST": [[]],
|
||||||
|
}
|
||||||
|
|
||||||
@extend_schema(
|
@extend_schema(
|
||||||
request=ConversationUserActionSerializer,
|
request=ConversationUserActionSerializer,
|
||||||
|
|
|
||||||
|
|
@ -8,11 +8,15 @@ from rest_framework.views import APIView
|
||||||
from apps.chat.exceptions import ConversationClosedError
|
from apps.chat.exceptions import ConversationClosedError
|
||||||
from apps.chat.serializers.messages import MessageSerializer, SendMessageSerializer
|
from apps.chat.serializers.messages import MessageSerializer, SendMessageSerializer
|
||||||
from apps.chat.services.message import MessageService
|
from apps.chat.services.message import MessageService
|
||||||
|
from apps.gooyal_oauth2.rest_framework import IsAuthenticatedOrTokenMatchesOASRequirements
|
||||||
|
|
||||||
|
|
||||||
class MessageView(APIView):
|
class MessageView(APIView):
|
||||||
authentication_classes = []
|
permission_classes = [IsAuthenticatedOrTokenMatchesOASRequirements]
|
||||||
permission_classes = []
|
required_alternate_scopes = {
|
||||||
|
"GET": [[]],
|
||||||
|
"POST": [[]],
|
||||||
|
}
|
||||||
|
|
||||||
@extend_schema(
|
@extend_schema(
|
||||||
request=SendMessageSerializer,
|
request=SendMessageSerializer,
|
||||||
|
|
|
||||||
|
|
@ -5,11 +5,14 @@ from rest_framework.viewsets import GenericViewSet
|
||||||
|
|
||||||
from apps.chat.serializers.presign import PresignResultSerializer, SignContentSerializer
|
from apps.chat.serializers.presign import PresignResultSerializer, SignContentSerializer
|
||||||
from apps.chat.services.storage import StorageService
|
from apps.chat.services.storage import StorageService
|
||||||
|
from apps.gooyal_oauth2.rest_framework import IsAuthenticatedOrTokenMatchesOASRequirements
|
||||||
|
|
||||||
|
|
||||||
class PresignViewSet(GenericViewSet):
|
class PresignViewSet(GenericViewSet):
|
||||||
authentication_classes = []
|
permission_classes = [IsAuthenticatedOrTokenMatchesOASRequirements]
|
||||||
permission_classes = []
|
required_alternate_scopes = {
|
||||||
|
"POST": [[]],
|
||||||
|
}
|
||||||
serializer_class = SignContentSerializer
|
serializer_class = SignContentSerializer
|
||||||
|
|
||||||
@extend_schema(
|
@extend_schema(
|
||||||
|
|
|
||||||
|
|
@ -10,11 +10,14 @@ from rest_framework.views import APIView
|
||||||
from apps.chat.serializers.messages import MessageSerializer
|
from apps.chat.serializers.messages import MessageSerializer
|
||||||
from apps.chat.serializers.read_state import MarkReadSerializer, ReadStateSerializer
|
from apps.chat.serializers.read_state import MarkReadSerializer, ReadStateSerializer
|
||||||
from apps.chat.services.read_state import ReadStateService
|
from apps.chat.services.read_state import ReadStateService
|
||||||
|
from apps.gooyal_oauth2.rest_framework import IsAuthenticatedOrTokenMatchesOASRequirements
|
||||||
|
|
||||||
|
|
||||||
class ReadStateView(APIView):
|
class ReadStateView(APIView):
|
||||||
authentication_classes = []
|
permission_classes = [IsAuthenticatedOrTokenMatchesOASRequirements]
|
||||||
permission_classes = []
|
required_alternate_scopes = {
|
||||||
|
"POST": [[]],
|
||||||
|
}
|
||||||
|
|
||||||
@extend_schema(
|
@extend_schema(
|
||||||
request=MarkReadSerializer,
|
request=MarkReadSerializer,
|
||||||
|
|
@ -43,8 +46,10 @@ class ReadStateView(APIView):
|
||||||
|
|
||||||
|
|
||||||
class ChatEventsView(APIView):
|
class ChatEventsView(APIView):
|
||||||
authentication_classes = []
|
permission_classes = [IsAuthenticatedOrTokenMatchesOASRequirements]
|
||||||
permission_classes = []
|
required_alternate_scopes = {
|
||||||
|
"GET": [[]],
|
||||||
|
}
|
||||||
|
|
||||||
@extend_schema(
|
@extend_schema(
|
||||||
responses={200: MessageSerializer(many=True)},
|
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.serializers.reports import CreateReportSerializer, ReportSerializer
|
||||||
from apps.chat.services.report import ReportService
|
from apps.chat.services.report import ReportService
|
||||||
|
from apps.gooyal_oauth2.rest_framework import IsAuthenticatedOrTokenMatchesOASRequirements
|
||||||
|
|
||||||
|
|
||||||
class ConversationReportView(APIView):
|
class ConversationReportView(APIView):
|
||||||
authentication_classes = []
|
permission_classes = [IsAuthenticatedOrTokenMatchesOASRequirements]
|
||||||
permission_classes = []
|
required_alternate_scopes = {
|
||||||
|
"POST": [[]],
|
||||||
|
}
|
||||||
|
|
||||||
@extend_schema(
|
@extend_schema(
|
||||||
request=CreateReportSerializer,
|
request=CreateReportSerializer,
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue