Annotations: Use dashboard uids instead of dashboard ids (#106676)
This commit is contained in:
@@ -63,11 +63,11 @@ func (authz *AuthService) Authorize(ctx context.Context, query annotations.ItemQ
|
||||
var err error
|
||||
if canAccessDashAnnotations {
|
||||
if query.AnnotationID != 0 {
|
||||
annotationDashboardID, err := authz.getAnnotationDashboard(ctx, query)
|
||||
annotationDashboardUID, err := authz.getAnnotationDashboard(ctx, query)
|
||||
if err != nil {
|
||||
return nil, ErrAccessControlInternal.Errorf("failed to fetch annotations: %w", err)
|
||||
}
|
||||
query.DashboardID = annotationDashboardID
|
||||
query.DashboardUID = annotationDashboardUID
|
||||
}
|
||||
|
||||
visibleDashboards, err = authz.dashboardsWithVisibleAnnotations(ctx, query)
|
||||
@@ -83,7 +83,7 @@ func (authz *AuthService) Authorize(ctx context.Context, query annotations.ItemQ
|
||||
}, nil
|
||||
}
|
||||
|
||||
func (authz *AuthService) getAnnotationDashboard(ctx context.Context, query annotations.ItemQuery) (int64, error) {
|
||||
func (authz *AuthService) getAnnotationDashboard(ctx context.Context, query annotations.ItemQuery) (string, error) {
|
||||
var items []annotations.Item
|
||||
params := make([]any, 0)
|
||||
err := authz.db.WithDbSession(ctx, func(sess *db.Session) error {
|
||||
@@ -91,7 +91,7 @@ func (authz *AuthService) getAnnotationDashboard(ctx context.Context, query anno
|
||||
SELECT
|
||||
a.id,
|
||||
a.org_id,
|
||||
a.dashboard_id
|
||||
a.dashboard_uid
|
||||
FROM annotation as a
|
||||
WHERE a.org_id = ? AND a.id = ?
|
||||
`
|
||||
@@ -100,13 +100,13 @@ func (authz *AuthService) getAnnotationDashboard(ctx context.Context, query anno
|
||||
return sess.SQL(sql, params...).Find(&items)
|
||||
})
|
||||
if err != nil {
|
||||
return 0, err
|
||||
return "", err
|
||||
}
|
||||
if len(items) == 0 {
|
||||
return 0, ErrAccessControlInternal.Errorf("annotation not found")
|
||||
return "", ErrAccessControlInternal.Errorf("annotation not found")
|
||||
}
|
||||
|
||||
return items[0].DashboardID, nil
|
||||
return items[0].DashboardUID, nil
|
||||
}
|
||||
|
||||
func (authz *AuthService) dashboardsWithVisibleAnnotations(ctx context.Context, query annotations.ItemQuery) (map[string]int64, error) {
|
||||
@@ -130,11 +130,6 @@ func (authz *AuthService) dashboardsWithVisibleAnnotations(ctx context.Context,
|
||||
UIDs: []string{query.DashboardUID},
|
||||
})
|
||||
}
|
||||
if query.DashboardID != 0 {
|
||||
filters = append(filters, searchstore.DashboardIDFilter{
|
||||
IDs: []int64{query.DashboardID},
|
||||
})
|
||||
}
|
||||
|
||||
dashs, err := authz.dashSvc.SearchDashboards(ctx, &dashboards.FindPersistedDashboardsQuery{
|
||||
OrgId: query.SignedInUser.GetOrgID(),
|
||||
|
||||
Reference in New Issue
Block a user