bugfix #465
@ -51,7 +51,7 @@ class APIUserToken(models.Model):
|
||||
if token_obj.valid_until is not None and token_obj.valid_until < _today:
|
||||
raise PermissionError("Token validity expired")
|
||||
except ObjectDoesNotExist:
|
||||
raise PermissionError("Credentials invalid")
|
||||
raise PermissionError("Token unknown")
|
||||
return token_obj.user
|
||||
|
||||
|
||||
|
@ -50,14 +50,19 @@ class AbstractAPIView(View):
|
||||
def dispatch(self, request, *args, **kwargs):
|
||||
try:
|
||||
# Fetch the proper user from the given request header token
|
||||
ksp_token = request.headers.get(KSP_TOKEN_HEADER_IDENTIFIER, None)
|
||||
token = request.headers.get(KSP_TOKEN_HEADER_IDENTIFIER, None)
|
||||
ksp_user = request.headers.get(KSP_USER_HEADER_IDENTIFIER, None)
|
||||
token_user = APIUserToken.get_user_from_token(ksp_token)
|
||||
|
||||
if ksp_user != token_user.username:
|
||||
if not token and not ksp_user:
|
||||
bearer_token = request.headers.get("authorization", None)
|
||||
if not bearer_token:
|
||||
raise PermissionError("No token provided")
|
||||
token = bearer_token.split(" ")[1]
|
||||
|
||||
token_user = APIUserToken.get_user_from_token(token)
|
||||
if ksp_user and ksp_user != token_user.username:
|
||||
raise PermissionError(f"Invalid token for {ksp_user}")
|
||||
else:
|
||||
self.user = token_user
|
||||
self.user = token_user
|
||||
|
||||
request.user = self.user
|
||||
if not self.user.is_default_user():
|
||||
|
@ -82,8 +82,8 @@ class Command(BaseKonovaCommand):
|
||||
atom_id = element.find("atomid").text
|
||||
selectable = element.find("selectable").text.lower()
|
||||
selectable = bool_map.get(selectable, False)
|
||||
short_name = element.find("shortname").text
|
||||
long_name = element.find("longname").text
|
||||
short_name = element.find("shortname").text or ""
|
||||
long_name = element.find("longname").text or ""
|
||||
is_archived = bool_map.get((element.find("archive").text.lower()), False)
|
||||
|
||||
code = KonovaCode.objects.get_or_create(
|
||||
|
Loading…
Reference in New Issue
Block a user