коммит произвёл
GitHub
родитель
24b6762dfb
Коммит
d00e9d48d3
@@ -137,6 +137,8 @@ func getTeamsForScheme(c *Context, w http.ResponseWriter, r *http.Request) {
|
||||
return
|
||||
}
|
||||
|
||||
c.App.SanitizeTeams(*c.AppContext.Session(), teams)
|
||||
|
||||
js, err := json.Marshal(teams)
|
||||
if err != nil {
|
||||
c.Err = model.NewAppError("getTeamsForScheme", "api.marshal_error", nil, "", http.StatusInternalServerError).Wrap(err)
|
||||
|
||||
@@ -428,6 +428,65 @@ func TestGetTeamsForScheme(t *testing.T) {
|
||||
CheckNotImplementedStatus(t, ri6)
|
||||
}
|
||||
|
||||
func TestGetTeamsForScheme_SanitizesPrivilegedFieldsForUserManager(t *testing.T) {
|
||||
mainHelper.Parallel(t)
|
||||
th := Setup(t)
|
||||
|
||||
th.App.Srv().SetLicense(model.NewTestLicense("custom_permissions_schemes"))
|
||||
|
||||
err := th.App.SetPhase2PermissionsMigrationStatus(true)
|
||||
require.NoError(t, err)
|
||||
|
||||
scheme := &model.Scheme{
|
||||
DisplayName: model.NewId(),
|
||||
Name: model.NewId(),
|
||||
Description: model.NewId(),
|
||||
Scope: model.SchemeScopeTeam,
|
||||
}
|
||||
scheme, _, err = th.SystemAdminClient.CreateScheme(context.Background(), scheme)
|
||||
require.NoError(t, err)
|
||||
|
||||
knownInviteID := model.NewId()
|
||||
knownEmail := th.GenerateTestEmail()
|
||||
|
||||
privateTeam := &model.Team{
|
||||
Name: GenerateTestTeamName(),
|
||||
DisplayName: "Private Scheme Team",
|
||||
Type: model.TeamInvite,
|
||||
InviteId: knownInviteID,
|
||||
Email: knownEmail,
|
||||
}
|
||||
privateTeam, err = th.App.Srv().Store().Team().Save(privateTeam)
|
||||
require.NoError(t, err)
|
||||
require.Equal(t, knownInviteID, privateTeam.InviteId)
|
||||
require.Equal(t, knownEmail, privateTeam.Email)
|
||||
|
||||
privateTeam.SchemeId = &scheme.Id
|
||||
privateTeam, err = th.App.Srv().Store().Team().Update(privateTeam)
|
||||
require.NoError(t, err)
|
||||
require.Equal(t, knownInviteID, privateTeam.InviteId)
|
||||
require.Equal(t, knownEmail, privateTeam.Email)
|
||||
|
||||
th.LoginSystemManager()
|
||||
|
||||
t.Run("system manager response is sanitized", func(t *testing.T) {
|
||||
teams, _, err := th.SystemManagerClient.GetTeamsForScheme(context.Background(), scheme.Id, 0, 100)
|
||||
require.NoError(t, err)
|
||||
require.Len(t, teams, 1)
|
||||
assert.Equal(t, privateTeam.Id, teams[0].Id)
|
||||
assert.Empty(t, teams[0].InviteId)
|
||||
})
|
||||
|
||||
t.Run("system admin response is not sanitized", func(t *testing.T) {
|
||||
teams, _, err := th.SystemAdminClient.GetTeamsForScheme(context.Background(), scheme.Id, 0, 100)
|
||||
require.NoError(t, err)
|
||||
require.Len(t, teams, 1)
|
||||
assert.Equal(t, privateTeam.Id, teams[0].Id)
|
||||
assert.Equal(t, knownInviteID, teams[0].InviteId)
|
||||
assert.Equal(t, knownEmail, teams[0].Email)
|
||||
})
|
||||
}
|
||||
|
||||
func TestGetChannelsForScheme(t *testing.T) {
|
||||
mainHelper.Parallel(t)
|
||||
th := Setup(t).InitBasic()
|
||||
|
||||
Ссылка в новой задаче
Block a user