diff --git a/server/datastore/mysql/activities.go b/server/datastore/mysql/activities.go index dfb2bb57b1..58b68a0f52 100644 --- a/server/datastore/mysql/activities.go +++ b/server/datastore/mysql/activities.go @@ -41,14 +41,8 @@ func (ds *Datastore) NewActivity( } userName = &user.Name userEmail = &user.Email - } else if ranScriptActivity, ok := activity.(fleet.ActivityTypeRanScript); ok { - if ranScriptActivity.PolicyID != nil { - userName = &automationActivityAuthor - } - } else if softwareInstallActivity, ok := activity.(fleet.ActivityTypeInstalledSoftware); ok { - if softwareInstallActivity.PolicyID != nil { - userName = &automationActivityAuthor - } + } else if automatableActivity, ok := activity.(fleet.AutomatableActivity); ok && automatableActivity.WasFromAutomation() { + userName = &automationActivityAuthor } cols := []string{"user_id", "user_name", "activity_type", "details", "created_at"} diff --git a/server/datastore/mysql/activities_test.go b/server/datastore/mysql/activities_test.go index 378c884915..cfbb7360c2 100644 --- a/server/datastore/mysql/activities_test.go +++ b/server/datastore/mysql/activities_test.go @@ -285,9 +285,27 @@ func testActivityEmptyUser(t *testing.T, ds *Datastore) { }, nil, timestamp, ), ) + + require.NoError( + t, ds.NewActivity( + ctx, nil, fleet.ActivityInstalledAppStoreApp{ + HostID: 1, + HostDisplayName: "A Host", + SoftwareTitle: "Trello", + AppStoreID: "123456", + CommandUUID: "some uuid", + Status: string(fleet.SoftwareInstalled), + SelfService: false, + PolicyID: ptr.Uint(1), + PolicyName: ptr.String("Sample Policy"), + }, nil, timestamp, + ), + ) + activities, _, err := ds.ListActivities(context.Background(), fleet.ListActivitiesOptions{}) require.NoError(t, err) - assert.Len(t, activities, 1) + assert.Len(t, activities, 2) + assert.Equal(t, "Fleet", *activities[1].ActorFullName) } func testActivityPaginationMetadata(t *testing.T, ds *Datastore) {