diff --git a/awx/main/signals.py b/awx/main/signals.py index 40382c98b4..e9de3617f2 100644 --- a/awx/main/signals.py +++ b/awx/main/signals.py @@ -164,7 +164,10 @@ def rbac_activity_stream(instance, sender, **kwargs): if hasattr(instance, 'content_type'): if instance.content_type in [None, user_type]: return - role = instance + elif sender.__name__ == 'Role_parents': + role = kwargs['model'].objects.filter(pk__in=kwargs['pk_set']).first() + else: + role = instance instance = instance.content_object else: role = kwargs['model'].objects.filter(pk__in=kwargs['pk_set']).first() @@ -192,6 +195,7 @@ post_save.connect(emit_ad_hoc_command_event_detail, sender=AdHocCommandEvent) m2m_changed.connect(rebuild_role_ancestor_list, Role.parents.through) m2m_changed.connect(org_admin_edit_members, Role.members.through) m2m_changed.connect(rbac_activity_stream, Role.members.through) +m2m_changed.connect(rbac_activity_stream, Role.parents.through) post_save.connect(sync_superuser_status_to_rbac, sender=User) post_save.connect(create_user_role, sender=User) pre_delete.connect(cleanup_detached_labels_on_deleted_parent, sender=UnifiedJob) diff --git a/awx/main/tests/functional/api/test_activity_streams.py b/awx/main/tests/functional/api/test_activity_streams.py index 39990064d7..f1c42cdd9d 100644 --- a/awx/main/tests/functional/api/test_activity_streams.py +++ b/awx/main/tests/functional/api/test_activity_streams.py @@ -13,7 +13,7 @@ def mock_feature_enabled(feature, bypass_database=None): @pytest.fixture def activity_stream_entry(organization, org_admin): - return ActivityStream.objects.filter(organization__pk=organization.pk, operation='associate').first() + return ActivityStream.objects.filter(organization__pk=organization.pk, user=org_admin, operation='associate').first() @pytest.mark.skipif(not getattr(settings, 'ACTIVITY_STREAM_ENABLED', True), reason="Activity stream not enabled") @mock.patch('awx.api.views.feature_enabled', new=mock_feature_enabled)