(self, request, token: str, get_token_details)
| 18 | |
| 19 | class ApplicationKey(AuthBaseHandle): |
| 20 | def handle(self, request, token: str, get_token_details): |
| 21 | application_api_key = QuerySet(ApplicationApiKey).filter(secret_key=token).first() |
| 22 | if application_api_key is None: |
| 23 | raise AppAuthenticationFailed(500, _('Secret key is invalid')) |
| 24 | if not application_api_key.is_active: |
| 25 | raise AppAuthenticationFailed(500, _('Secret key is invalid')) |
| 26 | if application_api_key.is_permanent is False and application_api_key.expire_time < timezone.now(): |
| 27 | raise AppAuthenticationFailed(500, _('Secret key is expired')) |
| 28 | application_access_token = QuerySet(ApplicationAccessToken).filter( |
| 29 | application_id=application_api_key.application_id).first() |
| 30 | if application_access_token is not None: |
| 31 | if application_access_token.authentication: |
| 32 | if application_access_token.authentication_value.get('type', |
| 33 | 'password') != 'password': |
| 34 | raise AppAuthenticationFailed(1002, _('Authentication information is incorrect')) |
| 35 | return None, ChatAuth( |
| 36 | current_role_list=[RoleConstants.CHAT_ANONYMOUS_USER], |
| 37 | permission_list=[ |
| 38 | Permission(group=Group.APPLICATION, |
| 39 | operate=Operate.READ)], |
| 40 | application_id=application_api_key.application_id, |
| 41 | chat_user_id=str(application_api_key.id), |
| 42 | chat_user_type=ChatUserType.APPLICATION_API_KEY.value) |
| 43 | |
| 44 | def support(self, request, token: str, get_token_details): |
| 45 | return str(token).startswith("application-") or str(token).startswith('agent-') |
nothing calls this directly
no test coverage detected