From 3f5758aa7fbfc63659294119a35b317f901507bb Mon Sep 17 00:00:00 2001 From: Georg Krause Date: Wed, 7 Jun 2023 09:12:16 +0200 Subject: [PATCH] feat(cli): Implicitly set staff flag if superuser flag is set --- api/funkwhale_api/cli/users.py | 2 +- api/tests/cli/test_users.py | 16 ++++++++++++++++ 2 files changed, 17 insertions(+), 1 deletion(-) diff --git a/api/funkwhale_api/cli/users.py b/api/funkwhale_api/cli/users.py index 0921a73e1..c9c7aaa47 100644 --- a/api/funkwhale_api/cli/users.py +++ b/api/funkwhale_api/cli/users.py @@ -38,7 +38,7 @@ def handler_create_user( utils.logger.debug("Creating user…") user = serializer.save(request=request) utils.logger.debug("Setting permissions and other attributes…") - user.is_staff = is_staff + user.is_staff = is_staff or is_superuser # Always set staff if superuser is set user.upload_quota = upload_quota user.is_superuser = is_superuser for permission in permissions: diff --git a/api/tests/cli/test_users.py b/api/tests/cli/test_users.py index 5f0c63bdb..13aa62653 100644 --- a/api/tests/cli/test_users.py +++ b/api/tests/cli/test_users.py @@ -32,6 +32,22 @@ def test_user_create_handler(factories, mocker, now): assert user.all_permissions == expected_permissions +def test_user_implicit_staff(): + kwargs = { + "username": "helloworld", + "password": "securepassword", + "is_superuser": True, + "email": "hello@world.email", + "upload_quota": 35, + "permissions": ["moderation"], + } + user = users.handler_create_user(**kwargs) + + assert user.username == kwargs["username"] + assert user.is_superuser == kwargs["is_superuser"] + assert user.is_staff is True + + def test_user_delete_handler_soft(factories, mocker, now): user1 = factories["federation.Actor"](local=True).user actor1 = user1.actor