Coverage for app/venv/lib/python3.14/site-packages/weblate/auth/management/commands/setupgroups.py: 0%
17 statements
« prev ^ index » next coverage.py v7.15.2, created at 2026-10-07 07:15 +0000
« prev ^ index » next coverage.py v7.15.2, created at 2026-10-07 07:15 +0000
1# Copyright © Michal Čihař <michal@weblate.org>
2#
3# SPDX-License-Identifier: GPL-3.0-or-later
4from __future__ import annotations
6from typing import TYPE_CHECKING
8from weblate.auth.models import create_groups, setup_project_groups
9from weblate.trans.models import Project
10from weblate.utils.management.base import BaseCommand
12if TYPE_CHECKING:
13 from django.core.management.base import CommandParser
16class Command(BaseCommand):
17 help = "setups default user groups"
19 def add_arguments(self, parser: CommandParser) -> None:
20 parser.add_argument(
21 "--no-privs-update",
22 action="store_false",
23 dest="update",
24 default=True,
25 help="Prevents updates of privileges of existing groups",
26 )
27 parser.add_argument(
28 "--no-projects-update",
29 action="store_false",
30 dest="projects",
31 default=True,
32 help="Prevents updates of groups for existing projects",
33 )
35 def handle(self, *args, **options) -> None:
36 """
37 Create or update default set of groups.
39 It also optionally updates them and moves users around to default group.
40 """
41 create_groups(options["update"])
42 if options["projects"]:
43 for project in Project.objects.iterator():
44 setup_project_groups(Project, project)