MCPcopy
hub / github.com/1Panel-dev/MaxKB / handle

Method handle

apps/common/auth/handle/impl/application_key.py:20–42  ·  view source on GitHub ↗
(self, request, token: str, get_token_details)

Source from the content-addressed store, hash-verified

18
19class 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-')

Callers

nothing calls this directly

Calls 4

ChatAuthClass · 0.90
PermissionClass · 0.90
getMethod · 0.45

Tested by

no test coverage detected