[v9.2.x] DataSourcePermissions: Handle licensing properly for ds permissions (#59711)

DataSourcePermissions: Handle licensing properly for ds permissions (#59694)

* RBAC: add viewer grand if dspermissions enforcement is not enabled

* RBAC: Change permissions based on role prefix

* RBAC: Add option to for permission service to add a license middleware

* RBAC: Remove actions from query struct

(cherry picked from commit 6d1bcd9f40)
This commit is contained in:
Karl Persson
2022-12-02 14:07:20 +01:00
committed by GitHub
parent c0e7cb2bc1
commit 3148a918ce
9 changed files with 28 additions and 42 deletions
+5 -10
View File
@@ -12,7 +12,6 @@ import (
"github.com/grafana/grafana/pkg/services/accesscontrol"
"github.com/grafana/grafana/pkg/services/accesscontrol/api"
"github.com/grafana/grafana/pkg/services/accesscontrol/database"
"github.com/grafana/grafana/pkg/services/accesscontrol/ossaccesscontrol"
"github.com/grafana/grafana/pkg/services/sqlstore"
"github.com/grafana/grafana/pkg/services/user"
"github.com/grafana/grafana/pkg/setting"
@@ -74,10 +73,6 @@ func (s *Service) GetUsageStats(_ context.Context) map[string]interface{} {
}
}
var actionsToFetch = append(
ossaccesscontrol.TeamAdminActions, append(ossaccesscontrol.DashboardAdminActions, ossaccesscontrol.FolderAdminActions...)...,
)
// GetUserPermissions returns user permissions based on built-in roles
func (s *Service) GetUserPermissions(ctx context.Context, user *user.SignedInUser, options accesscontrol.Options) ([]accesscontrol.Permission, error) {
timer := prometheus.NewTimer(metrics.MAccessPermissionsSummary)
@@ -99,11 +94,11 @@ func (s *Service) getUserPermissions(ctx context.Context, user *user.SignedInUse
}
dbPermissions, err := s.store.GetUserPermissions(ctx, accesscontrol.GetUserPermissionsQuery{
OrgID: user.OrgID,
UserID: user.UserID,
Roles: accesscontrol.GetOrgRoles(user),
TeamIDs: user.Teams,
Actions: actionsToFetch,
OrgID: user.OrgID,
UserID: user.UserID,
Roles: accesscontrol.GetOrgRoles(user),
TeamIDs: user.Teams,
RolePrefix: accesscontrol.ManagedRolePrefix,
})
if err != nil {
return nil, err