Skip to content

Commit 79b0621

Browse files
committed
fix(filestore): correct staff scope for new user login
1 parent 577b8e1 commit 79b0621

File tree

2 files changed

+6
-9
lines changed

2 files changed

+6
-9
lines changed

users/filestore.py

+5-5
Original file line numberDiff line numberDiff line change
@@ -75,11 +75,8 @@ def add_filestore_auth(user: User):
7575
fs_user["data"]["password"] = user.password
7676
fs_user["data"]["lockPassword"] = True
7777
fs_user["data"]["perm"]["admin"] = user.is_superuser
78-
if user.is_staff: # admin and staff get root scope
79-
fs_user["data"]["scope"] = "."
80-
else:
81-
# setting scope in users POST will generate user dir
82-
fs_user["data"]["scope"] = get_user_scope(user)
78+
# setting scope in users POST will generate user dir
79+
fs_user["data"]["scope"] = get_user_scope(user)
8380

8481
# add new user to filestore db
8582
try:
@@ -90,6 +87,9 @@ def add_filestore_auth(user: User):
9087
print("{0}: ".format(err))
9188
return None
9289

90+
if user.is_staff: # admin and staff get root scope
91+
set_filestore_scope(user)
92+
9393
return use_filestore_auth(user)
9494

9595

users/views.py

+1-4
Original file line numberDiff line numberDiff line change
@@ -326,8 +326,8 @@ def profile_update_staff(request):
326326
status=status.HTTP_500_INTERNAL_SERVER_ERROR,
327327
)
328328
staff_username = form.cleaned_data["staff_username"]
329-
is_staff = form.cleaned_data["is_staff"]
330329
if (request.user.is_superuser and User.objects.filter(username=staff_username).exists()):
330+
is_staff = bool(form.cleaned_data["is_staff"])
331331
print(f"Setting Django user {staff_username}, staff={is_staff}")
332332
user = User.objects.get(username=staff_username)
333333
user.is_staff = is_staff
@@ -623,9 +623,6 @@ def storelogin(request):
623623
# otherwise user needs to be added
624624
fs_user_token = add_filestore_auth(user)
625625

626-
# second, for staff, override automatic user-only scope, so staff users have root scope
627-
set_filestore_scope(user)
628-
629626
response = HttpResponse()
630627
if fs_user_token:
631628
response.set_cookie("auth", fs_user_token)

0 commit comments

Comments
 (0)