mirror of
https://github.com/grafana/grafana.git
synced 2025-02-25 18:55:37 -06:00
parent
37eb2e39f4
commit
fb86ed79fc
@ -399,27 +399,6 @@ type DashboardACLInfoDTO struct {
|
|||||||
Inherited bool `json:"inherited"`
|
Inherited bool `json:"inherited"`
|
||||||
}
|
}
|
||||||
|
|
||||||
func (dto *DashboardACLInfoDTO) hasSameRoleAs(other *DashboardACLInfoDTO) bool {
|
|
||||||
if dto.Role == nil || other.Role == nil {
|
|
||||||
return false
|
|
||||||
}
|
|
||||||
|
|
||||||
return dto.UserID <= 0 && dto.TeamID <= 0 && dto.UserID == other.UserID && dto.TeamID == other.TeamID && *dto.Role == *other.Role
|
|
||||||
}
|
|
||||||
|
|
||||||
func (dto *DashboardACLInfoDTO) hasSameUserAs(other *DashboardACLInfoDTO) bool {
|
|
||||||
return dto.UserID > 0 && dto.UserID == other.UserID
|
|
||||||
}
|
|
||||||
|
|
||||||
func (dto *DashboardACLInfoDTO) hasSameTeamAs(other *DashboardACLInfoDTO) bool {
|
|
||||||
return dto.TeamID > 0 && dto.TeamID == other.TeamID
|
|
||||||
}
|
|
||||||
|
|
||||||
// IsDuplicateOf returns true if other item has same role, same user or same team
|
|
||||||
func (dto *DashboardACLInfoDTO) IsDuplicateOf(other *DashboardACLInfoDTO) bool {
|
|
||||||
return dto.hasSameRoleAs(other) || dto.hasSameUserAs(other) || dto.hasSameTeamAs(other)
|
|
||||||
}
|
|
||||||
|
|
||||||
type FindPersistedDashboardsQuery struct {
|
type FindPersistedDashboardsQuery struct {
|
||||||
Title string
|
Title string
|
||||||
OrgId int64
|
OrgId int64
|
||||||
|
@ -456,7 +456,6 @@ func serviceAccountDeletions(dialect migrator.Dialect) []string {
|
|||||||
"DELETE FROM star WHERE user_id = ?",
|
"DELETE FROM star WHERE user_id = ?",
|
||||||
"DELETE FROM " + dialect.Quote("user") + " WHERE id = ?",
|
"DELETE FROM " + dialect.Quote("user") + " WHERE id = ?",
|
||||||
"DELETE FROM org_user WHERE user_id = ?",
|
"DELETE FROM org_user WHERE user_id = ?",
|
||||||
"DELETE FROM dashboard_acl WHERE user_id = ?",
|
|
||||||
"DELETE FROM preferences WHERE user_id = ?",
|
"DELETE FROM preferences WHERE user_id = ?",
|
||||||
"DELETE FROM team_member WHERE user_id = ?",
|
"DELETE FROM team_member WHERE user_id = ?",
|
||||||
"DELETE FROM user_auth WHERE user_id = ?",
|
"DELETE FROM user_auth WHERE user_id = ?",
|
||||||
|
@ -7,7 +7,6 @@ import (
|
|||||||
"time"
|
"time"
|
||||||
|
|
||||||
"github.com/grafana/grafana/pkg/infra/db"
|
"github.com/grafana/grafana/pkg/infra/db"
|
||||||
"github.com/grafana/grafana/pkg/services/dashboards/dashboardaccess"
|
|
||||||
"github.com/grafana/grafana/pkg/services/libraryelements/model"
|
"github.com/grafana/grafana/pkg/services/libraryelements/model"
|
||||||
"github.com/grafana/grafana/pkg/services/org"
|
"github.com/grafana/grafana/pkg/services/org"
|
||||||
"github.com/grafana/grafana/pkg/services/sqlstore/migrator"
|
"github.com/grafana/grafana/pkg/services/sqlstore/migrator"
|
||||||
@ -93,27 +92,6 @@ func (ss *sqlStatsService) GetSystemStats(ctx context.Context, query *stats.GetS
|
|||||||
sb.Write(`(SELECT MAX(LENGTH(data)) FROM `+dialect.Quote("dashboard")+` WHERE is_folder = ?) AS dashboard_bytes_max,`, dialect.BooleanStr(false))
|
sb.Write(`(SELECT MAX(LENGTH(data)) FROM `+dialect.Quote("dashboard")+` WHERE is_folder = ?) AS dashboard_bytes_max,`, dialect.BooleanStr(false))
|
||||||
sb.Write(`(SELECT COUNT(id) FROM `+dialect.Quote("dashboard")+` WHERE is_folder = ?) AS folders,`, dialect.BooleanStr(true))
|
sb.Write(`(SELECT COUNT(id) FROM `+dialect.Quote("dashboard")+` WHERE is_folder = ?) AS folders,`, dialect.BooleanStr(true))
|
||||||
|
|
||||||
sb.Write(`(
|
|
||||||
SELECT COUNT(acl.id)
|
|
||||||
FROM `+dialect.Quote("dashboard_acl")+` AS acl
|
|
||||||
INNER JOIN `+dialect.Quote("dashboard")+` AS d
|
|
||||||
ON d.id = acl.dashboard_id
|
|
||||||
WHERE d.is_folder = ?
|
|
||||||
) AS dashboard_permissions,`, dialect.BooleanStr(false))
|
|
||||||
|
|
||||||
sb.Write(`(
|
|
||||||
SELECT COUNT(acl.id)
|
|
||||||
FROM `+dialect.Quote("dashboard_acl")+` AS acl
|
|
||||||
INNER JOIN `+dialect.Quote("dashboard")+` AS d
|
|
||||||
ON d.id = acl.dashboard_id
|
|
||||||
WHERE d.is_folder = ?
|
|
||||||
) AS folder_permissions,`, dialect.BooleanStr(true))
|
|
||||||
|
|
||||||
sb.Write(viewersPermissionsCounterSQL(ss.db, "dashboards_viewers_can_edit", false, dashboardaccess.PERMISSION_EDIT))
|
|
||||||
sb.Write(viewersPermissionsCounterSQL(ss.db, "dashboards_viewers_can_admin", false, dashboardaccess.PERMISSION_ADMIN))
|
|
||||||
sb.Write(viewersPermissionsCounterSQL(ss.db, "folders_viewers_can_edit", true, dashboardaccess.PERMISSION_EDIT))
|
|
||||||
sb.Write(viewersPermissionsCounterSQL(ss.db, "folders_viewers_can_admin", true, dashboardaccess.PERMISSION_ADMIN))
|
|
||||||
|
|
||||||
sb.Write(`(SELECT COUNT(id) FROM ` + dialect.Quote("dashboard_provisioning") + `) AS provisioned_dashboards,`)
|
sb.Write(`(SELECT COUNT(id) FROM ` + dialect.Quote("dashboard_provisioning") + `) AS provisioned_dashboards,`)
|
||||||
sb.Write(`(SELECT COUNT(id) FROM ` + dialect.Quote("dashboard_snapshot") + `) AS snapshots,`)
|
sb.Write(`(SELECT COUNT(id) FROM ` + dialect.Quote("dashboard_snapshot") + `) AS snapshots,`)
|
||||||
sb.Write(`(SELECT COUNT(id) FROM ` + dialect.Quote("dashboard_version") + `) AS dashboard_versions,`)
|
sb.Write(`(SELECT COUNT(id) FROM ` + dialect.Quote("dashboard_version") + `) AS dashboard_versions,`)
|
||||||
@ -169,19 +147,6 @@ func (ss *sqlStatsService) roleCounterSQL(ctx context.Context) string {
|
|||||||
return sqlQuery
|
return sqlQuery
|
||||||
}
|
}
|
||||||
|
|
||||||
func viewersPermissionsCounterSQL(db db.DB, statName string, isFolder bool, permission dashboardaccess.PermissionType) string {
|
|
||||||
dialect := db.GetDialect()
|
|
||||||
return `(
|
|
||||||
SELECT COUNT(*)
|
|
||||||
FROM ` + dialect.Quote("dashboard_acl") + ` AS acl
|
|
||||||
INNER JOIN ` + dialect.Quote("dashboard") + ` AS d
|
|
||||||
ON d.id = acl.dashboard_id
|
|
||||||
WHERE acl.role = '` + string(org.RoleViewer) + `'
|
|
||||||
AND d.is_folder = ` + dialect.BooleanStr(isFolder) + `
|
|
||||||
AND acl.permission = ` + strconv.FormatInt(int64(permission), 10) + `
|
|
||||||
) AS ` + statName + `, `
|
|
||||||
}
|
|
||||||
|
|
||||||
func (ss *sqlStatsService) GetAdminStats(ctx context.Context, query *stats.GetAdminStatsQuery) (result *stats.AdminStats, err error) {
|
func (ss *sqlStatsService) GetAdminStats(ctx context.Context, query *stats.GetAdminStatsQuery) (result *stats.AdminStats, err error) {
|
||||||
err = ss.db.WithDbSession(ctx, func(dbSession *db.Session) error {
|
err = ss.db.WithDbSession(ctx, func(dbSession *db.Session) error {
|
||||||
dialect := ss.db.GetDialect()
|
dialect := ss.db.GetDialect()
|
||||||
|
Loading…
Reference in New Issue
Block a user