permissions: refactor.

This commit is contained in:
Leonard Gram
2019-03-14 09:18:06 +01:00
parent b796027bc6
commit 9f8e43916d
3 changed files with 3 additions and 17 deletions

View File

@@ -278,9 +278,8 @@ func (hs *HTTPServer) PostDashboard(c *m.ReqContext, cmd m.SaveDashboardCommand)
} }
if hs.Cfg.EditorsCanAdmin && newDashboard { if hs.Cfg.EditorsCanAdmin && newDashboard {
aclService := dashboards.NewAclService()
inFolder := cmd.FolderId > 0 inFolder := cmd.FolderId > 0
err := aclService.MakeUserAdmin(cmd.OrgId, cmd.UserId, dashboard.Id, !inFolder) err := dashboards.MakeUserAdmin(cmd.OrgId, cmd.UserId, dashboard.Id, !inFolder)
if err != nil { if err != nil {
hs.log.Error("Could not make user admin", "dashboard", cmd.Result.Title, "user", c.SignedInUser.UserId, "error", err) hs.log.Error("Could not make user admin", "dashboard", cmd.Result.Title, "user", c.SignedInUser.UserId, "error", err)
return Error(500, "Failed to make user admin of dashboard", err) return Error(500, "Failed to make user admin of dashboard", err)

View File

@@ -62,8 +62,7 @@ func (hs *HTTPServer) CreateFolder(c *m.ReqContext, cmd m.CreateFolderCommand) R
} }
if hs.Cfg.EditorsCanAdmin { if hs.Cfg.EditorsCanAdmin {
aclService := dashboards.NewAclService() if err := dashboards.MakeUserAdmin(c.OrgId, c.SignedInUser.UserId, cmd.Result.Id, true); err != nil {
if err := aclService.MakeUserAdmin(c.OrgId, c.SignedInUser.UserId, cmd.Result.Id, true); err != nil {
hs.log.Error("Could not make user admin", "folder", cmd.Result.Title, "user", c.SignedInUser.UserId, "error", err) hs.log.Error("Could not make user admin", "folder", cmd.Result.Title, "user", c.SignedInUser.UserId, "error", err)
return Error(500, "Failed to make user admin of folder", err) return Error(500, "Failed to make user admin of folder", err)
} }

View File

@@ -2,23 +2,11 @@ package dashboards
import ( import (
"github.com/grafana/grafana/pkg/bus" "github.com/grafana/grafana/pkg/bus"
"github.com/grafana/grafana/pkg/log"
"github.com/grafana/grafana/pkg/models" "github.com/grafana/grafana/pkg/models"
"time" "time"
) )
// NewService factory for creating a new dashboard service func MakeUserAdmin(orgId int64, userId int64, dashboardId int64, setViewAndEditPermissions bool) error {
var NewAclService = func() *AclService {
return &AclService{
log: log.New("dashboard-acl-service"),
}
}
type AclService struct {
log log.Logger
}
func (as *AclService) MakeUserAdmin(orgId int64, userId int64, dashboardId int64, setViewAndEditPermissions bool) error {
rtEditor := models.ROLE_EDITOR rtEditor := models.ROLE_EDITOR
rtViewer := models.ROLE_VIEWER rtViewer := models.ROLE_VIEWER