mirror of
https://github.com/grafana/grafana.git
synced 2025-02-25 18:55:37 -06:00
WIP: API - add dash permission
This commit is contained in:
@@ -250,6 +250,7 @@ func (hs *HttpServer) registerRoutes() {
|
||||
|
||||
r.Group("/:id/acl", func() {
|
||||
r.Get("/", wrap(GetDashboardAcl))
|
||||
r.Post("/", quota("acl"), bind(m.AddOrUpdateDashboardPermissionCommand{}), wrap(PostDashboardAcl))
|
||||
r.Delete("/user/:userId", wrap(DeleteDashboardAclByUser))
|
||||
r.Delete("/user-group/:userGroupId", wrap(DeleteDashboardAclByUserGroup))
|
||||
}, reqSignedIn)
|
||||
|
||||
@@ -2,6 +2,7 @@ package api
|
||||
|
||||
import (
|
||||
"github.com/grafana/grafana/pkg/bus"
|
||||
"github.com/grafana/grafana/pkg/metrics"
|
||||
"github.com/grafana/grafana/pkg/middleware"
|
||||
m "github.com/grafana/grafana/pkg/models"
|
||||
"github.com/grafana/grafana/pkg/services/guardian"
|
||||
@@ -30,6 +31,25 @@ func GetDashboardAcl(c *middleware.Context) Response {
|
||||
return Json(200, &query.Result)
|
||||
}
|
||||
|
||||
func PostDashboardAcl(c *middleware.Context, cmd m.AddOrUpdateDashboardPermissionCommand) Response {
|
||||
cmd.OrgId = c.OrgId
|
||||
cmd.DashboardId = c.ParamsInt64(":id")
|
||||
|
||||
if err := bus.Dispatch(&cmd); err != nil {
|
||||
if err == m.ErrDashboardPermissionAlreadyAdded {
|
||||
return ApiError(409, "Permission for user/user group already exists", err)
|
||||
}
|
||||
return ApiError(500, "Failed to create permission", err)
|
||||
}
|
||||
|
||||
metrics.M_Api_Dashboard_Acl_Create.Inc(1)
|
||||
|
||||
return Json(200, &util.DynMap{
|
||||
"permissionId": cmd.Result.Id,
|
||||
"message": "Permission created",
|
||||
})
|
||||
}
|
||||
|
||||
func DeleteDashboardAclByUser(c *middleware.Context) Response {
|
||||
dashboardId := c.ParamsInt64(":id")
|
||||
userId := c.ParamsInt64(":userId")
|
||||
|
||||
Reference in New Issue
Block a user