2016-09-23 05:29:53 -05:00
|
|
|
package middleware
|
|
|
|
|
|
|
|
import (
|
2018-05-24 08:26:27 -05:00
|
|
|
"time"
|
2016-09-23 05:29:53 -05:00
|
|
|
|
2020-02-28 05:50:58 -06:00
|
|
|
"github.com/grafana/grafana/pkg/models"
|
2020-02-19 12:47:39 -06:00
|
|
|
"github.com/grafana/grafana/pkg/services/rendering"
|
2016-09-23 05:29:53 -05:00
|
|
|
)
|
|
|
|
|
2020-02-28 05:50:58 -06:00
|
|
|
func initContextWithRenderAuth(ctx *models.ReqContext, renderService rendering.Service) bool {
|
2016-09-23 05:29:53 -05:00
|
|
|
key := ctx.GetCookie("renderKey")
|
|
|
|
if key == "" {
|
|
|
|
return false
|
|
|
|
}
|
|
|
|
|
2020-02-19 12:47:39 -06:00
|
|
|
renderUser, exists := renderService.GetRenderUser(key)
|
2018-03-22 16:13:46 -05:00
|
|
|
if !exists {
|
2016-09-23 05:29:53 -05:00
|
|
|
ctx.JsonApiErr(401, "Invalid Render Key", nil)
|
|
|
|
return true
|
|
|
|
}
|
2018-03-22 16:13:46 -05:00
|
|
|
|
|
|
|
ctx.IsSignedIn = true
|
2020-02-28 05:50:58 -06:00
|
|
|
ctx.SignedInUser = &models.SignedInUser{
|
2020-02-19 12:47:39 -06:00
|
|
|
OrgId: renderUser.OrgID,
|
|
|
|
UserId: renderUser.UserID,
|
2020-02-28 05:50:58 -06:00
|
|
|
OrgRole: models.RoleType(renderUser.OrgRole),
|
2020-02-19 12:47:39 -06:00
|
|
|
}
|
2018-03-22 16:13:46 -05:00
|
|
|
ctx.IsRenderCall = true
|
2018-05-24 08:26:27 -05:00
|
|
|
ctx.LastSeenAt = time.Now()
|
2018-03-22 16:13:46 -05:00
|
|
|
return true
|
2016-09-23 05:29:53 -05:00
|
|
|
}
|