diff --git a/InvenTree/users/admin.py b/InvenTree/users/admin.py index 765bc0d795..e4974a3f7a 100644 --- a/InvenTree/users/admin.py +++ b/InvenTree/users/admin.py @@ -101,6 +101,7 @@ class RoleGroupAdmin(admin.ModelAdmin): def save_formset(self, request, form, formset, change): formset.save() # this will save the children + # update_fields is required to trigger permissions update form.instance.save(update_fields=['name']) # form.instance is the parent diff --git a/InvenTree/users/models.py b/InvenTree/users/models.py index 990d3770c0..df8e91d293 100644 --- a/InvenTree/users/models.py +++ b/InvenTree/users/models.py @@ -335,6 +335,7 @@ def create_missing_rule_sets(sender, instance, **kwargs): group permissions. """ created = kwargs.get('created', False) + # To trigger the group permissions update: update_fields should not be None update_fields = kwargs.get('update_fields', None) if created or update_fields: diff --git a/InvenTree/users/tests.py b/InvenTree/users/tests.py index d14ffc4950..e277422f71 100644 --- a/InvenTree/users/tests.py +++ b/InvenTree/users/tests.py @@ -137,7 +137,8 @@ class RuleSetModelTest(TestCase): rule.save() - group.save() + # update_fields is required to trigger permissions update + group.save(update_fields=['name']) # There should now be three permissions for each rule set self.assertEqual(group.permissions.count(), 3 * len(permission_set)) @@ -151,7 +152,8 @@ class RuleSetModelTest(TestCase): rule.save() - group.save() + # update_fields is required to trigger permissions update + group.save(update_fields=['name']) # There should now not be any permissions assigned to this group self.assertEqual(group.permissions.count(), 0)