|
13 | 13 | from functools import reduce |
14 | 14 | from io import BytesIO |
15 | 15 | from typing import Dict |
16 | | -import pytz |
| 16 | + |
17 | 17 | import openpyxl |
| 18 | +import pytz |
18 | 19 | from django.core import validators |
19 | 20 | from django.core.cache import caches |
20 | 21 | from django.db import transaction, models |
|
34 | 35 | from application.serializers.chat_message_serializers import ChatInfo |
35 | 36 | from common.constants.permission_constants import RoleConstants |
36 | 37 | from common.db.search import native_search, native_page_search, page_search, get_dynamics_model |
37 | | -from common.exception.app_exception import AppApiException |
| 38 | +from common.exception.app_exception import AppApiException, AppUnauthorizedFailed |
38 | 39 | from common.util.common import post |
39 | 40 | from common.util.field_message import ErrMessage |
40 | 41 | from common.util.file_util import get_file_content |
@@ -484,6 +485,13 @@ class Query(serializers.Serializer): |
484 | 485 | chat_id = serializers.UUIDField(required=True) |
485 | 486 | order_asc = serializers.BooleanField(required=False, allow_null=True) |
486 | 487 |
|
| 488 | + def is_valid(self, *, raise_exception=False): |
| 489 | + super().is_valid(raise_exception=True) |
| 490 | + exist = QuerySet(Chat).filter(id=self.data.get("chat_id"), |
| 491 | + application_id=self.data.get("application_id")).exists() |
| 492 | + if not exist: |
| 493 | + raise AppUnauthorizedFailed(403, _('No permission to access')) |
| 494 | + |
487 | 495 | def list(self, with_valid=True): |
488 | 496 | if with_valid: |
489 | 497 | self.is_valid(raise_exception=True) |
|
0 commit comments