From e9c6684667a1545a816dba2678a23b6c8702a931 Mon Sep 17 00:00:00 2001 From: xkello Date: Tue, 24 Mar 2026 16:30:45 +0100 Subject: [PATCH] Update logic for counting editors --- server/mergin/sync/workspace.py | 6 +++--- server/mergin/tests/test_workspace.py | 6 ++++++ 2 files changed, 9 insertions(+), 3 deletions(-) diff --git a/server/mergin/sync/workspace.py b/server/mergin/sync/workspace.py index 28c70e0a..e7575e46 100644 --- a/server/mergin/sync/workspace.py +++ b/server/mergin/sync/workspace.py @@ -363,17 +363,17 @@ def project_access(self, project: Project) -> List[ProjectAccessDetail]: def server_editors_count(self) -> int: if Configuration.GLOBAL_ADMIN or Configuration.GLOBAL_WRITE: - return User.query.filter( - is_(User.username.ilike("deleted_%"), False), - ).count() + return User.query.filter(User.active == True).count() return ( db.session.query(ProjectUser.user_id) .select_from(Project) .join(ProjectUser) + .join(User, User.id == ProjectUser.user_id) .filter( Project.removed_at.is_(None), ProjectUser.role != ProjectRole.READER.value, + User.active == True, ) .group_by(ProjectUser.user_id) .count() diff --git a/server/mergin/tests/test_workspace.py b/server/mergin/tests/test_workspace.py index 2aafc268..d123982f 100644 --- a/server/mergin/tests/test_workspace.py +++ b/server/mergin/tests/test_workspace.py @@ -46,6 +46,12 @@ def test_workspace_implementation(client): assert ws.user_has_permissions(user, "write") assert ws.user_has_permissions(user, "read") assert handler.server_editors_count() == 2 + # inactive user should not be counted + user.active = False + db.session.commit() + assert handler.server_editors_count() == 1 + user.active = True + db.session.commit() assert not ws.user_has_permissions(user, "admin") assert not ws.user_has_permissions(user, "owner")