Moved dashboard theme option from the dashboard to a persisted user setting, #1458
This commit is contained in:
@@ -28,7 +28,7 @@ func AdminGetUser(c *middleware.Context) {
|
||||
return
|
||||
}
|
||||
|
||||
result := m.UserDTO{
|
||||
result := dtos.AdminUserListItem{
|
||||
Name: query.Result.Name,
|
||||
Email: query.Result.Email,
|
||||
Login: query.Result.Login,
|
||||
|
||||
@@ -19,6 +19,7 @@ type CurrentUser struct {
|
||||
Login string `json:"login"`
|
||||
Email string `json:"email"`
|
||||
Name string `json:"name"`
|
||||
LightTheme bool `json:"lightTheme"`
|
||||
OrgRole m.RoleType `json:"orgRole"`
|
||||
OrgName string `json:"orgName"`
|
||||
IsGrafanaAdmin bool `json:"isGrafanaAdmin"`
|
||||
|
||||
@@ -20,3 +20,10 @@ type AdminUpdateUserPasswordForm struct {
|
||||
type AdminUpdateUserPermissionsForm struct {
|
||||
IsGrafanaAdmin bool `json:"IsGrafanaAdmin" binding:"Required"`
|
||||
}
|
||||
|
||||
type AdminUserListItem struct {
|
||||
Email string `json:"email"`
|
||||
Name string `json:"name"`
|
||||
Login string `json:"login"`
|
||||
IsGrafanaAdmin bool `json:"isGrafanaAdmin"`
|
||||
}
|
||||
|
||||
@@ -17,6 +17,7 @@ func setIndexViewData(c *middleware.Context) error {
|
||||
Login: c.Login,
|
||||
Email: c.Email,
|
||||
Name: c.Name,
|
||||
LightTheme: c.Theme == "light",
|
||||
OrgName: c.OrgName,
|
||||
OrgRole: c.OrgRole,
|
||||
GravatarUrl: dtos.GetGravatarUrl(c.Email),
|
||||
|
||||
+1
-1
@@ -8,7 +8,7 @@ import (
|
||||
)
|
||||
|
||||
func GetUser(c *middleware.Context) {
|
||||
query := m.GetUserInfoQuery{UserId: c.UserId}
|
||||
query := m.GetUserProfileQuery{UserId: c.UserId}
|
||||
|
||||
if err := bus.Dispatch(&query); err != nil {
|
||||
c.JsonApiErr(500, "Failed to get user", err)
|
||||
|
||||
+6
-3
@@ -48,6 +48,7 @@ type UpdateUserCommand struct {
|
||||
Name string `json:"name"`
|
||||
Email string `json:"email"`
|
||||
Login string `json:"login"`
|
||||
Theme string `json:"theme"`
|
||||
|
||||
UserId int64 `json:"-"`
|
||||
}
|
||||
@@ -91,9 +92,9 @@ type GetSignedInUserQuery struct {
|
||||
Result *SignedInUser
|
||||
}
|
||||
|
||||
type GetUserInfoQuery struct {
|
||||
type GetUserProfileQuery struct {
|
||||
UserId int64
|
||||
Result UserDTO
|
||||
Result UserProfileDTO
|
||||
}
|
||||
|
||||
type SearchUsersQuery struct {
|
||||
@@ -120,14 +121,16 @@ type SignedInUser struct {
|
||||
Login string
|
||||
Name string
|
||||
Email string
|
||||
Theme string
|
||||
ApiKeyId int64
|
||||
IsGrafanaAdmin bool
|
||||
}
|
||||
|
||||
type UserDTO struct {
|
||||
type UserProfileDTO struct {
|
||||
Email string `json:"email"`
|
||||
Name string `json:"name"`
|
||||
Login string `json:"login"`
|
||||
Theme string `json:"theme"`
|
||||
IsGrafanaAdmin bool `json:"isGrafanaAdmin"`
|
||||
}
|
||||
|
||||
|
||||
@@ -53,8 +53,8 @@ func TestAccountDataAccess(t *testing.T) {
|
||||
ac2 := ac2cmd.Result
|
||||
|
||||
Convey("Should be able to read user info projection", func() {
|
||||
query := m.GetUserInfoQuery{UserId: ac1.Id}
|
||||
err = GetUserInfo(&query)
|
||||
query := m.GetUserProfileQuery{UserId: ac1.Id}
|
||||
err = GetUserProfile(&query)
|
||||
|
||||
So(err, ShouldBeNil)
|
||||
So(query.Result.Email, ShouldEqual, "ac1@test.com")
|
||||
|
||||
@@ -21,7 +21,7 @@ func init() {
|
||||
bus.AddHandler("sql", ChangeUserPassword)
|
||||
bus.AddHandler("sql", GetUserByLogin)
|
||||
bus.AddHandler("sql", SetUsingOrg)
|
||||
bus.AddHandler("sql", GetUserInfo)
|
||||
bus.AddHandler("sql", GetUserProfile)
|
||||
bus.AddHandler("sql", GetSignedInUser)
|
||||
bus.AddHandler("sql", SearchUsers)
|
||||
bus.AddHandler("sql", GetUserOrgList)
|
||||
@@ -165,6 +165,7 @@ func UpdateUser(cmd *m.UpdateUserCommand) error {
|
||||
Name: cmd.Name,
|
||||
Email: cmd.Email,
|
||||
Login: cmd.Login,
|
||||
Theme: cmd.Theme,
|
||||
Updated: time.Now(),
|
||||
}
|
||||
|
||||
@@ -211,7 +212,7 @@ func SetUsingOrg(cmd *m.SetUsingOrgCommand) error {
|
||||
})
|
||||
}
|
||||
|
||||
func GetUserInfo(query *m.GetUserInfoQuery) error {
|
||||
func GetUserProfile(query *m.GetUserProfileQuery) error {
|
||||
var user m.User
|
||||
has, err := x.Id(query.UserId).Get(&user)
|
||||
|
||||
@@ -221,10 +222,11 @@ func GetUserInfo(query *m.GetUserInfoQuery) error {
|
||||
return m.ErrUserNotFound
|
||||
}
|
||||
|
||||
query.Result = m.UserDTO{
|
||||
query.Result = m.UserProfileDTO{
|
||||
Name: user.Name,
|
||||
Email: user.Email,
|
||||
Login: user.Login,
|
||||
Theme: user.Theme,
|
||||
}
|
||||
|
||||
return err
|
||||
@@ -247,6 +249,7 @@ func GetSignedInUser(query *m.GetSignedInUserQuery) error {
|
||||
u.email as email,
|
||||
u.login as login,
|
||||
u.name as name,
|
||||
u.theme as theme,
|
||||
org.name as org_name,
|
||||
org_user.role as org_role,
|
||||
org.id as org_id
|
||||
|
||||
Reference in New Issue
Block a user