[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
@@ -687,7 +687,7 @@ type AppIface interface {
|
||||
GetRetentionPoliciesCount() (int64, *model.AppError)
|
||||
GetRetentionPolicy(policyID string) (*model.RetentionPolicyWithTeamAndChannelCounts, *model.AppError)
|
||||
GetRole(id string) (*model.Role, *model.AppError)
|
||||
GetRoleByName(name string) (*model.Role, *model.AppError)
|
||||
GetRoleByName(ctx context.Context, name string) (*model.Role, *model.AppError)
|
||||
GetRolesByNames(names []string) ([]*model.Role, *model.AppError)
|
||||
GetSamlCertificateStatus() *model.SamlCertificateStatus
|
||||
GetSamlMetadata() (string, *model.AppError)
|
||||
|
||||
@@ -4,6 +4,7 @@
|
||||
package app
|
||||
|
||||
import (
|
||||
"context"
|
||||
"fmt"
|
||||
"sort"
|
||||
"testing"
|
||||
@@ -185,7 +186,7 @@ func TestDoAdvancedPermissionsMigration(t *testing.T) {
|
||||
|
||||
// Check the migration matches what's expected.
|
||||
for name, permissions := range expected1 {
|
||||
role, err := th.App.GetRoleByName(name)
|
||||
role, err := th.App.GetRoleByName(context.Background(), name)
|
||||
assert.Nil(t, err)
|
||||
assert.Equal(t, role.Permissions, permissions, fmt.Sprintf("role %q didn't match", name))
|
||||
}
|
||||
@@ -218,7 +219,7 @@ func TestDoAdvancedPermissionsMigration(t *testing.T) {
|
||||
assert.Equal(t, len(roles2), len(roleNames))
|
||||
|
||||
for name, permissions := range expected1 {
|
||||
role, err := th.App.GetRoleByName(name)
|
||||
role, err := th.App.GetRoleByName(context.Background(), name)
|
||||
assert.Nil(t, err)
|
||||
assert.Equal(t, permissions, role.Permissions)
|
||||
}
|
||||
@@ -317,7 +318,7 @@ func TestDoAdvancedPermissionsMigration(t *testing.T) {
|
||||
assert.Equal(t, len(roles3), len(roleNames))
|
||||
|
||||
for name, permissions := range expected2 {
|
||||
role, err := th.App.GetRoleByName(name)
|
||||
role, err := th.App.GetRoleByName(context.Background(), name)
|
||||
assert.Nil(t, err)
|
||||
assert.Equal(t, permissions, role.Permissions, fmt.Sprintf("'%v' did not have expected permissions", name))
|
||||
}
|
||||
@@ -335,7 +336,7 @@ func TestDoAdvancedPermissionsMigration(t *testing.T) {
|
||||
assert.Equal(t, len(roles4), len(roleNames))
|
||||
|
||||
for name, permissions := range expected1 {
|
||||
role, err := th.App.GetRoleByName(name)
|
||||
role, err := th.App.GetRoleByName(context.Background(), name)
|
||||
assert.Nil(t, err)
|
||||
assert.Equal(t, permissions, role.Permissions)
|
||||
}
|
||||
@@ -396,7 +397,7 @@ func TestDoEmojisPermissionsMigration(t *testing.T) {
|
||||
expectedSystemAdmin := allPermissionIDs
|
||||
sort.Strings(expectedSystemAdmin)
|
||||
|
||||
role1, err1 := th.App.GetRoleByName(model.SYSTEM_ADMIN_ROLE_ID)
|
||||
role1, err1 := th.App.GetRoleByName(context.Background(), model.SYSTEM_ADMIN_ROLE_ID)
|
||||
assert.Nil(t, err1)
|
||||
sort.Strings(role1.Permissions)
|
||||
assert.Equal(t, expectedSystemAdmin, role1.Permissions, fmt.Sprintf("'%v' did not have expected permissions", model.SYSTEM_ADMIN_ROLE_ID))
|
||||
@@ -408,7 +409,7 @@ func TestDoEmojisPermissionsMigration(t *testing.T) {
|
||||
th.ResetEmojisMigration()
|
||||
th.App.DoEmojisPermissionsMigration()
|
||||
|
||||
role2, err2 := th.App.GetRoleByName(model.TEAM_ADMIN_ROLE_ID)
|
||||
role2, err2 := th.App.GetRoleByName(context.Background(), model.TEAM_ADMIN_ROLE_ID)
|
||||
assert.Nil(t, err2)
|
||||
expected2 := []string{
|
||||
model.PERMISSION_REMOVE_USER_FROM_TEAM.Id,
|
||||
@@ -442,7 +443,7 @@ func TestDoEmojisPermissionsMigration(t *testing.T) {
|
||||
sort.Strings(role2.Permissions)
|
||||
assert.Equal(t, expected2, role2.Permissions, fmt.Sprintf("'%v' did not have expected permissions", model.TEAM_ADMIN_ROLE_ID))
|
||||
|
||||
systemAdmin1, systemAdminErr1 := th.App.GetRoleByName(model.SYSTEM_ADMIN_ROLE_ID)
|
||||
systemAdmin1, systemAdminErr1 := th.App.GetRoleByName(context.Background(), model.SYSTEM_ADMIN_ROLE_ID)
|
||||
assert.Nil(t, systemAdminErr1)
|
||||
sort.Strings(systemAdmin1.Permissions)
|
||||
assert.Equal(t, expectedSystemAdmin, systemAdmin1.Permissions, fmt.Sprintf("'%v' did not have expected permissions", model.SYSTEM_ADMIN_ROLE_ID))
|
||||
@@ -454,7 +455,7 @@ func TestDoEmojisPermissionsMigration(t *testing.T) {
|
||||
th.ResetEmojisMigration()
|
||||
th.App.DoEmojisPermissionsMigration()
|
||||
|
||||
role3, err3 := th.App.GetRoleByName(model.SYSTEM_USER_ROLE_ID)
|
||||
role3, err3 := th.App.GetRoleByName(context.Background(), model.SYSTEM_USER_ROLE_ID)
|
||||
assert.Nil(t, err3)
|
||||
expected3 := []string{
|
||||
model.PERMISSION_LIST_PUBLIC_TEAMS.Id,
|
||||
@@ -470,7 +471,7 @@ func TestDoEmojisPermissionsMigration(t *testing.T) {
|
||||
sort.Strings(role3.Permissions)
|
||||
assert.Equal(t, expected3, role3.Permissions, fmt.Sprintf("'%v' did not have expected permissions", model.SYSTEM_USER_ROLE_ID))
|
||||
|
||||
systemAdmin2, systemAdminErr2 := th.App.GetRoleByName(model.SYSTEM_ADMIN_ROLE_ID)
|
||||
systemAdmin2, systemAdminErr2 := th.App.GetRoleByName(context.Background(), model.SYSTEM_ADMIN_ROLE_ID)
|
||||
assert.Nil(t, systemAdminErr2)
|
||||
sort.Strings(systemAdmin2.Permissions)
|
||||
assert.Equal(t, expectedSystemAdmin, systemAdmin2.Permissions, fmt.Sprintf("'%v' did not have expected permissions", model.SYSTEM_ADMIN_ROLE_ID))
|
||||
|
||||
@@ -15,6 +15,7 @@ import (
|
||||
"github.com/mattermost/mattermost-server/v5/shared/i18n"
|
||||
"github.com/mattermost/mattermost-server/v5/shared/mlog"
|
||||
"github.com/mattermost/mattermost-server/v5/store"
|
||||
"github.com/mattermost/mattermost-server/v5/store/sqlstore"
|
||||
"github.com/mattermost/mattermost-server/v5/utils"
|
||||
)
|
||||
|
||||
@@ -854,14 +855,14 @@ func (a *App) GetChannelModerationsForChannel(channel *model.Channel) ([]*model.
|
||||
return nil, err
|
||||
}
|
||||
|
||||
memberRole, err := a.GetRoleByName(memberRoleName)
|
||||
memberRole, err := a.GetRoleByName(context.Background(), memberRoleName)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
var guestRole *model.Role
|
||||
if guestRoleName != "" {
|
||||
guestRole, err = a.GetRoleByName(guestRoleName)
|
||||
guestRole, err = a.GetRoleByName(context.Background(), guestRoleName)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
@@ -871,14 +872,14 @@ func (a *App) GetChannelModerationsForChannel(channel *model.Channel) ([]*model.
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
higherScopedMemberRole, err := a.GetRoleByName(higherScopedMemberRoleName)
|
||||
higherScopedMemberRole, err := a.GetRoleByName(context.Background(), higherScopedMemberRoleName)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
var higherScopedGuestRole *model.Role
|
||||
if higherScopedGuestRoleName != "" {
|
||||
higherScopedGuestRole, err = a.GetRoleByName(higherScopedGuestRoleName)
|
||||
higherScopedGuestRole, err = a.GetRoleByName(context.Background(), higherScopedGuestRoleName)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
@@ -894,14 +895,15 @@ func (a *App) PatchChannelModerationsForChannel(channel *model.Channel, channelM
|
||||
return nil, err
|
||||
}
|
||||
|
||||
higherScopedMemberRole, err := a.GetRoleByName(higherScopedMemberRoleName)
|
||||
ctx := sqlstore.WithMaster(context.Background())
|
||||
higherScopedMemberRole, err := a.GetRoleByName(ctx, higherScopedMemberRoleName)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
var higherScopedGuestRole *model.Role
|
||||
if higherScopedGuestRoleName != "" {
|
||||
higherScopedGuestRole, err = a.GetRoleByName(higherScopedGuestRoleName)
|
||||
higherScopedGuestRole, err = a.GetRoleByName(ctx, higherScopedGuestRoleName)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
@@ -933,7 +935,7 @@ func (a *App) PatchChannelModerationsForChannel(channel *model.Channel, channelM
|
||||
|
||||
// Send a websocket event about this new role. The other new roles—member and guest—get emitted when they're updated.
|
||||
var adminRole *model.Role
|
||||
adminRole, err = a.GetRoleByName(scheme.DefaultChannelAdminRole)
|
||||
adminRole, err = a.GetRoleByName(ctx, scheme.DefaultChannelAdminRole)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
@@ -951,14 +953,14 @@ func (a *App) PatchChannelModerationsForChannel(channel *model.Channel, channelM
|
||||
|
||||
guestRoleName := scheme.DefaultChannelGuestRole
|
||||
memberRoleName := scheme.DefaultChannelUserRole
|
||||
memberRole, err := a.GetRoleByName(memberRoleName)
|
||||
memberRole, err := a.GetRoleByName(ctx, memberRoleName)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
var guestRole *model.Role
|
||||
if guestRoleName != "" {
|
||||
guestRole, err = a.GetRoleByName(guestRoleName)
|
||||
guestRole, err = a.GetRoleByName(ctx, guestRoleName)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
@@ -1090,7 +1092,7 @@ func (a *App) UpdateChannelMemberRoles(channelID string, userID string, newRoles
|
||||
|
||||
for _, roleName := range strings.Fields(newRoles) {
|
||||
var role *model.Role
|
||||
role, err = a.GetRoleByName(roleName)
|
||||
role, err = a.GetRoleByName(context.Background(), roleName)
|
||||
if err != nil {
|
||||
err.StatusCode = http.StatusBadRequest
|
||||
return nil, err
|
||||
|
||||
@@ -1813,7 +1813,7 @@ func TestPatchChannelModerationsForChannel(t *testing.T) {
|
||||
if higherScopedPermissionsOverriden {
|
||||
higherScopedGuestRoleName, higherScopedMemberRoleName, _, _ := th.App.GetTeamSchemeChannelRoles(channel.TeamId)
|
||||
if tc.HigherScopedMemberPermissions != nil {
|
||||
higherScopedMemberRole, err := th.App.GetRoleByName(higherScopedMemberRoleName)
|
||||
higherScopedMemberRole, err := th.App.GetRoleByName(context.Background(), higherScopedMemberRoleName)
|
||||
require.Nil(t, err)
|
||||
originalPermissions := higherScopedMemberRole.Permissions
|
||||
|
||||
@@ -1822,7 +1822,7 @@ func TestPatchChannelModerationsForChannel(t *testing.T) {
|
||||
}
|
||||
|
||||
if tc.HigherScopedGuestPermissions != nil {
|
||||
higherScopedGuestRole, err := th.App.GetRoleByName(higherScopedGuestRoleName)
|
||||
higherScopedGuestRole, err := th.App.GetRoleByName(context.Background(), higherScopedGuestRoleName)
|
||||
require.Nil(t, err)
|
||||
originalPermissions := higherScopedGuestRole.Permissions
|
||||
|
||||
@@ -1911,8 +1911,8 @@ func TestPatchChannelModerationsForChannel(t *testing.T) {
|
||||
wg.Wait()
|
||||
|
||||
higherScopedGuestRoleName, higherScopedMemberRoleName, _, _ := th.App.GetTeamSchemeChannelRoles(channel.TeamId)
|
||||
higherScopedMemberRole, _ := th.App.GetRoleByName(higherScopedMemberRoleName)
|
||||
higherScopedGuestRole, _ := th.App.GetRoleByName(higherScopedGuestRoleName)
|
||||
higherScopedMemberRole, _ := th.App.GetRoleByName(context.Background(), higherScopedMemberRoleName)
|
||||
higherScopedGuestRole, _ := th.App.GetRoleByName(context.Background(), higherScopedGuestRoleName)
|
||||
assert.Contains(t, higherScopedMemberRole.Permissions, createPosts)
|
||||
assert.Contains(t, higherScopedGuestRole.Permissions, createPosts)
|
||||
})
|
||||
|
||||
@@ -5,6 +5,7 @@ package app
|
||||
|
||||
import (
|
||||
"bytes"
|
||||
"context"
|
||||
"io/ioutil"
|
||||
"os"
|
||||
"path/filepath"
|
||||
@@ -461,7 +462,7 @@ func (th *TestHelper) CreateScheme() (*model.Scheme, []*model.Role) {
|
||||
|
||||
var roles []*model.Role
|
||||
for _, roleName := range roleNames {
|
||||
role, err := th.App.GetRoleByName(roleName)
|
||||
role, err := th.App.GetRoleByName(context.Background(), roleName)
|
||||
if err != nil {
|
||||
panic(err)
|
||||
}
|
||||
@@ -652,7 +653,7 @@ func (th *TestHelper) SetupPluginAPI() *PluginAPI {
|
||||
func (th *TestHelper) RemovePermissionFromRole(permission string, roleName string) {
|
||||
utils.DisableDebugLogForTest()
|
||||
|
||||
role, err1 := th.App.GetRoleByName(roleName)
|
||||
role, err1 := th.App.GetRoleByName(context.Background(), roleName)
|
||||
if err1 != nil {
|
||||
utils.EnableDebugLogForTest()
|
||||
panic(err1)
|
||||
@@ -684,7 +685,7 @@ func (th *TestHelper) RemovePermissionFromRole(permission string, roleName strin
|
||||
func (th *TestHelper) AddPermissionToRole(permission string, roleName string) {
|
||||
utils.DisableDebugLogForTest()
|
||||
|
||||
role, err1 := th.App.GetRoleByName(roleName)
|
||||
role, err1 := th.App.GetRoleByName(context.Background(), roleName)
|
||||
if err1 != nil {
|
||||
utils.EnableDebugLogForTest()
|
||||
panic(err1)
|
||||
|
||||
@@ -121,7 +121,7 @@ func (a *App) importRole(data *RoleImportData, dryRun bool, isSchemeRole bool) *
|
||||
return nil
|
||||
}
|
||||
|
||||
role, err := a.GetRoleByName(*data.Name)
|
||||
role, err := a.GetRoleByName(context.Background(), *data.Name)
|
||||
if err != nil {
|
||||
role = new(model.Role)
|
||||
}
|
||||
|
||||
@@ -99,42 +99,42 @@ func TestImportImportScheme(t *testing.T) {
|
||||
assert.Equal(t, *data.Description, scheme.Description)
|
||||
assert.Equal(t, *data.Scope, scheme.Scope)
|
||||
|
||||
role, nErr := th.App.Srv().Store.Role().GetByName(scheme.DefaultTeamAdminRole)
|
||||
role, nErr := th.App.Srv().Store.Role().GetByName(context.Background(), scheme.DefaultTeamAdminRole)
|
||||
require.NoError(t, nErr, "Should have found the imported role.")
|
||||
|
||||
assert.Equal(t, *data.DefaultTeamAdminRole.DisplayName, role.DisplayName)
|
||||
assert.False(t, role.BuiltIn)
|
||||
assert.True(t, role.SchemeManaged)
|
||||
|
||||
role, nErr = th.App.Srv().Store.Role().GetByName(scheme.DefaultTeamUserRole)
|
||||
role, nErr = th.App.Srv().Store.Role().GetByName(context.Background(), scheme.DefaultTeamUserRole)
|
||||
require.NoError(t, nErr, "Should have found the imported role.")
|
||||
|
||||
assert.Equal(t, *data.DefaultTeamUserRole.DisplayName, role.DisplayName)
|
||||
assert.False(t, role.BuiltIn)
|
||||
assert.True(t, role.SchemeManaged)
|
||||
|
||||
role, nErr = th.App.Srv().Store.Role().GetByName(scheme.DefaultTeamGuestRole)
|
||||
role, nErr = th.App.Srv().Store.Role().GetByName(context.Background(), scheme.DefaultTeamGuestRole)
|
||||
require.NoError(t, nErr, "Should have found the imported role.")
|
||||
|
||||
assert.Equal(t, *data.DefaultTeamGuestRole.DisplayName, role.DisplayName)
|
||||
assert.False(t, role.BuiltIn)
|
||||
assert.True(t, role.SchemeManaged)
|
||||
|
||||
role, nErr = th.App.Srv().Store.Role().GetByName(scheme.DefaultChannelAdminRole)
|
||||
role, nErr = th.App.Srv().Store.Role().GetByName(context.Background(), scheme.DefaultChannelAdminRole)
|
||||
require.NoError(t, nErr, "Should have found the imported role.")
|
||||
|
||||
assert.Equal(t, *data.DefaultChannelAdminRole.DisplayName, role.DisplayName)
|
||||
assert.False(t, role.BuiltIn)
|
||||
assert.True(t, role.SchemeManaged)
|
||||
|
||||
role, nErr = th.App.Srv().Store.Role().GetByName(scheme.DefaultChannelUserRole)
|
||||
role, nErr = th.App.Srv().Store.Role().GetByName(context.Background(), scheme.DefaultChannelUserRole)
|
||||
require.NoError(t, nErr, "Should have found the imported role.")
|
||||
|
||||
assert.Equal(t, *data.DefaultChannelUserRole.DisplayName, role.DisplayName)
|
||||
assert.False(t, role.BuiltIn)
|
||||
assert.True(t, role.SchemeManaged)
|
||||
|
||||
role, nErr = th.App.Srv().Store.Role().GetByName(scheme.DefaultChannelGuestRole)
|
||||
role, nErr = th.App.Srv().Store.Role().GetByName(context.Background(), scheme.DefaultChannelGuestRole)
|
||||
require.NoError(t, nErr, "Should have found the imported role.")
|
||||
|
||||
assert.Equal(t, *data.DefaultChannelGuestRole.DisplayName, role.DisplayName)
|
||||
@@ -156,42 +156,42 @@ func TestImportImportScheme(t *testing.T) {
|
||||
assert.Equal(t, *data.Description, scheme.Description)
|
||||
assert.Equal(t, *data.Scope, scheme.Scope)
|
||||
|
||||
role, nErr = th.App.Srv().Store.Role().GetByName(scheme.DefaultTeamAdminRole)
|
||||
role, nErr = th.App.Srv().Store.Role().GetByName(context.Background(), scheme.DefaultTeamAdminRole)
|
||||
require.NoError(t, nErr, "Should have found the imported role.")
|
||||
|
||||
assert.Equal(t, *data.DefaultTeamAdminRole.DisplayName, role.DisplayName)
|
||||
assert.False(t, role.BuiltIn)
|
||||
assert.True(t, role.SchemeManaged)
|
||||
|
||||
role, nErr = th.App.Srv().Store.Role().GetByName(scheme.DefaultTeamUserRole)
|
||||
role, nErr = th.App.Srv().Store.Role().GetByName(context.Background(), scheme.DefaultTeamUserRole)
|
||||
require.NoError(t, nErr, "Should have found the imported role.")
|
||||
|
||||
assert.Equal(t, *data.DefaultTeamUserRole.DisplayName, role.DisplayName)
|
||||
assert.False(t, role.BuiltIn)
|
||||
assert.True(t, role.SchemeManaged)
|
||||
|
||||
role, nErr = th.App.Srv().Store.Role().GetByName(scheme.DefaultTeamGuestRole)
|
||||
role, nErr = th.App.Srv().Store.Role().GetByName(context.Background(), scheme.DefaultTeamGuestRole)
|
||||
require.NoError(t, nErr, "Should have found the imported role.")
|
||||
|
||||
assert.Equal(t, *data.DefaultTeamGuestRole.DisplayName, role.DisplayName)
|
||||
assert.False(t, role.BuiltIn)
|
||||
assert.True(t, role.SchemeManaged)
|
||||
|
||||
role, nErr = th.App.Srv().Store.Role().GetByName(scheme.DefaultChannelAdminRole)
|
||||
role, nErr = th.App.Srv().Store.Role().GetByName(context.Background(), scheme.DefaultChannelAdminRole)
|
||||
require.NoError(t, nErr, "Should have found the imported role.")
|
||||
|
||||
assert.Equal(t, *data.DefaultChannelAdminRole.DisplayName, role.DisplayName)
|
||||
assert.False(t, role.BuiltIn)
|
||||
assert.True(t, role.SchemeManaged)
|
||||
|
||||
role, nErr = th.App.Srv().Store.Role().GetByName(scheme.DefaultChannelUserRole)
|
||||
role, nErr = th.App.Srv().Store.Role().GetByName(context.Background(), scheme.DefaultChannelUserRole)
|
||||
require.NoError(t, nErr, "Should have found the imported role.")
|
||||
|
||||
assert.Equal(t, *data.DefaultChannelUserRole.DisplayName, role.DisplayName)
|
||||
assert.False(t, role.BuiltIn)
|
||||
assert.True(t, role.SchemeManaged)
|
||||
|
||||
role, nErr = th.App.Srv().Store.Role().GetByName(scheme.DefaultChannelGuestRole)
|
||||
role, nErr = th.App.Srv().Store.Role().GetByName(context.Background(), scheme.DefaultChannelGuestRole)
|
||||
require.NoError(t, nErr, "Should have found the imported role.")
|
||||
|
||||
assert.Equal(t, *data.DefaultChannelGuestRole.DisplayName, role.DisplayName)
|
||||
@@ -286,42 +286,42 @@ func TestImportImportSchemeWithoutGuestRoles(t *testing.T) {
|
||||
assert.Equal(t, *data.Description, scheme.Description)
|
||||
assert.Equal(t, *data.Scope, scheme.Scope)
|
||||
|
||||
role, nErr := th.App.Srv().Store.Role().GetByName(scheme.DefaultTeamAdminRole)
|
||||
role, nErr := th.App.Srv().Store.Role().GetByName(context.Background(), scheme.DefaultTeamAdminRole)
|
||||
require.NoError(t, nErr, "Should have found the imported role.")
|
||||
|
||||
assert.Equal(t, *data.DefaultTeamAdminRole.DisplayName, role.DisplayName)
|
||||
assert.False(t, role.BuiltIn)
|
||||
assert.True(t, role.SchemeManaged)
|
||||
|
||||
role, nErr = th.App.Srv().Store.Role().GetByName(scheme.DefaultTeamUserRole)
|
||||
role, nErr = th.App.Srv().Store.Role().GetByName(context.Background(), scheme.DefaultTeamUserRole)
|
||||
require.NoError(t, nErr, "Should have found the imported role.")
|
||||
|
||||
assert.Equal(t, *data.DefaultTeamUserRole.DisplayName, role.DisplayName)
|
||||
assert.False(t, role.BuiltIn)
|
||||
assert.True(t, role.SchemeManaged)
|
||||
|
||||
role, nErr = th.App.Srv().Store.Role().GetByName(scheme.DefaultTeamGuestRole)
|
||||
role, nErr = th.App.Srv().Store.Role().GetByName(context.Background(), scheme.DefaultTeamGuestRole)
|
||||
require.NoError(t, nErr, "Should have found the imported role.")
|
||||
|
||||
assert.Equal(t, *data.DefaultTeamGuestRole.DisplayName, role.DisplayName)
|
||||
assert.False(t, role.BuiltIn)
|
||||
assert.True(t, role.SchemeManaged)
|
||||
|
||||
role, nErr = th.App.Srv().Store.Role().GetByName(scheme.DefaultChannelAdminRole)
|
||||
role, nErr = th.App.Srv().Store.Role().GetByName(context.Background(), scheme.DefaultChannelAdminRole)
|
||||
require.NoError(t, nErr, "Should have found the imported role.")
|
||||
|
||||
assert.Equal(t, *data.DefaultChannelAdminRole.DisplayName, role.DisplayName)
|
||||
assert.False(t, role.BuiltIn)
|
||||
assert.True(t, role.SchemeManaged)
|
||||
|
||||
role, nErr = th.App.Srv().Store.Role().GetByName(scheme.DefaultChannelUserRole)
|
||||
role, nErr = th.App.Srv().Store.Role().GetByName(context.Background(), scheme.DefaultChannelUserRole)
|
||||
require.NoError(t, nErr, "Should have found the imported role.")
|
||||
|
||||
assert.Equal(t, *data.DefaultChannelUserRole.DisplayName, role.DisplayName)
|
||||
assert.False(t, role.BuiltIn)
|
||||
assert.True(t, role.SchemeManaged)
|
||||
|
||||
role, nErr = th.App.Srv().Store.Role().GetByName(scheme.DefaultChannelGuestRole)
|
||||
role, nErr = th.App.Srv().Store.Role().GetByName(context.Background(), scheme.DefaultChannelGuestRole)
|
||||
require.NoError(t, nErr, "Should have found the imported role.")
|
||||
|
||||
assert.Equal(t, *data.DefaultChannelGuestRole.DisplayName, role.DisplayName)
|
||||
@@ -343,42 +343,42 @@ func TestImportImportSchemeWithoutGuestRoles(t *testing.T) {
|
||||
assert.Equal(t, *data.Description, scheme.Description)
|
||||
assert.Equal(t, *data.Scope, scheme.Scope)
|
||||
|
||||
role, nErr = th.App.Srv().Store.Role().GetByName(scheme.DefaultTeamAdminRole)
|
||||
role, nErr = th.App.Srv().Store.Role().GetByName(context.Background(), scheme.DefaultTeamAdminRole)
|
||||
require.NoError(t, nErr, "Should have found the imported role.")
|
||||
|
||||
assert.Equal(t, *data.DefaultTeamAdminRole.DisplayName, role.DisplayName)
|
||||
assert.False(t, role.BuiltIn)
|
||||
assert.True(t, role.SchemeManaged)
|
||||
|
||||
role, nErr = th.App.Srv().Store.Role().GetByName(scheme.DefaultTeamUserRole)
|
||||
role, nErr = th.App.Srv().Store.Role().GetByName(context.Background(), scheme.DefaultTeamUserRole)
|
||||
require.NoError(t, nErr, "Should have found the imported role.")
|
||||
|
||||
assert.Equal(t, *data.DefaultTeamUserRole.DisplayName, role.DisplayName)
|
||||
assert.False(t, role.BuiltIn)
|
||||
assert.True(t, role.SchemeManaged)
|
||||
|
||||
role, nErr = th.App.Srv().Store.Role().GetByName(scheme.DefaultTeamGuestRole)
|
||||
role, nErr = th.App.Srv().Store.Role().GetByName(context.Background(), scheme.DefaultTeamGuestRole)
|
||||
require.NoError(t, nErr, "Should have found the imported role.")
|
||||
|
||||
assert.Equal(t, *data.DefaultTeamGuestRole.DisplayName, role.DisplayName)
|
||||
assert.False(t, role.BuiltIn)
|
||||
assert.True(t, role.SchemeManaged)
|
||||
|
||||
role, nErr = th.App.Srv().Store.Role().GetByName(scheme.DefaultChannelAdminRole)
|
||||
role, nErr = th.App.Srv().Store.Role().GetByName(context.Background(), scheme.DefaultChannelAdminRole)
|
||||
require.NoError(t, nErr, "Should have found the imported role.")
|
||||
|
||||
assert.Equal(t, *data.DefaultChannelAdminRole.DisplayName, role.DisplayName)
|
||||
assert.False(t, role.BuiltIn)
|
||||
assert.True(t, role.SchemeManaged)
|
||||
|
||||
role, nErr = th.App.Srv().Store.Role().GetByName(scheme.DefaultChannelUserRole)
|
||||
role, nErr = th.App.Srv().Store.Role().GetByName(context.Background(), scheme.DefaultChannelUserRole)
|
||||
require.NoError(t, nErr, "Should have found the imported role.")
|
||||
|
||||
assert.Equal(t, *data.DefaultChannelUserRole.DisplayName, role.DisplayName)
|
||||
assert.False(t, role.BuiltIn)
|
||||
assert.True(t, role.SchemeManaged)
|
||||
|
||||
role, nErr = th.App.Srv().Store.Role().GetByName(scheme.DefaultChannelGuestRole)
|
||||
role, nErr = th.App.Srv().Store.Role().GetByName(context.Background(), scheme.DefaultChannelGuestRole)
|
||||
require.NoError(t, nErr, "Should have found the imported role.")
|
||||
|
||||
assert.Equal(t, *data.DefaultChannelGuestRole.DisplayName, role.DisplayName)
|
||||
@@ -413,7 +413,7 @@ func TestImportImportRole(t *testing.T) {
|
||||
err := th.App.importRole(&data, true, false)
|
||||
require.NotNil(t, err, "Should have failed to import.")
|
||||
|
||||
_, nErr := th.App.Srv().Store.Role().GetByName(rid1)
|
||||
_, nErr := th.App.Srv().Store.Role().GetByName(context.Background(), rid1)
|
||||
require.Error(t, nErr, "Should have failed to import.")
|
||||
|
||||
// Try importing the valid role in dryRun mode.
|
||||
@@ -422,7 +422,7 @@ func TestImportImportRole(t *testing.T) {
|
||||
err = th.App.importRole(&data, true, false)
|
||||
require.Nil(t, err, "Should have succeeded.")
|
||||
|
||||
_, nErr = th.App.Srv().Store.Role().GetByName(rid1)
|
||||
_, nErr = th.App.Srv().Store.Role().GetByName(context.Background(), rid1)
|
||||
require.Error(t, nErr, "Role should not have imported as we are in dry run mode.")
|
||||
|
||||
// Try importing an invalid role.
|
||||
@@ -431,7 +431,7 @@ func TestImportImportRole(t *testing.T) {
|
||||
err = th.App.importRole(&data, false, false)
|
||||
require.NotNil(t, err, "Should have failed to import.")
|
||||
|
||||
_, nErr = th.App.Srv().Store.Role().GetByName(rid1)
|
||||
_, nErr = th.App.Srv().Store.Role().GetByName(context.Background(), rid1)
|
||||
require.Error(t, nErr, "Role should not have imported.")
|
||||
|
||||
// Try importing a valid role with all params set.
|
||||
@@ -442,7 +442,7 @@ func TestImportImportRole(t *testing.T) {
|
||||
err = th.App.importRole(&data, false, false)
|
||||
require.Nil(t, err, "Should have succeeded.")
|
||||
|
||||
role, nErr := th.App.Srv().Store.Role().GetByName(rid1)
|
||||
role, nErr := th.App.Srv().Store.Role().GetByName(context.Background(), rid1)
|
||||
require.NoError(t, nErr, "Should have found the imported role.")
|
||||
|
||||
assert.Equal(t, *data.Name, role.Name)
|
||||
@@ -460,7 +460,7 @@ func TestImportImportRole(t *testing.T) {
|
||||
err = th.App.importRole(&data, false, true)
|
||||
require.Nil(t, err, "Should have succeeded. %v", err)
|
||||
|
||||
role, nErr = th.App.Srv().Store.Role().GetByName(rid1)
|
||||
role, nErr = th.App.Srv().Store.Role().GetByName(context.Background(), rid1)
|
||||
require.NoError(t, nErr, "Should have found the imported role.")
|
||||
|
||||
assert.Equal(t, *data.Name, role.Name)
|
||||
@@ -479,7 +479,7 @@ func TestImportImportRole(t *testing.T) {
|
||||
err = th.App.importRole(&data2, false, false)
|
||||
require.Nil(t, err, "Should have succeeded.")
|
||||
|
||||
role, nErr = th.App.Srv().Store.Role().GetByName(rid1)
|
||||
role, nErr = th.App.Srv().Store.Role().GetByName(context.Background(), rid1)
|
||||
require.NoError(t, nErr, "Should have found the imported role.")
|
||||
|
||||
assert.Equal(t, *data2.Name, role.Name)
|
||||
|
||||
@@ -4,12 +4,14 @@
|
||||
package app
|
||||
|
||||
import (
|
||||
"context"
|
||||
"testing"
|
||||
|
||||
"github.com/stretchr/testify/assert"
|
||||
"github.com/stretchr/testify/require"
|
||||
|
||||
"github.com/mattermost/mattermost-server/v5/model"
|
||||
"github.com/mattermost/mattermost-server/v5/store/sqlstore"
|
||||
)
|
||||
|
||||
func TestGetJob(t *testing.T) {
|
||||
@@ -94,7 +96,8 @@ func TestSessionHasPermissionToCreateJob(t *testing.T) {
|
||||
assert.Equal(t, testCase.PermissionRequired.Id, permissionRequired.Id)
|
||||
}
|
||||
|
||||
role, _ := th.App.GetRoleByName(model.SYSTEM_READ_ONLY_ADMIN_ROLE_ID)
|
||||
ctx := sqlstore.WithMaster(context.Background())
|
||||
role, _ := th.App.GetRoleByName(ctx, model.SYSTEM_READ_ONLY_ADMIN_ROLE_ID)
|
||||
|
||||
role.Permissions = append(role.Permissions, model.PERMISSION_CREATE_POST_BLEVE_INDEXES_JOB.Id)
|
||||
|
||||
@@ -179,7 +182,8 @@ func TestSessionHasPermissionToReadJob(t *testing.T) {
|
||||
assert.Equal(t, testCase.PermissionRequired.Id, permissionRequired.Id)
|
||||
}
|
||||
|
||||
role, _ := th.App.GetRoleByName(model.SYSTEM_MANAGER_ROLE_ID)
|
||||
ctx := sqlstore.WithMaster(context.Background())
|
||||
role, _ := th.App.GetRoleByName(ctx, model.SYSTEM_MANAGER_ROLE_ID)
|
||||
|
||||
role.Permissions = append(role.Permissions, model.PERMISSION_READ_DATA_RETENTION_JOB.Id)
|
||||
|
||||
|
||||
@@ -4,6 +4,7 @@
|
||||
package app
|
||||
|
||||
import (
|
||||
"context"
|
||||
"fmt"
|
||||
"reflect"
|
||||
|
||||
@@ -37,7 +38,7 @@ func (a *App) DoAdvancedPermissionsMigration() {
|
||||
}
|
||||
|
||||
// If this failed for reasons other than the role already existing, don't mark the migration as done.
|
||||
fetchedRole, err := a.Srv().Store.Role().GetByName(role.Name)
|
||||
fetchedRole, err := a.Srv().Store.Role().GetByName(context.Background(), role.Name)
|
||||
if err != nil {
|
||||
mlog.Critical("Failed to migrate role to database.", mlog.Err(err))
|
||||
allSucceeded = false
|
||||
@@ -103,13 +104,13 @@ func (a *App) DoEmojisPermissionsMigration() {
|
||||
mlog.Info("Migrating emojis config to database.")
|
||||
switch *a.Config().ServiceSettings.DEPRECATED_DO_NOT_USE_RestrictCustomEmojiCreation {
|
||||
case model.RESTRICT_EMOJI_CREATION_ALL:
|
||||
role, err = a.GetRoleByName(model.SYSTEM_USER_ROLE_ID)
|
||||
role, err = a.GetRoleByName(context.Background(), model.SYSTEM_USER_ROLE_ID)
|
||||
if err != nil {
|
||||
mlog.Critical("Failed to migrate emojis creation permissions from mattermost config.", mlog.Err(err))
|
||||
return
|
||||
}
|
||||
case model.RESTRICT_EMOJI_CREATION_ADMIN:
|
||||
role, err = a.GetRoleByName(model.TEAM_ADMIN_ROLE_ID)
|
||||
role, err = a.GetRoleByName(context.Background(), model.TEAM_ADMIN_ROLE_ID)
|
||||
if err != nil {
|
||||
mlog.Critical("Failed to migrate emojis creation permissions from mattermost config.", mlog.Err(err))
|
||||
return
|
||||
@@ -129,7 +130,7 @@ func (a *App) DoEmojisPermissionsMigration() {
|
||||
}
|
||||
}
|
||||
|
||||
systemAdminRole, err = a.GetRoleByName(model.SYSTEM_ADMIN_ROLE_ID)
|
||||
systemAdminRole, err = a.GetRoleByName(context.Background(), model.SYSTEM_ADMIN_ROLE_ID)
|
||||
if err != nil {
|
||||
mlog.Critical("Failed to migrate emojis creation permissions from mattermost config.", mlog.Err(err))
|
||||
return
|
||||
@@ -164,19 +165,19 @@ func (a *App) DoGuestRolesCreationMigration() {
|
||||
roles := model.MakeDefaultRoles()
|
||||
|
||||
allSucceeded := true
|
||||
if _, err := a.Srv().Store.Role().GetByName(model.CHANNEL_GUEST_ROLE_ID); err != nil {
|
||||
if _, err := a.Srv().Store.Role().GetByName(context.Background(), model.CHANNEL_GUEST_ROLE_ID); err != nil {
|
||||
if _, err := a.Srv().Store.Role().Save(roles[model.CHANNEL_GUEST_ROLE_ID]); err != nil {
|
||||
mlog.Critical("Failed to create new guest role to database.", mlog.Err(err))
|
||||
allSucceeded = false
|
||||
}
|
||||
}
|
||||
if _, err := a.Srv().Store.Role().GetByName(model.TEAM_GUEST_ROLE_ID); err != nil {
|
||||
if _, err := a.Srv().Store.Role().GetByName(context.Background(), model.TEAM_GUEST_ROLE_ID); err != nil {
|
||||
if _, err := a.Srv().Store.Role().Save(roles[model.TEAM_GUEST_ROLE_ID]); err != nil {
|
||||
mlog.Critical("Failed to create new guest role to database.", mlog.Err(err))
|
||||
allSucceeded = false
|
||||
}
|
||||
}
|
||||
if _, err := a.Srv().Store.Role().GetByName(model.SYSTEM_GUEST_ROLE_ID); err != nil {
|
||||
if _, err := a.Srv().Store.Role().GetByName(context.Background(), model.SYSTEM_GUEST_ROLE_ID); err != nil {
|
||||
if _, err := a.Srv().Store.Role().Save(roles[model.SYSTEM_GUEST_ROLE_ID]); err != nil {
|
||||
mlog.Critical("Failed to create new guest role to database.", mlog.Err(err))
|
||||
allSucceeded = false
|
||||
@@ -251,19 +252,19 @@ func (a *App) DoSystemConsoleRolesCreationMigration() {
|
||||
roles := model.MakeDefaultRoles()
|
||||
|
||||
allSucceeded := true
|
||||
if _, err := a.Srv().Store.Role().GetByName(model.SYSTEM_MANAGER_ROLE_ID); err != nil {
|
||||
if _, err := a.Srv().Store.Role().GetByName(context.Background(), model.SYSTEM_MANAGER_ROLE_ID); err != nil {
|
||||
if _, err := a.Srv().Store.Role().Save(roles[model.SYSTEM_MANAGER_ROLE_ID]); err != nil {
|
||||
mlog.Critical("Failed to create new role.", mlog.Err(err), mlog.String("role", model.SYSTEM_MANAGER_ROLE_ID))
|
||||
allSucceeded = false
|
||||
}
|
||||
}
|
||||
if _, err := a.Srv().Store.Role().GetByName(model.SYSTEM_READ_ONLY_ADMIN_ROLE_ID); err != nil {
|
||||
if _, err := a.Srv().Store.Role().GetByName(context.Background(), model.SYSTEM_READ_ONLY_ADMIN_ROLE_ID); err != nil {
|
||||
if _, err := a.Srv().Store.Role().Save(roles[model.SYSTEM_READ_ONLY_ADMIN_ROLE_ID]); err != nil {
|
||||
mlog.Critical("Failed to create new role.", mlog.Err(err), mlog.String("role", model.SYSTEM_READ_ONLY_ADMIN_ROLE_ID))
|
||||
allSucceeded = false
|
||||
}
|
||||
}
|
||||
if _, err := a.Srv().Store.Role().GetByName(model.SYSTEM_USER_MANAGER_ROLE_ID); err != nil {
|
||||
if _, err := a.Srv().Store.Role().GetByName(context.Background(), model.SYSTEM_USER_MANAGER_ROLE_ID); err != nil {
|
||||
if _, err := a.Srv().Store.Role().Save(roles[model.SYSTEM_USER_MANAGER_ROLE_ID]); err != nil {
|
||||
mlog.Critical("Failed to create new role.", mlog.Err(err), mlog.String("role", model.SYSTEM_USER_MANAGER_ROLE_ID))
|
||||
allSucceeded = false
|
||||
|
||||
@@ -8049,7 +8049,7 @@ func (a *OpenTracingAppLayer) GetRole(id string) (*model.Role, *model.AppError)
|
||||
return resultVar0, resultVar1
|
||||
}
|
||||
|
||||
func (a *OpenTracingAppLayer) GetRoleByName(name string) (*model.Role, *model.AppError) {
|
||||
func (a *OpenTracingAppLayer) GetRoleByName(ctx context.Context, name string) (*model.Role, *model.AppError) {
|
||||
origCtx := a.ctx
|
||||
span, newCtx := tracing.StartSpanWithParentByContext(a.ctx, "app.GetRoleByName")
|
||||
|
||||
@@ -8061,7 +8061,7 @@ func (a *OpenTracingAppLayer) GetRoleByName(name string) (*model.Role, *model.Ap
|
||||
}()
|
||||
|
||||
defer span.Finish()
|
||||
resultVar0, resultVar1 := a.app.GetRoleByName(name)
|
||||
resultVar0, resultVar1 := a.app.GetRoleByName(ctx, name)
|
||||
|
||||
if resultVar1 != nil {
|
||||
span.LogFields(spanlog.Error(resultVar1))
|
||||
|
||||
@@ -5,6 +5,7 @@ package app
|
||||
|
||||
import (
|
||||
"bufio"
|
||||
"context"
|
||||
"encoding/json"
|
||||
"fmt"
|
||||
"io"
|
||||
@@ -98,7 +99,7 @@ func (a *App) ExportPermissions(w io.Writer) error {
|
||||
if roleName == "" {
|
||||
continue
|
||||
}
|
||||
role, err := a.GetRoleByName(roleName)
|
||||
role, err := a.GetRoleByName(context.Background(), roleName)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
@@ -171,7 +172,7 @@ func (a *App) ImportPermissions(jsonl io.Reader) error {
|
||||
|
||||
if schemeConveyor.Name == systemSchemeName {
|
||||
for _, roleIn := range schemeConveyor.Roles {
|
||||
dbRole, err := a.GetRoleByName(roleIn.Name)
|
||||
dbRole, err := a.GetRoleByName(context.Background(), roleIn.Name)
|
||||
if err != nil {
|
||||
rollback(a, createdSchemeIDs)
|
||||
return errors.New(err.Message)
|
||||
@@ -236,7 +237,7 @@ func rollback(a *App, createdSchemeIDs []string) {
|
||||
func updateRole(a *App, sc *model.SchemeConveyor, roleCreatedName, defaultRoleName string) error {
|
||||
var err *model.AppError
|
||||
|
||||
roleCreated, err := a.GetRoleByName(roleCreatedName)
|
||||
roleCreated, err := a.GetRoleByName(context.Background(), roleCreatedName)
|
||||
if err != nil {
|
||||
return errors.New(err.Message)
|
||||
}
|
||||
|
||||
@@ -4,6 +4,7 @@
|
||||
package app
|
||||
|
||||
import (
|
||||
"context"
|
||||
"encoding/json"
|
||||
"fmt"
|
||||
"strings"
|
||||
@@ -135,17 +136,17 @@ func TestImportPermissions(t *testing.T) {
|
||||
|
||||
newScheme := results[0]
|
||||
|
||||
channelAdminRole, appErr := th.App.GetRoleByName(newScheme.DefaultChannelAdminRole)
|
||||
channelAdminRole, appErr := th.App.GetRoleByName(context.Background(), newScheme.DefaultChannelAdminRole)
|
||||
if appErr != nil {
|
||||
t.Error(appErr)
|
||||
}
|
||||
|
||||
channelUserRole, appErr := th.App.GetRoleByName(newScheme.DefaultChannelUserRole)
|
||||
channelUserRole, appErr := th.App.GetRoleByName(context.Background(), newScheme.DefaultChannelUserRole)
|
||||
if appErr != nil {
|
||||
t.Error(appErr)
|
||||
}
|
||||
|
||||
channelGuestRole, appErr := th.App.GetRoleByName(newScheme.DefaultChannelGuestRole)
|
||||
channelGuestRole, appErr := th.App.GetRoleByName(context.Background(), newScheme.DefaultChannelGuestRole)
|
||||
if appErr != nil {
|
||||
t.Error(appErr)
|
||||
}
|
||||
@@ -260,7 +261,7 @@ func TestMigration(t *testing.T) {
|
||||
th := Setup(t)
|
||||
defer th.TearDown()
|
||||
|
||||
role, err := th.App.GetRoleByName(model.SYSTEM_ADMIN_ROLE_ID)
|
||||
role, err := th.App.GetRoleByName(context.Background(), model.SYSTEM_ADMIN_ROLE_ID)
|
||||
require.Nil(t, err)
|
||||
assert.Contains(t, role.Permissions, model.PERMISSION_CREATE_EMOJIS.Id)
|
||||
assert.Contains(t, role.Permissions, model.PERMISSION_DELETE_EMOJIS.Id)
|
||||
@@ -269,7 +270,7 @@ func TestMigration(t *testing.T) {
|
||||
|
||||
th.App.ResetPermissionsSystem()
|
||||
|
||||
role, err = th.App.GetRoleByName(model.SYSTEM_ADMIN_ROLE_ID)
|
||||
role, err = th.App.GetRoleByName(context.Background(), model.SYSTEM_ADMIN_ROLE_ID)
|
||||
require.Nil(t, err)
|
||||
assert.Contains(t, role.Permissions, model.PERMISSION_CREATE_EMOJIS.Id)
|
||||
assert.Contains(t, role.Permissions, model.PERMISSION_DELETE_EMOJIS.Id)
|
||||
|
||||
@@ -4,6 +4,7 @@
|
||||
package app
|
||||
|
||||
import (
|
||||
"context"
|
||||
"errors"
|
||||
"net/http"
|
||||
"reflect"
|
||||
@@ -38,8 +39,8 @@ func (a *App) GetAllRoles() ([]*model.Role, *model.AppError) {
|
||||
return roles, nil
|
||||
}
|
||||
|
||||
func (s *Server) GetRoleByName(name string) (*model.Role, *model.AppError) {
|
||||
role, nErr := s.Store.Role().GetByName(name)
|
||||
func (s *Server) GetRoleByName(ctx context.Context, name string) (*model.Role, *model.AppError) {
|
||||
role, nErr := s.Store.Role().GetByName(ctx, name)
|
||||
if nErr != nil {
|
||||
var nfErr *store.ErrNotFound
|
||||
switch {
|
||||
@@ -58,8 +59,8 @@ func (s *Server) GetRoleByName(name string) (*model.Role, *model.AppError) {
|
||||
return role, nil
|
||||
}
|
||||
|
||||
func (a *App) GetRoleByName(name string) (*model.Role, *model.AppError) {
|
||||
return a.Srv().GetRoleByName(name)
|
||||
func (a *App) GetRoleByName(ctx context.Context, name string) (*model.Role, *model.AppError) {
|
||||
return a.Srv().GetRoleByName(ctx, name)
|
||||
}
|
||||
|
||||
func (a *App) GetRolesByNames(names []string) ([]*model.Role, *model.AppError) {
|
||||
|
||||
@@ -4,6 +4,7 @@
|
||||
package app
|
||||
|
||||
import (
|
||||
"context"
|
||||
"encoding/csv"
|
||||
"io/ioutil"
|
||||
"os"
|
||||
@@ -42,7 +43,7 @@ func TestGetRolesByNames(t *testing.T) {
|
||||
|
||||
func TestGetRoleByName(t *testing.T) {
|
||||
testPermissionInheritance(t, func(t *testing.T, th *TestHelper, testData permissionInheritanceTestData) {
|
||||
actualRole, err := th.App.GetRoleByName(testData.channelRole.Name)
|
||||
actualRole, err := th.App.GetRoleByName(context.Background(), testData.channelRole.Name)
|
||||
require.Nil(t, err)
|
||||
require.NotNil(t, actualRole)
|
||||
require.Equal(t, testData.channelRole.Name, actualRole.Name)
|
||||
@@ -149,7 +150,7 @@ func testPermissionInheritance(t *testing.T, testCallback func(t *testing.T, th
|
||||
}
|
||||
|
||||
// add or remove the permission from the higher-scoped scheme
|
||||
higherScopedRole, testErr := th.App.GetRoleByName(roleNameUnderTest)
|
||||
higherScopedRole, testErr := th.App.GetRoleByName(context.Background(), roleNameUnderTest)
|
||||
require.Nil(t, testErr)
|
||||
|
||||
var higherScopedPermissions []string
|
||||
@@ -171,7 +172,7 @@ func testPermissionInheritance(t *testing.T, testCallback func(t *testing.T, th
|
||||
case higherScopedAdmin:
|
||||
channelRoleName = channelScheme.DefaultChannelAdminRole
|
||||
}
|
||||
channelRole, testErr := th.App.GetRoleByName(channelRoleName)
|
||||
channelRole, testErr := th.App.GetRoleByName(context.Background(), channelRoleName)
|
||||
require.Nil(t, testErr)
|
||||
|
||||
// add or remove the permission from the channel scheme
|
||||
|
||||
@@ -5,6 +5,7 @@ package slashcommands
|
||||
|
||||
import (
|
||||
"bytes"
|
||||
"context"
|
||||
"io/ioutil"
|
||||
"os"
|
||||
"path/filepath"
|
||||
@@ -398,7 +399,7 @@ func (th *TestHelper) tearDown() {
|
||||
func (th *TestHelper) removePermissionFromRole(permission string, roleName string) {
|
||||
utils.DisableDebugLogForTest()
|
||||
|
||||
role, err1 := th.App.GetRoleByName(roleName)
|
||||
role, err1 := th.App.GetRoleByName(context.Background(), roleName)
|
||||
if err1 != nil {
|
||||
utils.EnableDebugLogForTest()
|
||||
panic(err1)
|
||||
@@ -430,7 +431,7 @@ func (th *TestHelper) removePermissionFromRole(permission string, roleName strin
|
||||
func (th *TestHelper) addPermissionToRole(permission string, roleName string) {
|
||||
utils.DisableDebugLogForTest()
|
||||
|
||||
role, err1 := th.App.GetRoleByName(roleName)
|
||||
role, err1 := th.App.GetRoleByName(context.Background(), roleName)
|
||||
if err1 != nil {
|
||||
utils.EnableDebugLogForTest()
|
||||
panic(err1)
|
||||
|
||||
@@ -385,7 +385,7 @@ func (a *App) UpdateTeamMemberRoles(teamID string, userID string, newRoles strin
|
||||
|
||||
for _, roleName := range strings.Fields(newRoles) {
|
||||
var role *model.Role
|
||||
role, err = a.GetRoleByName(roleName)
|
||||
role, err = a.GetRoleByName(context.Background(), roleName)
|
||||
if err != nil {
|
||||
err.StatusCode = http.StatusBadRequest
|
||||
return nil, err
|
||||
|
||||
@@ -1023,9 +1023,9 @@ func TestGetViewUsersRestrictions(t *testing.T) {
|
||||
})
|
||||
|
||||
t.Run("VIEW_MEMBERS permission granted at team level", func(t *testing.T) {
|
||||
systemUserRole, err := th.App.GetRoleByName(model.SYSTEM_USER_ROLE_ID)
|
||||
systemUserRole, err := th.App.GetRoleByName(context.Background(), model.SYSTEM_USER_ROLE_ID)
|
||||
require.Nil(t, err)
|
||||
teamUserRole, err := th.App.GetRoleByName(model.TEAM_USER_ROLE_ID)
|
||||
teamUserRole, err := th.App.GetRoleByName(context.Background(), model.TEAM_USER_ROLE_ID)
|
||||
require.Nil(t, err)
|
||||
|
||||
require.Nil(t, removePermission(systemUserRole, model.PERMISSION_VIEW_MEMBERS.Id))
|
||||
@@ -1044,7 +1044,7 @@ func TestGetViewUsersRestrictions(t *testing.T) {
|
||||
})
|
||||
|
||||
t.Run("VIEW_MEMBERS permission not granted at any level", func(t *testing.T) {
|
||||
systemUserRole, err := th.App.GetRoleByName(model.SYSTEM_USER_ROLE_ID)
|
||||
systemUserRole, err := th.App.GetRoleByName(context.Background(), model.SYSTEM_USER_ROLE_ID)
|
||||
require.Nil(t, err)
|
||||
require.Nil(t, removePermission(systemUserRole, model.PERMISSION_VIEW_MEMBERS.Id))
|
||||
defer addPermission(systemUserRole, model.PERMISSION_VIEW_MEMBERS.Id)
|
||||
@@ -1059,9 +1059,9 @@ func TestGetViewUsersRestrictions(t *testing.T) {
|
||||
})
|
||||
|
||||
t.Run("VIEW_MEMBERS permission for some teams but not for others", func(t *testing.T) {
|
||||
systemUserRole, err := th.App.GetRoleByName(model.SYSTEM_USER_ROLE_ID)
|
||||
systemUserRole, err := th.App.GetRoleByName(context.Background(), model.SYSTEM_USER_ROLE_ID)
|
||||
require.Nil(t, err)
|
||||
teamAdminRole, err := th.App.GetRoleByName(model.TEAM_ADMIN_ROLE_ID)
|
||||
teamAdminRole, err := th.App.GetRoleByName(context.Background(), model.TEAM_ADMIN_ROLE_ID)
|
||||
require.Nil(t, err)
|
||||
|
||||
require.Nil(t, removePermission(systemUserRole, model.PERMISSION_VIEW_MEMBERS.Id))
|
||||
|
||||
Ссылка в новой задаче
Block a user