package dashboards import ( "time" "github.com/grafana/grafana/pkg/bus" "github.com/grafana/grafana/pkg/models" ) func MakeUserAdmin(bus bus.Bus, orgID int64, userID int64, dashboardID int64, setViewAndEditPermissions bool) error { rtEditor := models.ROLE_EDITOR rtViewer := models.ROLE_VIEWER items := []*models.DashboardAcl{ { OrgID: orgID, DashboardID: dashboardID, UserID: userID, Permission: models.PERMISSION_ADMIN, Created: time.Now(), Updated: time.Now(), }, } if setViewAndEditPermissions { items = append(items, &models.DashboardAcl{ OrgID: orgID, DashboardID: dashboardID, Role: &rtEditor, Permission: models.PERMISSION_EDIT, Created: time.Now(), Updated: time.Now(), }, &models.DashboardAcl{ OrgID: orgID, DashboardID: dashboardID, Role: &rtViewer, Permission: models.PERMISSION_VIEW, Created: time.Now(), Updated: time.Now(), }, ) } aclCmd := &models.UpdateDashboardAclCommand{ DashboardID: dashboardID, Items: items, } if err := bus.Dispatch(aclCmd); err != nil { return err } return nil }