[MM-32281] SqlRoleStore/GetByName: add context to allow read from master (#17176)
* role_store/GetByName: add context * propagate context in the app layer * propagate context in the app layer * add missing import Co-authored-by: Mattermod <mattermod@users.noreply.github.com>
Этот коммит содержится в:
коммит произвёл
GitHub
родитель
9eceeaa8db
Коммит
28ff4dc8d0
@@ -5,6 +5,8 @@
|
||||
package mocks
|
||||
|
||||
import (
|
||||
context "context"
|
||||
|
||||
httpservice "github.com/mattermost/mattermost-server/v5/services/httpservice"
|
||||
mock "github.com/stretchr/testify/mock"
|
||||
|
||||
@@ -50,13 +52,13 @@ func (_m *ServerIface) GetPluginsEnvironment() *plugin.Environment {
|
||||
return r0
|
||||
}
|
||||
|
||||
// GetRoleByName provides a mock function with given fields: _a0
|
||||
func (_m *ServerIface) GetRoleByName(_a0 string) (*model.Role, *model.AppError) {
|
||||
ret := _m.Called(_a0)
|
||||
// GetRoleByName provides a mock function with given fields: _a0, _a1
|
||||
func (_m *ServerIface) GetRoleByName(_a0 context.Context, _a1 string) (*model.Role, *model.AppError) {
|
||||
ret := _m.Called(_a0, _a1)
|
||||
|
||||
var r0 *model.Role
|
||||
if rf, ok := ret.Get(0).(func(string) *model.Role); ok {
|
||||
r0 = rf(_a0)
|
||||
if rf, ok := ret.Get(0).(func(context.Context, string) *model.Role); ok {
|
||||
r0 = rf(_a0, _a1)
|
||||
} else {
|
||||
if ret.Get(0) != nil {
|
||||
r0 = ret.Get(0).(*model.Role)
|
||||
@@ -64,8 +66,8 @@ func (_m *ServerIface) GetRoleByName(_a0 string) (*model.Role, *model.AppError)
|
||||
}
|
||||
|
||||
var r1 *model.AppError
|
||||
if rf, ok := ret.Get(1).(func(string) *model.AppError); ok {
|
||||
r1 = rf(_a0)
|
||||
if rf, ok := ret.Get(1).(func(context.Context, string) *model.AppError); ok {
|
||||
r1 = rf(_a0, _a1)
|
||||
} else {
|
||||
if ret.Get(1) != nil {
|
||||
r1 = ret.Get(1).(*model.AppError)
|
||||
|
||||
@@ -4,6 +4,7 @@
|
||||
package telemetry
|
||||
|
||||
import (
|
||||
"context"
|
||||
"os"
|
||||
"path/filepath"
|
||||
"runtime"
|
||||
@@ -86,7 +87,7 @@ type ServerIface interface {
|
||||
HttpService() httpservice.HTTPService
|
||||
GetPluginsEnvironment() *plugin.Environment
|
||||
License() *model.License
|
||||
GetRoleByName(string) (*model.Role, *model.AppError)
|
||||
GetRoleByName(context.Context, string) (*model.Role, *model.AppError)
|
||||
GetSchemes(string, int, int) ([]*model.Scheme, *model.AppError)
|
||||
}
|
||||
|
||||
@@ -947,48 +948,48 @@ func (ts *TelemetryService) trackPermissions() {
|
||||
})
|
||||
|
||||
systemAdminPermissions := ""
|
||||
if role, err := ts.srv.GetRoleByName(model.SYSTEM_ADMIN_ROLE_ID); err == nil {
|
||||
if role, err := ts.srv.GetRoleByName(context.Background(), model.SYSTEM_ADMIN_ROLE_ID); err == nil {
|
||||
systemAdminPermissions = strings.Join(role.Permissions, " ")
|
||||
}
|
||||
|
||||
systemUserPermissions := ""
|
||||
if role, err := ts.srv.GetRoleByName(model.SYSTEM_USER_ROLE_ID); err == nil {
|
||||
if role, err := ts.srv.GetRoleByName(context.Background(), model.SYSTEM_USER_ROLE_ID); err == nil {
|
||||
systemUserPermissions = strings.Join(role.Permissions, " ")
|
||||
}
|
||||
|
||||
teamAdminPermissions := ""
|
||||
if role, err := ts.srv.GetRoleByName(model.TEAM_ADMIN_ROLE_ID); err == nil {
|
||||
if role, err := ts.srv.GetRoleByName(context.Background(), model.TEAM_ADMIN_ROLE_ID); err == nil {
|
||||
teamAdminPermissions = strings.Join(role.Permissions, " ")
|
||||
}
|
||||
|
||||
teamUserPermissions := ""
|
||||
if role, err := ts.srv.GetRoleByName(model.TEAM_USER_ROLE_ID); err == nil {
|
||||
if role, err := ts.srv.GetRoleByName(context.Background(), model.TEAM_USER_ROLE_ID); err == nil {
|
||||
teamUserPermissions = strings.Join(role.Permissions, " ")
|
||||
}
|
||||
|
||||
teamGuestPermissions := ""
|
||||
if role, err := ts.srv.GetRoleByName(model.TEAM_GUEST_ROLE_ID); err == nil {
|
||||
if role, err := ts.srv.GetRoleByName(context.Background(), model.TEAM_GUEST_ROLE_ID); err == nil {
|
||||
teamGuestPermissions = strings.Join(role.Permissions, " ")
|
||||
}
|
||||
|
||||
channelAdminPermissions := ""
|
||||
if role, err := ts.srv.GetRoleByName(model.CHANNEL_ADMIN_ROLE_ID); err == nil {
|
||||
if role, err := ts.srv.GetRoleByName(context.Background(), model.CHANNEL_ADMIN_ROLE_ID); err == nil {
|
||||
channelAdminPermissions = strings.Join(role.Permissions, " ")
|
||||
}
|
||||
|
||||
channelUserPermissions := ""
|
||||
if role, err := ts.srv.GetRoleByName(model.CHANNEL_USER_ROLE_ID); err == nil {
|
||||
if role, err := ts.srv.GetRoleByName(context.Background(), model.CHANNEL_USER_ROLE_ID); err == nil {
|
||||
channelUserPermissions = strings.Join(role.Permissions, " ")
|
||||
}
|
||||
|
||||
channelGuestPermissions := ""
|
||||
if role, err := ts.srv.GetRoleByName(model.CHANNEL_GUEST_ROLE_ID); err == nil {
|
||||
if role, err := ts.srv.GetRoleByName(context.Background(), model.CHANNEL_GUEST_ROLE_ID); err == nil {
|
||||
channelGuestPermissions = strings.Join(role.Permissions, " ")
|
||||
}
|
||||
|
||||
systemManagerPermissions := ""
|
||||
systemManagerPermissionsModified := false
|
||||
if role, err := ts.srv.GetRoleByName(model.SYSTEM_MANAGER_ROLE_ID); err == nil {
|
||||
if role, err := ts.srv.GetRoleByName(context.Background(), model.SYSTEM_MANAGER_ROLE_ID); err == nil {
|
||||
systemManagerPermissionsModified = len(model.PermissionsChangedByPatch(role, &model.RolePatch{Permissions: &model.SystemManagerDefaultPermissions})) > 0
|
||||
systemManagerPermissions = strings.Join(role.Permissions, " ")
|
||||
}
|
||||
@@ -999,7 +1000,7 @@ func (ts *TelemetryService) trackPermissions() {
|
||||
|
||||
systemUserManagerPermissions := ""
|
||||
systemUserManagerPermissionsModified := false
|
||||
if role, err := ts.srv.GetRoleByName(model.SYSTEM_USER_MANAGER_ROLE_ID); err == nil {
|
||||
if role, err := ts.srv.GetRoleByName(context.Background(), model.SYSTEM_USER_MANAGER_ROLE_ID); err == nil {
|
||||
systemUserManagerPermissionsModified = len(model.PermissionsChangedByPatch(role, &model.RolePatch{Permissions: &model.SystemUserManagerDefaultPermissions})) > 0
|
||||
systemUserManagerPermissions = strings.Join(role.Permissions, " ")
|
||||
}
|
||||
@@ -1010,7 +1011,7 @@ func (ts *TelemetryService) trackPermissions() {
|
||||
|
||||
systemReadOnlyAdminPermissions := ""
|
||||
systemReadOnlyAdminPermissionsModified := false
|
||||
if role, err := ts.srv.GetRoleByName(model.SYSTEM_READ_ONLY_ADMIN_ROLE_ID); err == nil {
|
||||
if role, err := ts.srv.GetRoleByName(context.Background(), model.SYSTEM_READ_ONLY_ADMIN_ROLE_ID); err == nil {
|
||||
systemReadOnlyAdminPermissionsModified = len(model.PermissionsChangedByPatch(role, &model.RolePatch{Permissions: &model.SystemReadOnlyAdminDefaultPermissions})) > 0
|
||||
systemReadOnlyAdminPermissions = strings.Join(role.Permissions, " ")
|
||||
}
|
||||
@@ -1042,32 +1043,32 @@ func (ts *TelemetryService) trackPermissions() {
|
||||
if schemes, err := ts.srv.GetSchemes(model.SCHEME_SCOPE_TEAM, 0, 100); err == nil {
|
||||
for _, scheme := range schemes {
|
||||
teamAdminPermissions := ""
|
||||
if role, err := ts.srv.GetRoleByName(scheme.DefaultTeamAdminRole); err == nil {
|
||||
if role, err := ts.srv.GetRoleByName(context.Background(), scheme.DefaultTeamAdminRole); err == nil {
|
||||
teamAdminPermissions = strings.Join(role.Permissions, " ")
|
||||
}
|
||||
|
||||
teamUserPermissions := ""
|
||||
if role, err := ts.srv.GetRoleByName(scheme.DefaultTeamUserRole); err == nil {
|
||||
if role, err := ts.srv.GetRoleByName(context.Background(), scheme.DefaultTeamUserRole); err == nil {
|
||||
teamUserPermissions = strings.Join(role.Permissions, " ")
|
||||
}
|
||||
|
||||
teamGuestPermissions := ""
|
||||
if role, err := ts.srv.GetRoleByName(scheme.DefaultTeamGuestRole); err == nil {
|
||||
if role, err := ts.srv.GetRoleByName(context.Background(), scheme.DefaultTeamGuestRole); err == nil {
|
||||
teamGuestPermissions = strings.Join(role.Permissions, " ")
|
||||
}
|
||||
|
||||
channelAdminPermissions := ""
|
||||
if role, err := ts.srv.GetRoleByName(scheme.DefaultChannelAdminRole); err == nil {
|
||||
if role, err := ts.srv.GetRoleByName(context.Background(), scheme.DefaultChannelAdminRole); err == nil {
|
||||
channelAdminPermissions = strings.Join(role.Permissions, " ")
|
||||
}
|
||||
|
||||
channelUserPermissions := ""
|
||||
if role, err := ts.srv.GetRoleByName(scheme.DefaultChannelUserRole); err == nil {
|
||||
if role, err := ts.srv.GetRoleByName(context.Background(), scheme.DefaultChannelUserRole); err == nil {
|
||||
channelUserPermissions = strings.Join(role.Permissions, " ")
|
||||
}
|
||||
|
||||
channelGuestPermissions := ""
|
||||
if role, err := ts.srv.GetRoleByName(scheme.DefaultChannelGuestRole); err == nil {
|
||||
if role, err := ts.srv.GetRoleByName(context.Background(), scheme.DefaultChannelGuestRole); err == nil {
|
||||
channelGuestPermissions = strings.Join(role.Permissions, " ")
|
||||
}
|
||||
|
||||
|
||||
@@ -4,6 +4,7 @@
|
||||
package telemetry
|
||||
|
||||
import (
|
||||
"context"
|
||||
"crypto/ecdsa"
|
||||
"encoding/json"
|
||||
"io/ioutil"
|
||||
@@ -55,17 +56,17 @@ func initializeMocks(cfg *model.Config) (*mocks.ServerIface, *storeMocks.Store,
|
||||
serverIfaceMock.On("GetPluginsEnvironment").Return(pluginEnv, nil)
|
||||
|
||||
serverIfaceMock.On("License").Return(model.NewTestLicense(), nil)
|
||||
serverIfaceMock.On("GetRoleByName", "system_admin").Return(&model.Role{Permissions: []string{"sa-test1", "sa-test2"}}, nil)
|
||||
serverIfaceMock.On("GetRoleByName", "system_user").Return(&model.Role{Permissions: []string{"su-test1", "su-test2"}}, nil)
|
||||
serverIfaceMock.On("GetRoleByName", "system_user_manager").Return(&model.Role{Permissions: []string{"sum-test1", "sum-test2"}}, nil)
|
||||
serverIfaceMock.On("GetRoleByName", "system_manager").Return(&model.Role{Permissions: []string{"sm-test1", "sm-test2"}}, nil)
|
||||
serverIfaceMock.On("GetRoleByName", "system_read_only_admin").Return(&model.Role{Permissions: []string{"sra-test1", "sra-test2"}}, nil)
|
||||
serverIfaceMock.On("GetRoleByName", "team_admin").Return(&model.Role{Permissions: []string{"ta-test1", "ta-test2"}}, nil)
|
||||
serverIfaceMock.On("GetRoleByName", "team_user").Return(&model.Role{Permissions: []string{"tu-test1", "tu-test2"}}, nil)
|
||||
serverIfaceMock.On("GetRoleByName", "team_guest").Return(&model.Role{Permissions: []string{"tg-test1", "tg-test2"}}, nil)
|
||||
serverIfaceMock.On("GetRoleByName", "channel_admin").Return(&model.Role{Permissions: []string{"ca-test1", "ca-test2"}}, nil)
|
||||
serverIfaceMock.On("GetRoleByName", "channel_user").Return(&model.Role{Permissions: []string{"cu-test1", "cu-test2"}}, nil)
|
||||
serverIfaceMock.On("GetRoleByName", "channel_guest").Return(&model.Role{Permissions: []string{"cg-test1", "cg-test2"}}, nil)
|
||||
serverIfaceMock.On("GetRoleByName", context.Background(), "system_admin").Return(&model.Role{Permissions: []string{"sa-test1", "sa-test2"}}, nil)
|
||||
serverIfaceMock.On("GetRoleByName", context.Background(), "system_user").Return(&model.Role{Permissions: []string{"su-test1", "su-test2"}}, nil)
|
||||
serverIfaceMock.On("GetRoleByName", context.Background(), "system_user_manager").Return(&model.Role{Permissions: []string{"sum-test1", "sum-test2"}}, nil)
|
||||
serverIfaceMock.On("GetRoleByName", context.Background(), "system_manager").Return(&model.Role{Permissions: []string{"sm-test1", "sm-test2"}}, nil)
|
||||
serverIfaceMock.On("GetRoleByName", context.Background(), "system_read_only_admin").Return(&model.Role{Permissions: []string{"sra-test1", "sra-test2"}}, nil)
|
||||
serverIfaceMock.On("GetRoleByName", context.Background(), "team_admin").Return(&model.Role{Permissions: []string{"ta-test1", "ta-test2"}}, nil)
|
||||
serverIfaceMock.On("GetRoleByName", context.Background(), "team_user").Return(&model.Role{Permissions: []string{"tu-test1", "tu-test2"}}, nil)
|
||||
serverIfaceMock.On("GetRoleByName", context.Background(), "team_guest").Return(&model.Role{Permissions: []string{"tg-test1", "tg-test2"}}, nil)
|
||||
serverIfaceMock.On("GetRoleByName", context.Background(), "channel_admin").Return(&model.Role{Permissions: []string{"ca-test1", "ca-test2"}}, nil)
|
||||
serverIfaceMock.On("GetRoleByName", context.Background(), "channel_user").Return(&model.Role{Permissions: []string{"cu-test1", "cu-test2"}}, nil)
|
||||
serverIfaceMock.On("GetRoleByName", context.Background(), "channel_guest").Return(&model.Role{Permissions: []string{"cg-test1", "cg-test2"}}, nil)
|
||||
serverIfaceMock.On("GetSchemes", "team", 0, 100).Return([]*model.Scheme{}, nil)
|
||||
serverIfaceMock.On("HttpService").Return(httpservice.MakeHTTPService(configService))
|
||||
|
||||
|
||||
Ссылка в новой задаче
Block a user