mirror of
https://github.com/grafana/grafana.git
synced 2025-02-25 18:55:37 -06:00
Context: Add context to hasEditPermission call bus call (#40107)
Signed-off-by: bergquist <carl.bergquist@gmail.com>
This commit is contained in:
parent
f20de5588b
commit
621bd477d0
@ -415,7 +415,7 @@ func (hs *HTTPServer) buildAdminNavLinks(c *models.ReqContext) []*dtos.NavLink {
|
|||||||
|
|
||||||
func (hs *HTTPServer) setIndexViewData(c *models.ReqContext) (*dtos.IndexViewData, error) {
|
func (hs *HTTPServer) setIndexViewData(c *models.ReqContext) (*dtos.IndexViewData, error) {
|
||||||
hasEditPermissionInFoldersQuery := models.HasEditPermissionInFoldersQuery{SignedInUser: c.SignedInUser}
|
hasEditPermissionInFoldersQuery := models.HasEditPermissionInFoldersQuery{SignedInUser: c.SignedInUser}
|
||||||
if err := bus.Dispatch(&hasEditPermissionInFoldersQuery); err != nil {
|
if err := bus.DispatchCtx(c.Req.Context(), &hasEditPermissionInFoldersQuery); err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
hasEditPerm := hasEditPermissionInFoldersQuery.Result
|
hasEditPerm := hasEditPermissionInFoldersQuery.Result
|
||||||
|
@ -799,29 +799,32 @@ func (ss *SQLStore) ValidateDashboardBeforeSave(dashboard *models.Dashboard, ove
|
|||||||
return isParentFolderChanged, nil
|
return isParentFolderChanged, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// HasEditPermissionInFolders validates that an user have access to a certain folder
|
||||||
func HasEditPermissionInFolders(ctx context.Context, query *models.HasEditPermissionInFoldersQuery) error {
|
func HasEditPermissionInFolders(ctx context.Context, query *models.HasEditPermissionInFoldersQuery) error {
|
||||||
if query.SignedInUser.HasRole(models.ROLE_EDITOR) {
|
return withDbSession(ctx, x, func(dbSession *DBSession) error {
|
||||||
query.Result = true
|
if query.SignedInUser.HasRole(models.ROLE_EDITOR) {
|
||||||
|
query.Result = true
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
|
builder := &SQLBuilder{}
|
||||||
|
builder.Write("SELECT COUNT(dashboard.id) AS count FROM dashboard WHERE dashboard.org_id = ? AND dashboard.is_folder = ?",
|
||||||
|
query.SignedInUser.OrgId, dialect.BooleanStr(true))
|
||||||
|
builder.WriteDashboardPermissionFilter(query.SignedInUser, models.PERMISSION_EDIT)
|
||||||
|
|
||||||
|
type folderCount struct {
|
||||||
|
Count int64
|
||||||
|
}
|
||||||
|
|
||||||
|
resp := make([]*folderCount, 0)
|
||||||
|
if err := dbSession.SQL(builder.GetSQLString(), builder.params...).Find(&resp); err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
|
||||||
|
query.Result = len(resp) > 0 && resp[0].Count > 0
|
||||||
|
|
||||||
return nil
|
return nil
|
||||||
}
|
})
|
||||||
|
|
||||||
builder := &SQLBuilder{}
|
|
||||||
builder.Write("SELECT COUNT(dashboard.id) AS count FROM dashboard WHERE dashboard.org_id = ? AND dashboard.is_folder = ?",
|
|
||||||
query.SignedInUser.OrgId, dialect.BooleanStr(true))
|
|
||||||
builder.WriteDashboardPermissionFilter(query.SignedInUser, models.PERMISSION_EDIT)
|
|
||||||
|
|
||||||
type folderCount struct {
|
|
||||||
Count int64
|
|
||||||
}
|
|
||||||
|
|
||||||
resp := make([]*folderCount, 0)
|
|
||||||
if err := x.SQL(builder.GetSQLString(), builder.params...).Find(&resp); err != nil {
|
|
||||||
return err
|
|
||||||
}
|
|
||||||
|
|
||||||
query.Result = len(resp) > 0 && resp[0].Count > 0
|
|
||||||
|
|
||||||
return nil
|
|
||||||
}
|
}
|
||||||
|
|
||||||
func HasAdminPermissionInFolders(ctx context.Context, query *models.HasAdminPermissionInFoldersQuery) error {
|
func HasAdminPermissionInFolders(ctx context.Context, query *models.HasAdminPermissionInFoldersQuery) error {
|
||||||
|
Loading…
Reference in New Issue
Block a user