Skip to content

Commit 4a03bf9

Browse files
committed
fix(filestore): check for failed token before parsing
1 parent 79b0621 commit 4a03bf9

File tree

1 file changed

+15
-8
lines changed

1 file changed

+15
-8
lines changed

users/filestore.py

+15-8
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,10 @@ def use_filestore_auth(user: User):
3333
return None
3434
verify, host = get_rest_host()
3535
user_login = get_user_login(user)
36-
return get_filestore_token(user_login, host, verify)
36+
user_token, status = get_filestore_token(user_login, host, verify)
37+
if not user_token:
38+
return None
39+
return user_token
3740

3841

3942
def get_filestore_token(user_login, host, verify):
@@ -43,8 +46,8 @@ def get_filestore_token(user_login, host, verify):
4346
r_userlogin.raise_for_status()
4447
except (requests.exceptions.ConnectionError, requests.exceptions.HTTPError) as err:
4548
print("{0}: ".format(err))
46-
return None
47-
return r_userlogin.text
49+
return None, r_userlogin.status_code
50+
return r_userlogin.text, r_userlogin.status_code
4851

4952

5053
def add_filestore_auth(user: User):
@@ -53,7 +56,7 @@ def add_filestore_auth(user: User):
5356
verify, host = get_rest_host()
5457
# get auth for setting new user
5558
admin_login = get_admin_login()
56-
admin_token = get_filestore_token(admin_login, host, verify)
59+
admin_token, status = get_filestore_token(admin_login, host, verify)
5760
if not admin_token:
5861
return False
5962
# get user defaults from global settings
@@ -90,19 +93,21 @@ def add_filestore_auth(user: User):
9093
if user.is_staff: # admin and staff get root scope
9194
set_filestore_scope(user)
9295

93-
return use_filestore_auth(user)
96+
fs_user_token = use_filestore_auth(user)
97+
return fs_user_token
9498

9599

96100
def set_filestore_scope(user: User):
97101
verify, host = get_rest_host()
98102
# get auth for setting new user
99103
admin_login = get_admin_login()
100-
admin_token = get_filestore_token(admin_login, host, verify)
104+
admin_token, status = get_filestore_token(admin_login, host, verify)
101105
if not admin_token:
102106
return False
103107
# find user
104108
fs_user_token = use_filestore_auth(user)
105-
# TODO: dev1 jwt.exceptions.DecodeError: Invalid token type. Token must be a <class 'bytes'>
109+
if not fs_user_token:
110+
return False
106111
payload = jwt.decode(fs_user_token, options={"verify_signature": False})
107112
try:
108113
r_user = requests.get(f"https://{host}/storemng/api/users/{payload['user']['id']}",
@@ -142,11 +147,13 @@ def delete_filestore_user(user: User):
142147
verify, host = get_rest_host()
143148
# get auth for removing user
144149
admin_login = get_admin_login()
145-
admin_token = get_filestore_token(admin_login, host, verify)
150+
admin_token, status = get_filestore_token(admin_login, host, verify)
146151
if not admin_token:
147152
return False
148153
# find user
149154
fs_user_token = use_filestore_auth(user)
155+
if not fs_user_token:
156+
return False
150157
payload = jwt.decode(fs_user_token, options={"verify_signature": False})
151158
try:
152159
r_user = requests.get(f"https://{host}/storemng/api/users/{payload['user']['id']}",

0 commit comments

Comments
 (0)