Coverage for src/backend/InvenTree/users/apps.py: 66%
34 statements
« prev ^ index » next coverage.py v7.15.2, created at 2026-10-07 17:47 +0000
« prev ^ index » next coverage.py v7.15.2, created at 2026-10-07 17:47 +0000
1"""App configuration class for the 'users' app."""
3from django.apps import AppConfig
4from django.db.utils import OperationalError, ProgrammingError
6import structlog
8import InvenTree.ready
10logger = structlog.get_logger('inventree')
13class UsersConfig(AppConfig):
14 """Config class for the 'users' app."""
16 name = 'users'
18 def ready(self):
19 """Called when the 'users' app is loaded at runtime."""
20 # skip loading if plugin registry is not loaded or we run in a background thread
21 if (
22 not InvenTree.ready.isPluginRegistryLoaded()
23 or not InvenTree.ready.isInMainThread()
24 ):
25 return
27 # Skip if running migrations
28 if InvenTree.ready.isRunningMigrations(): 28 ↛ 29line 28 didn't jump to line 29 because the condition on line 28 was never true
29 return # pragma: no cover
31 if InvenTree.ready.canAppAccessDatabase(allow_test=True): 31 ↛ exitline 31 didn't return from function 'ready' because the condition on line 31 was always true
32 try:
33 from users.tasks import rebuild_all_permissions
35 rebuild_all_permissions()
36 except (OperationalError, ProgrammingError): # pragma: no cover
37 pass
38 except Exception as e: # pragma: no cover
39 logger.exception('Failed to rebuild permissions: %s', e)
41 try:
42 self.update_owners()
43 except (OperationalError, ProgrammingError): # pragma: no cover
44 pass
45 except Exception as e: # pragma: no cover
46 logger.exception('Failed to update owners: %s', e)
48 def update_owners(self):
49 """Create an 'owner' object for each user and group instance."""
50 from django.contrib.auth import get_user_model
51 from django.contrib.auth.models import Group
53 from users.models import Owner
55 # Create group owners
56 for group in Group.objects.all(): 56 ↛ 57line 56 didn't jump to line 57 because the loop on line 56 never started
57 Owner.create(group)
59 # Create user owners
60 for user in get_user_model().objects.all(): 60 ↛ 61line 60 didn't jump to line 61 because the loop on line 60 never started
61 Owner.create(user)