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

1"""App configuration class for the 'users' app.""" 

2 

3from django.apps import AppConfig 

4from django.db.utils import OperationalError, ProgrammingError 

5 

6import structlog 

7 

8import InvenTree.ready 

9 

10logger = structlog.get_logger('inventree') 

11 

12 

13class UsersConfig(AppConfig): 

14 """Config class for the 'users' app.""" 

15 

16 name = 'users' 

17 

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 

26 

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 

30 

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 

34 

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) 

40 

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) 

47 

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 

52 

53 from users.models import Owner 

54 

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) 

58 

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)