Return gravatar whenever available (#1448)

This commit is contained in:
Tomas Touceda 2021-07-22 12:28:42 -03:00 committed by GitHub
parent 15ef1e3d6e
commit 4cd169cad7
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
4 changed files with 16 additions and 6 deletions

View file

@ -29,7 +29,7 @@ func (d *Datastore) NewActivity(user *fleet.User, activityType string, details *
// ListActivities returns a slice of activities performed across the organization
func (d *Datastore) ListActivities(opt fleet.ListOptions) ([]*fleet.Activity, error) {
activities := []*fleet.Activity{}
query := `SELECT a.id, a.user_id, a.created_at, a.activity_type, a.details, coalesce(u.name, a.user_name) as name
query := `SELECT a.id, a.user_id, a.created_at, a.activity_type, a.details, coalesce(u.name, a.user_name) as name, u.gravatar_url
FROM activities a LEFT JOIN users u ON (a.user_id=u.id)
WHERE true`
query = appendListOptionsToSQL(query, opt)

View file

@ -14,10 +14,11 @@ func TestActivityUsernameChange(t *testing.T) {
defer ds.Close()
u := &fleet.User{
Password: []byte("asd"),
Name: "fullname",
Email: "email@asd.com",
GlobalRole: ptr.String(fleet.RoleObserver),
Password: []byte("asd"),
Name: "fullname",
Email: "email@asd.com",
GravatarURL: "http://asd.com",
GlobalRole: ptr.String(fleet.RoleObserver),
}
_, err := ds.NewUser(u)
require.Nil(t, err)
@ -37,6 +38,7 @@ func TestActivityUsernameChange(t *testing.T) {
require.NoError(t, err)
assert.Len(t, activities, 2)
assert.Equal(t, "newname", activities[0].ActorFullName)
assert.Equal(t, "http://asd.com", *activities[0].ActorGravatar)
err = ds.DeleteUser(u.ID)
require.NoError(t, err)
@ -45,6 +47,7 @@ func TestActivityUsernameChange(t *testing.T) {
require.NoError(t, err)
assert.Len(t, activities, 2)
assert.Equal(t, "fullname", activities[0].ActorFullName)
assert.Nil(t, activities[0].ActorGravatar)
}
func TestNewActivity(t *testing.T) {

View file

@ -46,6 +46,7 @@ type Activity struct {
ID uint `json:"id" db:"id"`
ActorFullName string `json:"actor_full_name" db:"name"`
ActorID *uint `json:"actor_id" db:"user_id"`
ActorGravatar *string `json:"actor_gravatar" db:"gravatar_url"`
Type string `json:"type" db:"activity_type"`
Details *json.RawMessage `json:"details" db:"details"`
}

View file

@ -180,9 +180,14 @@ func TestQueryCreationLogsActivity(t *testing.T) {
ds := mysql.CreateMySQLDS(t)
defer ds.Close()
_, server := RunServerForTestsWithDS(t, ds)
users, server := RunServerForTestsWithDS(t, ds)
token := getTestAdminToken(t, server)
admin1 := users["admin1@example.com"]
admin1.GravatarURL = "http://iii.com"
err := ds.SaveUser(&admin1)
require.NoError(t, err)
params := fleet.QueryPayload{
Name: ptr.String("user1"),
Query: ptr.String("select * from time;"),
@ -196,6 +201,7 @@ func TestQueryCreationLogsActivity(t *testing.T) {
assert.Len(t, activities.Activities, 1)
assert.Equal(t, "Test Name admin1@example.com", activities.Activities[0]["actor_full_name"])
assert.Equal(t, "http://iii.com", activities.Activities[0]["actor_gravatar"])
assert.Equal(t, "created_saved_query", activities.Activities[0]["type"])
}