mirror of
https://github.com/fleetdm/fleet
synced 2026-05-23 17:08:53 +00:00
Return gravatar whenever available (#1448)
This commit is contained in:
parent
15ef1e3d6e
commit
4cd169cad7
4 changed files with 16 additions and 6 deletions
|
|
@ -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)
|
||||
|
|
|
|||
|
|
@ -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) {
|
||||
|
|
|
|||
|
|
@ -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"`
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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"])
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Reference in a new issue