@@ -7,23 +7,12 @@ import (
|
||||
"strings"
|
||||
"time"
|
||||
|
||||
"github.com/grafana/grafana/pkg/bus"
|
||||
"github.com/grafana/grafana/pkg/models"
|
||||
)
|
||||
|
||||
// timeNow makes it possible to test usage of time
|
||||
var timeNow = time.Now
|
||||
|
||||
func (ss *SQLStore) addAlertQueryAndCommandHandlers() {
|
||||
bus.AddHandler("sql", ss.HandleAlertsQuery)
|
||||
bus.AddHandler("sql", ss.GetAlertById)
|
||||
bus.AddHandler("sql", ss.GetAllAlertQueryHandler)
|
||||
bus.AddHandler("sql", ss.SetAlertState)
|
||||
bus.AddHandler("sql", ss.GetAlertStatesForDashboard)
|
||||
bus.AddHandler("sql", ss.PauseAlert)
|
||||
bus.AddHandler("sql", ss.PauseAllAlerts)
|
||||
}
|
||||
|
||||
func (ss *SQLStore) GetAlertById(ctx context.Context, query *models.GetAlertByIdQuery) error {
|
||||
return ss.WithDbSession(ctx, func(sess *DBSession) error {
|
||||
alert := models.Alert{}
|
||||
|
||||
@@ -8,7 +8,6 @@ import (
|
||||
"strings"
|
||||
"time"
|
||||
|
||||
"github.com/grafana/grafana/pkg/bus"
|
||||
"github.com/grafana/grafana/pkg/models"
|
||||
"github.com/grafana/grafana/pkg/util"
|
||||
)
|
||||
@@ -79,10 +78,6 @@ func (ss *SQLStore) GetAlertNotifications(ctx context.Context, query *models.Get
|
||||
return getAlertNotificationInternal(ctx, query, newSession(ctx))
|
||||
}
|
||||
|
||||
func (ss *SQLStore) addAlertNotificationUidByIdHandler() {
|
||||
bus.AddHandler("sql", ss.GetAlertNotificationUidWithId)
|
||||
}
|
||||
|
||||
func (ss *SQLStore) GetAlertNotificationUidWithId(ctx context.Context, query *models.GetAlertNotificationUidQuery) error {
|
||||
cacheKey := newAlertNotificationUidCacheKey(query.OrgId, query.Id)
|
||||
|
||||
|
||||
@@ -10,7 +10,6 @@ import (
|
||||
"testing"
|
||||
"time"
|
||||
|
||||
"github.com/grafana/grafana/pkg/bus"
|
||||
"github.com/grafana/grafana/pkg/components/simplejson"
|
||||
"github.com/grafana/grafana/pkg/models"
|
||||
|
||||
@@ -19,13 +18,7 @@ import (
|
||||
|
||||
func TestAlertNotificationSQLAccess(t *testing.T) {
|
||||
var sqlStore *SQLStore
|
||||
setup := func() {
|
||||
sqlStore = InitTestDB(t)
|
||||
// Set up bus handlers
|
||||
bus.AddHandler("deleteAlertNotification", func(ctx context.Context, cmd *models.DeleteAlertNotificationCommand) error {
|
||||
return sqlStore.DeleteAlertNotification(ctx, cmd)
|
||||
})
|
||||
}
|
||||
setup := func() { sqlStore = InitTestDB(t) }
|
||||
|
||||
t.Run("Alert notification state", func(t *testing.T) {
|
||||
setup()
|
||||
|
||||
@@ -6,18 +6,9 @@ import (
|
||||
|
||||
"xorm.io/xorm"
|
||||
|
||||
"github.com/grafana/grafana/pkg/bus"
|
||||
"github.com/grafana/grafana/pkg/models"
|
||||
)
|
||||
|
||||
func (ss *SQLStore) addAPIKeysQueryAndCommandHandlers() {
|
||||
bus.AddHandler("sql", ss.GetAPIKeys)
|
||||
bus.AddHandler("sql", ss.GetApiKeyById)
|
||||
bus.AddHandler("sql", ss.GetApiKeyByName)
|
||||
bus.AddHandler("sql", ss.DeleteApiKey)
|
||||
bus.AddHandler("sql", ss.AddAPIKey)
|
||||
}
|
||||
|
||||
// GetAPIKeys queries the database based
|
||||
// on input on GetApiKeysQuery
|
||||
func (ss *SQLStore) GetAPIKeys(ctx context.Context, query *models.GetApiKeysQuery) error {
|
||||
|
||||
@@ -6,7 +6,6 @@ import (
|
||||
|
||||
"github.com/prometheus/client_golang/prometheus"
|
||||
|
||||
"github.com/grafana/grafana/pkg/bus"
|
||||
"github.com/grafana/grafana/pkg/models"
|
||||
"github.com/grafana/grafana/pkg/services/featuremgmt"
|
||||
"github.com/grafana/grafana/pkg/services/sqlstore/permissions"
|
||||
@@ -26,18 +25,6 @@ func init() {
|
||||
prometheus.MustRegister(shadowSearchCounter)
|
||||
}
|
||||
|
||||
func (ss *SQLStore) addDashboardQueryAndCommandHandlers() {
|
||||
bus.AddHandler("sql", ss.GetDashboard)
|
||||
bus.AddHandler("sql", ss.GetDashboardUIDById)
|
||||
bus.AddHandler("sql", ss.GetDashboardTags)
|
||||
bus.AddHandler("sql", ss.SearchDashboards)
|
||||
bus.AddHandler("sql", ss.GetDashboards)
|
||||
bus.AddHandler("sql", ss.HasEditPermissionInFolders)
|
||||
bus.AddHandler("sql", ss.GetDashboardPermissionsForUser)
|
||||
bus.AddHandler("sql", ss.GetDashboardSlugById)
|
||||
bus.AddHandler("sql", ss.HasAdminPermissionInFolders)
|
||||
}
|
||||
|
||||
var generateNewUid func() string = util.GenerateShortUID
|
||||
|
||||
func (ss *SQLStore) GetDashboard(ctx context.Context, query *models.GetDashboardQuery) error {
|
||||
|
||||
@@ -3,14 +3,9 @@ package sqlstore
|
||||
import (
|
||||
"context"
|
||||
|
||||
"github.com/grafana/grafana/pkg/bus"
|
||||
"github.com/grafana/grafana/pkg/models"
|
||||
)
|
||||
|
||||
func (ss *SQLStore) addDashboardACLQueryAndCommandHandlers() {
|
||||
bus.AddHandler("sql", ss.GetDashboardAclInfoList)
|
||||
}
|
||||
|
||||
// GetDashboardAclInfoList returns a list of permissions for a dashboard. They can be fetched from three
|
||||
// different places.
|
||||
// 1) Permissions for the dashboard
|
||||
|
||||
@@ -4,17 +4,10 @@ import (
|
||||
"context"
|
||||
"strings"
|
||||
|
||||
"github.com/grafana/grafana/pkg/bus"
|
||||
"github.com/grafana/grafana/pkg/models"
|
||||
"github.com/grafana/grafana/pkg/setting"
|
||||
)
|
||||
|
||||
func (ss *SQLStore) addDashboardVersionQueryAndCommandHandlers() {
|
||||
bus.AddHandler("sql", ss.GetDashboardVersion)
|
||||
bus.AddHandler("sql", ss.GetDashboardVersions)
|
||||
bus.AddHandler("sql", ss.DeleteExpiredVersions)
|
||||
}
|
||||
|
||||
// GetDashboardVersion gets the dashboard version for the given dashboard ID and version number.
|
||||
func (ss *SQLStore) GetDashboardVersion(ctx context.Context, query *models.GetDashboardVersionQuery) error {
|
||||
return ss.WithDbSession(ctx, func(sess *DBSession) error {
|
||||
|
||||
@@ -5,18 +5,11 @@ import (
|
||||
"strconv"
|
||||
"time"
|
||||
|
||||
"github.com/grafana/grafana/pkg/bus"
|
||||
"github.com/grafana/grafana/pkg/models"
|
||||
)
|
||||
|
||||
var getTimeNow = time.Now
|
||||
|
||||
func (ss *SQLStore) addLoginAttemptQueryAndCommandHandlers() {
|
||||
bus.AddHandler("sql", ss.CreateLoginAttempt)
|
||||
bus.AddHandler("sql", ss.DeleteOldLoginAttempts)
|
||||
bus.AddHandler("sql", ss.GetUserLoginAttemptCount)
|
||||
}
|
||||
|
||||
func (ss *SQLStore) CreateLoginAttempt(ctx context.Context, cmd *models.CreateLoginAttemptCommand) error {
|
||||
return ss.WithTransactionalDbSession(ctx, func(sess *DBSession) error {
|
||||
loginAttempt := models.LoginAttempt{
|
||||
|
||||
@@ -5,7 +5,6 @@ import (
|
||||
"fmt"
|
||||
"time"
|
||||
|
||||
"github.com/grafana/grafana/pkg/bus"
|
||||
"github.com/grafana/grafana/pkg/events"
|
||||
"github.com/grafana/grafana/pkg/models"
|
||||
"github.com/grafana/grafana/pkg/setting"
|
||||
@@ -15,16 +14,6 @@ import (
|
||||
// MainOrgName is the name of the main organization.
|
||||
const MainOrgName = "Main Org."
|
||||
|
||||
func (ss *SQLStore) addOrgQueryAndCommandHandlers() {
|
||||
bus.AddHandler("sql", ss.GetOrgById)
|
||||
bus.AddHandler("sql", CreateOrg)
|
||||
bus.AddHandler("sql", ss.UpdateOrg)
|
||||
bus.AddHandler("sql", ss.UpdateOrgAddress)
|
||||
bus.AddHandler("sql", ss.GetOrgByNameHandler)
|
||||
bus.AddHandler("sql", ss.SearchOrgs)
|
||||
bus.AddHandler("sql", ss.DeleteOrg)
|
||||
}
|
||||
|
||||
func (ss *SQLStore) SearchOrgs(ctx context.Context, query *models.SearchOrgsQuery) error {
|
||||
return ss.WithDbSession(ctx, func(dbSession *DBSession) error {
|
||||
query.Result = make([]*models.OrgDTO, 0)
|
||||
|
||||
@@ -6,20 +6,12 @@ import (
|
||||
"strings"
|
||||
"time"
|
||||
|
||||
"github.com/grafana/grafana/pkg/bus"
|
||||
"github.com/grafana/grafana/pkg/models"
|
||||
"github.com/grafana/grafana/pkg/services/accesscontrol"
|
||||
"github.com/grafana/grafana/pkg/services/featuremgmt"
|
||||
"github.com/grafana/grafana/pkg/util"
|
||||
)
|
||||
|
||||
func (ss *SQLStore) addOrgUsersQueryAndCommandHandlers() {
|
||||
bus.AddHandler("sql", ss.AddOrgUser)
|
||||
bus.AddHandler("sql", ss.RemoveOrgUser)
|
||||
bus.AddHandler("sql", ss.GetOrgUsers)
|
||||
bus.AddHandler("sql", ss.UpdateOrgUser)
|
||||
}
|
||||
|
||||
func (ss *SQLStore) AddOrgUser(ctx context.Context, cmd *models.AddOrgUserCommand) error {
|
||||
return ss.WithTransactionalDbSession(ctx, func(sess *DBSession) error {
|
||||
// check if user exists
|
||||
|
||||
@@ -3,19 +3,9 @@ package sqlstore
|
||||
import (
|
||||
"context"
|
||||
|
||||
"github.com/grafana/grafana/pkg/bus"
|
||||
"github.com/grafana/grafana/pkg/models"
|
||||
)
|
||||
|
||||
func (ss *SQLStore) addPlaylistQueryAndCommandHandlers() {
|
||||
bus.AddHandler("sql", ss.CreatePlaylist)
|
||||
bus.AddHandler("sql", ss.UpdatePlaylist)
|
||||
bus.AddHandler("sql", ss.DeletePlaylist)
|
||||
bus.AddHandler("sql", ss.SearchPlaylists)
|
||||
bus.AddHandler("sql", ss.GetPlaylist)
|
||||
bus.AddHandler("sql", ss.GetPlaylistItem)
|
||||
}
|
||||
|
||||
func (ss *SQLStore) CreatePlaylist(ctx context.Context, cmd *models.CreatePlaylistCommand) error {
|
||||
return ss.WithTransactionalDbSession(ctx, func(sess *DBSession) error {
|
||||
playlist := models.Playlist{
|
||||
|
||||
@@ -5,17 +5,9 @@ import (
|
||||
"strings"
|
||||
"time"
|
||||
|
||||
"github.com/grafana/grafana/pkg/bus"
|
||||
"github.com/grafana/grafana/pkg/models"
|
||||
)
|
||||
|
||||
func (ss *SQLStore) addPreferencesQueryAndCommandHandlers() {
|
||||
bus.AddHandler("sql", ss.GetPreferences)
|
||||
bus.AddHandler("sql", ss.GetPreferencesWithDefaults)
|
||||
bus.AddHandler("sql", ss.SavePreferences)
|
||||
bus.AddHandler("sql", ss.PatchPreferences)
|
||||
}
|
||||
|
||||
func (ss *SQLStore) GetPreferencesWithDefaults(ctx context.Context, query *models.GetPreferencesWithDefaultsQuery) error {
|
||||
return ss.WithDbSession(ctx, func(dbSession *DBSession) error {
|
||||
params := make([]interface{}, 0)
|
||||
|
||||
@@ -5,7 +5,6 @@ import (
|
||||
"fmt"
|
||||
"time"
|
||||
|
||||
"github.com/grafana/grafana/pkg/bus"
|
||||
"github.com/grafana/grafana/pkg/models"
|
||||
"github.com/grafana/grafana/pkg/setting"
|
||||
)
|
||||
@@ -15,16 +14,6 @@ const (
|
||||
dashboardTarget = "dashboard"
|
||||
)
|
||||
|
||||
func (ss *SQLStore) addQuotaQueryAndCommandHandlers() {
|
||||
bus.AddHandler("sql", ss.GetOrgQuotaByTarget)
|
||||
bus.AddHandler("sql", ss.GetOrgQuotas)
|
||||
bus.AddHandler("sql", ss.UpdateOrgQuota)
|
||||
bus.AddHandler("sql", ss.GetUserQuotaByTarget)
|
||||
bus.AddHandler("sql", ss.GetUserQuotas)
|
||||
bus.AddHandler("sql", ss.UpdateUserQuota)
|
||||
bus.AddHandler("sql", ss.GetGlobalQuotaByTarget)
|
||||
}
|
||||
|
||||
type targetCount struct {
|
||||
Count int64
|
||||
}
|
||||
|
||||
@@ -111,28 +111,6 @@ func newSQLStore(cfg *setting.Cfg, cacheService *localcache.CacheService, b bus.
|
||||
// Init repo instances
|
||||
annotations.SetRepository(&SQLAnnotationRepo{sql: ss})
|
||||
annotations.SetAnnotationCleaner(&AnnotationCleanupService{batchSize: ss.Cfg.AnnotationCleanupJobBatchSize, log: log.New("annotationcleaner")})
|
||||
ss.Bus.SetTransactionManager(ss)
|
||||
|
||||
// Register handlers
|
||||
ss.addStatsQueryAndCommandHandlers()
|
||||
ss.addUserQueryAndCommandHandlers()
|
||||
ss.addAlertNotificationUidByIdHandler()
|
||||
ss.addPreferencesQueryAndCommandHandlers()
|
||||
ss.addDashboardQueryAndCommandHandlers()
|
||||
ss.addDashboardACLQueryAndCommandHandlers()
|
||||
ss.addQuotaQueryAndCommandHandlers()
|
||||
ss.addOrgUsersQueryAndCommandHandlers()
|
||||
ss.addStarQueryAndCommandHandlers()
|
||||
ss.addAlertQueryAndCommandHandlers()
|
||||
ss.addTempUserQueryAndCommandHandlers()
|
||||
ss.addDashboardVersionQueryAndCommandHandlers()
|
||||
ss.addAPIKeysQueryAndCommandHandlers()
|
||||
ss.addPlaylistQueryAndCommandHandlers()
|
||||
ss.addLoginAttemptQueryAndCommandHandlers()
|
||||
ss.addTeamQueryAndCommandHandlers()
|
||||
ss.addOrgQueryAndCommandHandlers()
|
||||
|
||||
bus.AddHandler("sql", ss.GetDBHealthQuery)
|
||||
|
||||
// if err := ss.Reset(); err != nil {
|
||||
// return nil, err
|
||||
|
||||
@@ -3,17 +3,9 @@ package sqlstore
|
||||
import (
|
||||
"context"
|
||||
|
||||
"github.com/grafana/grafana/pkg/bus"
|
||||
"github.com/grafana/grafana/pkg/models"
|
||||
)
|
||||
|
||||
func (ss *SQLStore) addStarQueryAndCommandHandlers() {
|
||||
bus.AddHandler("sql", ss.StarDashboard)
|
||||
bus.AddHandler("sql", ss.UnstarDashboard)
|
||||
bus.AddHandler("sql", ss.GetUserStars)
|
||||
bus.AddHandler("sql", ss.IsStarredByUserCtx)
|
||||
}
|
||||
|
||||
func (ss *SQLStore) IsStarredByUserCtx(ctx context.Context, query *models.IsStarredByUserQuery) error {
|
||||
return ss.WithDbSession(ctx, func(sess *DBSession) error {
|
||||
rawSQL := "SELECT 1 from star where user_id=? and dashboard_id=?"
|
||||
|
||||
@@ -5,20 +5,10 @@ import (
|
||||
"strconv"
|
||||
"time"
|
||||
|
||||
"github.com/grafana/grafana/pkg/bus"
|
||||
"github.com/grafana/grafana/pkg/models"
|
||||
"github.com/grafana/grafana/pkg/services/sqlstore/migrator"
|
||||
)
|
||||
|
||||
func (ss *SQLStore) addStatsQueryAndCommandHandlers() {
|
||||
bus.AddHandler("sql", ss.GetAdminStats)
|
||||
bus.AddHandler("sql", ss.GetSystemUserCountStats)
|
||||
bus.AddHandler("sql", ss.GetAlertNotifiersUsageStats)
|
||||
bus.AddHandler("sql", ss.GetDataSourceAccessStats)
|
||||
bus.AddHandler("sql", ss.GetDataSourceStats)
|
||||
bus.AddHandler("sql", ss.GetSystemStats)
|
||||
}
|
||||
|
||||
const activeUserTimeLimit = time.Hour * 24 * 30
|
||||
const dailyActiveUserTimeLimit = time.Hour * 24
|
||||
|
||||
|
||||
@@ -7,25 +7,11 @@ import (
|
||||
"strings"
|
||||
"time"
|
||||
|
||||
"github.com/grafana/grafana/pkg/bus"
|
||||
"github.com/grafana/grafana/pkg/models"
|
||||
ac "github.com/grafana/grafana/pkg/services/accesscontrol"
|
||||
"github.com/grafana/grafana/pkg/services/featuremgmt"
|
||||
)
|
||||
|
||||
func (ss *SQLStore) addTeamQueryAndCommandHandlers() {
|
||||
bus.AddHandler("sql", ss.UpdateTeam)
|
||||
bus.AddHandler("sql", ss.DeleteTeam)
|
||||
bus.AddHandler("sql", ss.SearchTeams)
|
||||
bus.AddHandler("sql", ss.GetTeamById)
|
||||
bus.AddHandler("sql", ss.GetTeamsByUser)
|
||||
|
||||
bus.AddHandler("sql", ss.UpdateTeamMember)
|
||||
bus.AddHandler("sql", ss.RemoveTeamMember)
|
||||
bus.AddHandler("sql", ss.GetTeamMembers)
|
||||
bus.AddHandler("sql", IsAdminOfTeams)
|
||||
}
|
||||
|
||||
type TeamStore interface {
|
||||
UpdateTeam(ctx context.Context, cmd *models.UpdateTeamCommand) error
|
||||
DeleteTeam(ctx context.Context, cmd *models.DeleteTeamCommand) error
|
||||
|
||||
@@ -4,19 +4,9 @@ import (
|
||||
"context"
|
||||
"time"
|
||||
|
||||
"github.com/grafana/grafana/pkg/bus"
|
||||
"github.com/grafana/grafana/pkg/models"
|
||||
)
|
||||
|
||||
func (ss *SQLStore) addTempUserQueryAndCommandHandlers() {
|
||||
bus.AddHandler("sql", ss.CreateTempUser)
|
||||
bus.AddHandler("sql", ss.GetTempUsersQuery)
|
||||
bus.AddHandler("sql", ss.UpdateTempUserStatus)
|
||||
bus.AddHandler("sql", ss.GetTempUserByCode)
|
||||
bus.AddHandler("sql", ss.UpdateTempUserWithEmailSent)
|
||||
bus.AddHandler("sql", ss.ExpireOldUserInvites)
|
||||
}
|
||||
|
||||
func (ss *SQLStore) UpdateTempUserStatus(ctx context.Context, cmd *models.UpdateTempUserStatusCommand) error {
|
||||
return ss.WithTransactionalDbSession(ctx, func(sess *DBSession) error {
|
||||
var rawSQL = "UPDATE temp_user SET status=? WHERE code=?"
|
||||
|
||||
@@ -8,7 +8,6 @@ import (
|
||||
"strings"
|
||||
"time"
|
||||
|
||||
"github.com/grafana/grafana/pkg/bus"
|
||||
"github.com/grafana/grafana/pkg/events"
|
||||
"github.com/grafana/grafana/pkg/models"
|
||||
ac "github.com/grafana/grafana/pkg/services/accesscontrol"
|
||||
@@ -16,25 +15,6 @@ import (
|
||||
"github.com/grafana/grafana/pkg/util"
|
||||
)
|
||||
|
||||
func (ss *SQLStore) addUserQueryAndCommandHandlers() {
|
||||
ss.Bus.AddHandler(ss.GetSignedInUserWithCacheCtx)
|
||||
|
||||
bus.AddHandler("sql", ss.GetUserById)
|
||||
bus.AddHandler("sql", ss.UpdateUser)
|
||||
bus.AddHandler("sql", ss.ChangeUserPassword)
|
||||
bus.AddHandler("sql", ss.GetUserByLogin)
|
||||
bus.AddHandler("sql", ss.GetUserByEmail)
|
||||
bus.AddHandler("sql", ss.SetUsingOrg)
|
||||
bus.AddHandler("sql", ss.UpdateUserLastSeenAt)
|
||||
bus.AddHandler("sql", ss.GetUserProfile)
|
||||
bus.AddHandler("sql", ss.SearchUsers)
|
||||
bus.AddHandler("sql", ss.GetUserOrgList)
|
||||
bus.AddHandler("sql", ss.DisableUser)
|
||||
bus.AddHandler("sql", ss.BatchDisableUsers)
|
||||
bus.AddHandler("sql", ss.DeleteUser)
|
||||
bus.AddHandler("sql", ss.SetUserHelpFlag)
|
||||
}
|
||||
|
||||
func getOrgIdForNewUser(sess *DBSession, cmd models.CreateUserCommand) (int64, error) {
|
||||
if cmd.SkipOrgSetup {
|
||||
return -1, nil
|
||||
|
||||
Reference in New Issue
Block a user