2022-08-24 13:29:17 +02:00
|
|
|
package actest
|
|
|
|
|
|
|
|
|
|
import (
|
|
|
|
|
"context"
|
|
|
|
|
|
|
|
|
|
"github.com/grafana/grafana/pkg/services/accesscontrol"
|
2023-08-09 09:35:50 +02:00
|
|
|
"github.com/grafana/grafana/pkg/services/auth/identity"
|
2022-08-24 13:29:17 +02:00
|
|
|
)
|
|
|
|
|
|
|
|
|
|
var _ accesscontrol.Service = new(FakeService)
|
|
|
|
|
var _ accesscontrol.RoleRegistry = new(FakeService)
|
|
|
|
|
|
|
|
|
|
type FakeService struct {
|
2024-01-17 10:55:47 +01:00
|
|
|
accesscontrol.Service
|
2022-12-14 10:53:25 +00:00
|
|
|
ExpectedErr error
|
|
|
|
|
ExpectedCachedPermissions bool
|
|
|
|
|
ExpectedPermissions []accesscontrol.Permission
|
|
|
|
|
ExpectedFilteredUserPermissions []accesscontrol.Permission
|
|
|
|
|
ExpectedUsersPermissions map[int64][]accesscontrol.Permission
|
2022-08-24 13:29:17 +02:00
|
|
|
}
|
|
|
|
|
|
2023-08-30 08:46:47 -07:00
|
|
|
func (f FakeService) GetUsageStats(ctx context.Context) map[string]any {
|
|
|
|
|
return map[string]any{}
|
2022-08-24 13:29:17 +02:00
|
|
|
}
|
|
|
|
|
|
2023-08-09 09:35:50 +02:00
|
|
|
func (f FakeService) GetUserPermissions(ctx context.Context, user identity.Requester, options accesscontrol.Options) ([]accesscontrol.Permission, error) {
|
2022-08-24 13:29:17 +02:00
|
|
|
return f.ExpectedPermissions, f.ExpectedErr
|
|
|
|
|
}
|
|
|
|
|
|
2023-08-09 09:35:50 +02:00
|
|
|
func (f FakeService) SearchUsersPermissions(ctx context.Context, user identity.Requester, options accesscontrol.SearchOptions) (map[int64][]accesscontrol.Permission, error) {
|
2022-11-30 15:38:49 +01:00
|
|
|
return f.ExpectedUsersPermissions, f.ExpectedErr
|
|
|
|
|
}
|
|
|
|
|
|
2022-12-14 10:53:25 +00:00
|
|
|
func (f FakeService) SearchUserPermissions(ctx context.Context, orgID int64, searchOptions accesscontrol.SearchOptions) ([]accesscontrol.Permission, error) {
|
|
|
|
|
return f.ExpectedFilteredUserPermissions, f.ExpectedErr
|
|
|
|
|
}
|
|
|
|
|
|
2023-08-09 09:35:50 +02:00
|
|
|
func (f FakeService) ClearUserPermissionCache(user identity.Requester) {}
|
2022-11-24 14:38:55 +00:00
|
|
|
|
2022-08-24 13:29:17 +02:00
|
|
|
func (f FakeService) DeleteUserPermissions(ctx context.Context, orgID, userID int64) error {
|
|
|
|
|
return f.ExpectedErr
|
|
|
|
|
}
|
|
|
|
|
|
2024-02-27 12:21:26 +01:00
|
|
|
func (f FakeService) DeleteTeamPermissions(ctx context.Context, orgID, teamID int64) error {
|
|
|
|
|
return f.ExpectedErr
|
|
|
|
|
}
|
|
|
|
|
|
2022-08-24 13:29:17 +02:00
|
|
|
func (f FakeService) DeclareFixedRoles(registrations ...accesscontrol.RoleRegistration) error {
|
|
|
|
|
return f.ExpectedErr
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
func (f FakeService) RegisterFixedRoles(ctx context.Context) error {
|
|
|
|
|
return f.ExpectedErr
|
|
|
|
|
}
|
|
|
|
|
|
2023-05-09 13:19:38 +02:00
|
|
|
func (f FakeService) SaveExternalServiceRole(ctx context.Context, cmd accesscontrol.SaveExternalServiceRoleCommand) error {
|
|
|
|
|
return f.ExpectedErr
|
|
|
|
|
}
|
|
|
|
|
|
2023-05-16 15:01:27 +02:00
|
|
|
func (f FakeService) DeleteExternalServiceRole(ctx context.Context, externalServiceID string) error {
|
|
|
|
|
return f.ExpectedErr
|
|
|
|
|
}
|
|
|
|
|
|
2022-08-24 13:29:17 +02:00
|
|
|
var _ accesscontrol.AccessControl = new(FakeAccessControl)
|
|
|
|
|
|
|
|
|
|
type FakeAccessControl struct {
|
|
|
|
|
ExpectedErr error
|
|
|
|
|
ExpectedEvaluate bool
|
|
|
|
|
}
|
|
|
|
|
|
2023-08-09 09:35:50 +02:00
|
|
|
func (f FakeAccessControl) Evaluate(ctx context.Context, user identity.Requester, evaluator accesscontrol.Evaluator) (bool, error) {
|
2022-08-24 13:29:17 +02:00
|
|
|
return f.ExpectedEvaluate, f.ExpectedErr
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
func (f FakeAccessControl) RegisterScopeAttributeResolver(prefix string, resolver accesscontrol.ScopeAttributeResolver) {
|
|
|
|
|
}
|
|
|
|
|
|
2022-11-30 15:38:49 +01:00
|
|
|
type FakeStore struct {
|
|
|
|
|
ExpectedUserPermissions []accesscontrol.Permission
|
|
|
|
|
ExpectedUsersPermissions map[int64][]accesscontrol.Permission
|
|
|
|
|
ExpectedUsersRoles map[int64][]string
|
|
|
|
|
ExpectedErr error
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
func (f FakeStore) GetUserPermissions(ctx context.Context, query accesscontrol.GetUserPermissionsQuery) ([]accesscontrol.Permission, error) {
|
|
|
|
|
return f.ExpectedUserPermissions, f.ExpectedErr
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
func (f FakeStore) SearchUsersPermissions(ctx context.Context, orgID int64, options accesscontrol.SearchOptions) (map[int64][]accesscontrol.Permission, error) {
|
|
|
|
|
return f.ExpectedUsersPermissions, f.ExpectedErr
|
|
|
|
|
}
|
|
|
|
|
|
2022-12-14 10:53:25 +00:00
|
|
|
func (f FakeStore) GetUsersBasicRoles(ctx context.Context, userFilter []int64, orgID int64) (map[int64][]string, error) {
|
2022-11-30 15:38:49 +01:00
|
|
|
return f.ExpectedUsersRoles, f.ExpectedErr
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
func (f FakeStore) DeleteUserPermissions(ctx context.Context, orgID, userID int64) error {
|
|
|
|
|
return f.ExpectedErr
|
|
|
|
|
}
|
2022-12-19 09:27:52 +01:00
|
|
|
|
2024-02-27 12:21:26 +01:00
|
|
|
func (f FakeStore) DeleteTeamPermissions(ctx context.Context, orgID, teamID int64) error {
|
|
|
|
|
return f.ExpectedErr
|
|
|
|
|
}
|
|
|
|
|
|
2023-05-09 13:19:38 +02:00
|
|
|
func (f FakeStore) SaveExternalServiceRole(ctx context.Context, cmd accesscontrol.SaveExternalServiceRoleCommand) error {
|
|
|
|
|
return f.ExpectedErr
|
|
|
|
|
}
|
|
|
|
|
|
2023-05-16 15:01:27 +02:00
|
|
|
func (f FakeStore) DeleteExternalServiceRole(ctx context.Context, externalServiceID string) error {
|
|
|
|
|
return f.ExpectedErr
|
|
|
|
|
}
|
|
|
|
|
|
2022-12-19 09:27:52 +01:00
|
|
|
var _ accesscontrol.PermissionsService = new(FakePermissionsService)
|
|
|
|
|
|
|
|
|
|
type FakePermissionsService struct {
|
|
|
|
|
ExpectedErr error
|
|
|
|
|
ExpectedPermission *accesscontrol.ResourcePermission
|
|
|
|
|
ExpectedPermissions []accesscontrol.ResourcePermission
|
|
|
|
|
ExpectedMappedAction string
|
|
|
|
|
}
|
|
|
|
|
|
2023-08-18 12:42:18 +02:00
|
|
|
func (f *FakePermissionsService) GetPermissions(ctx context.Context, user identity.Requester, resourceID string) ([]accesscontrol.ResourcePermission, error) {
|
2022-12-19 09:27:52 +01:00
|
|
|
return f.ExpectedPermissions, f.ExpectedErr
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
func (f *FakePermissionsService) SetUserPermission(ctx context.Context, orgID int64, user accesscontrol.User, resourceID, permission string) (*accesscontrol.ResourcePermission, error) {
|
|
|
|
|
return f.ExpectedPermission, f.ExpectedErr
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
func (f *FakePermissionsService) SetTeamPermission(ctx context.Context, orgID, teamID int64, resourceID, permission string) (*accesscontrol.ResourcePermission, error) {
|
|
|
|
|
return f.ExpectedPermission, f.ExpectedErr
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
func (f *FakePermissionsService) SetBuiltInRolePermission(ctx context.Context, orgID int64, builtInRole string, resourceID string, permission string) (*accesscontrol.ResourcePermission, error) {
|
|
|
|
|
return f.ExpectedPermission, f.ExpectedErr
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
func (f *FakePermissionsService) SetPermissions(ctx context.Context, orgID int64, resourceID string, commands ...accesscontrol.SetResourcePermissionCommand) ([]accesscontrol.ResourcePermission, error) {
|
|
|
|
|
return f.ExpectedPermissions, f.ExpectedErr
|
|
|
|
|
}
|
|
|
|
|
|
2023-07-10 11:13:05 +02:00
|
|
|
func (f *FakePermissionsService) DeleteResourcePermissions(ctx context.Context, orgID int64, resourceID string) error {
|
|
|
|
|
return f.ExpectedErr
|
|
|
|
|
}
|
|
|
|
|
|
2022-12-19 09:27:52 +01:00
|
|
|
func (f *FakePermissionsService) MapActions(permission accesscontrol.ResourcePermission) string {
|
|
|
|
|
return f.ExpectedMappedAction
|
|
|
|
|
}
|