коммит произвёл
GitHub
родитель
43e797010b
Коммит
3b1b8d9114
@@ -1436,184 +1436,6 @@ func TestUpdateTeamMemberRolesChangingGuest(t *testing.T) {
|
||||
})
|
||||
}
|
||||
|
||||
func TestUpdateTeamMemberRolesRequireUser(t *testing.T) {
|
||||
mainHelper.Parallel(t)
|
||||
th := Setup(t).InitBasic()
|
||||
|
||||
t.Run("empty roles string requires user or guest scheme role", func(t *testing.T) {
|
||||
user := model.User{Email: strings.ToLower(model.NewId()) + "success+test@example.com", Nickname: "Tester", Username: "tester" + model.NewId(), Password: "passwd1", AuthService: ""}
|
||||
ruser, _ := th.App.CreateUser(th.Context, &user)
|
||||
|
||||
_, _, err := th.App.AddUserToTeam(th.Context, th.BasicTeam.Id, ruser.Id, "")
|
||||
require.Nil(t, err)
|
||||
|
||||
member, err := th.App.GetTeamMember(th.Context, th.BasicTeam.Id, ruser.Id)
|
||||
require.Nil(t, err)
|
||||
require.True(t, member.SchemeUser)
|
||||
require.False(t, member.SchemeGuest)
|
||||
|
||||
_, err = th.App.UpdateTeamMemberRoles(th.Context, th.BasicTeam.Id, ruser.Id, "")
|
||||
require.NotNil(t, err)
|
||||
require.Equal(t, "api.team.update_team_member_roles.unset_user_scheme.app_error", err.Id)
|
||||
})
|
||||
|
||||
t.Run("admin role requires user or guest scheme role", func(t *testing.T) {
|
||||
user := model.User{Email: strings.ToLower(model.NewId()) + "success+test@example.com", Nickname: "Tester", Username: "tester" + model.NewId(), Password: "passwd1", AuthService: ""}
|
||||
ruser, _ := th.App.CreateUser(th.Context, &user)
|
||||
|
||||
_, _, err := th.App.AddUserToTeam(th.Context, th.BasicTeam.Id, ruser.Id, "")
|
||||
require.Nil(t, err)
|
||||
|
||||
_, err = th.App.UpdateTeamMemberRoles(th.Context, th.BasicTeam.Id, ruser.Id, "team_admin")
|
||||
require.NotNil(t, err)
|
||||
require.Equal(t, "api.team.update_team_member_roles.unset_user_scheme.app_error", err.Id)
|
||||
})
|
||||
|
||||
t.Run("valid user and admin roles update succeeds", func(t *testing.T) {
|
||||
user := model.User{Email: strings.ToLower(model.NewId()) + "success+test@example.com", Nickname: "Tester", Username: "tester" + model.NewId(), Password: "passwd1", AuthService: ""}
|
||||
ruser, _ := th.App.CreateUser(th.Context, &user)
|
||||
|
||||
_, _, err := th.App.AddUserToTeam(th.Context, th.BasicTeam.Id, ruser.Id, "")
|
||||
require.Nil(t, err)
|
||||
|
||||
updatedMember, err := th.App.UpdateTeamMemberRoles(th.Context, th.BasicTeam.Id, ruser.Id, "team_user team_admin")
|
||||
require.Nil(t, err)
|
||||
require.True(t, updatedMember.SchemeUser)
|
||||
require.True(t, updatedMember.SchemeAdmin)
|
||||
require.False(t, updatedMember.SchemeGuest)
|
||||
})
|
||||
|
||||
t.Run("removing admin role while keeping user role succeeds", func(t *testing.T) {
|
||||
user := model.User{Email: strings.ToLower(model.NewId()) + "success+test@example.com", Nickname: "Tester", Username: "tester" + model.NewId(), Password: "passwd1", AuthService: ""}
|
||||
ruser, _ := th.App.CreateUser(th.Context, &user)
|
||||
|
||||
_, _, err := th.App.AddUserToTeam(th.Context, th.BasicTeam.Id, ruser.Id, "")
|
||||
require.Nil(t, err)
|
||||
|
||||
_, err = th.App.UpdateTeamMemberRoles(th.Context, th.BasicTeam.Id, ruser.Id, "team_user team_admin")
|
||||
require.Nil(t, err)
|
||||
|
||||
updatedMember, err := th.App.UpdateTeamMemberRoles(th.Context, th.BasicTeam.Id, ruser.Id, "team_user")
|
||||
require.Nil(t, err)
|
||||
require.True(t, updatedMember.SchemeUser)
|
||||
require.False(t, updatedMember.SchemeAdmin)
|
||||
})
|
||||
|
||||
t.Run("team_post_all alone should fail", func(t *testing.T) {
|
||||
user := model.User{Email: strings.ToLower(model.NewId()) + "success+test@example.com", Nickname: "Tester", Username: "tester" + model.NewId(), Password: "passwd1", AuthService: ""}
|
||||
ruser, _ := th.App.CreateUser(th.Context, &user)
|
||||
|
||||
_, _, err := th.App.AddUserToTeam(th.Context, th.BasicTeam.Id, ruser.Id, "")
|
||||
require.Nil(t, err)
|
||||
|
||||
_, err = th.App.UpdateTeamMemberRoles(th.Context, th.BasicTeam.Id, ruser.Id, "team_post_all")
|
||||
require.NotNil(t, err)
|
||||
require.Equal(t, "api.team.update_team_member_roles.unset_user_scheme.app_error", err.Id)
|
||||
})
|
||||
|
||||
t.Run("team_post_all_public alone should fail", func(t *testing.T) {
|
||||
user := model.User{Email: strings.ToLower(model.NewId()) + "success+test@example.com", Nickname: "Tester", Username: "tester" + model.NewId(), Password: "passwd1", AuthService: ""}
|
||||
ruser, _ := th.App.CreateUser(th.Context, &user)
|
||||
|
||||
_, _, err := th.App.AddUserToTeam(th.Context, th.BasicTeam.Id, ruser.Id, "")
|
||||
require.Nil(t, err)
|
||||
|
||||
_, err = th.App.UpdateTeamMemberRoles(th.Context, th.BasicTeam.Id, ruser.Id, "team_post_all_public")
|
||||
require.NotNil(t, err)
|
||||
require.Equal(t, "api.team.update_team_member_roles.unset_user_scheme.app_error", err.Id)
|
||||
})
|
||||
|
||||
t.Run("system_post_all alone should fail", func(t *testing.T) {
|
||||
user := model.User{Email: strings.ToLower(model.NewId()) + "success+test@example.com", Nickname: "Tester", Username: "tester" + model.NewId(), Password: "passwd1", AuthService: ""}
|
||||
ruser, _ := th.App.CreateUser(th.Context, &user)
|
||||
|
||||
_, _, err := th.App.AddUserToTeam(th.Context, th.BasicTeam.Id, ruser.Id, "")
|
||||
require.Nil(t, err)
|
||||
|
||||
_, err = th.App.UpdateTeamMemberRoles(th.Context, th.BasicTeam.Id, ruser.Id, "system_post_all")
|
||||
require.NotNil(t, err)
|
||||
require.Equal(t, "api.team.update_team_member_roles.unset_user_scheme.app_error", err.Id)
|
||||
})
|
||||
|
||||
t.Run("system_user_manager alone should fail", func(t *testing.T) {
|
||||
user := model.User{Email: strings.ToLower(model.NewId()) + "success+test@example.com", Nickname: "Tester", Username: "tester" + model.NewId(), Password: "passwd1", AuthService: ""}
|
||||
ruser, _ := th.App.CreateUser(th.Context, &user)
|
||||
|
||||
_, _, err := th.App.AddUserToTeam(th.Context, th.BasicTeam.Id, ruser.Id, "")
|
||||
require.Nil(t, err)
|
||||
|
||||
_, err = th.App.UpdateTeamMemberRoles(th.Context, th.BasicTeam.Id, ruser.Id, "system_user_manager")
|
||||
require.NotNil(t, err)
|
||||
require.Equal(t, "api.team.update_team_member_roles.unset_user_scheme.app_error", err.Id)
|
||||
})
|
||||
|
||||
t.Run("multiple non-scheme-managed roles without user scheme should fail", func(t *testing.T) {
|
||||
user := model.User{Email: strings.ToLower(model.NewId()) + "success+test@example.com", Nickname: "Tester", Username: "tester" + model.NewId(), Password: "passwd1", AuthService: ""}
|
||||
ruser, _ := th.App.CreateUser(th.Context, &user)
|
||||
|
||||
_, _, err := th.App.AddUserToTeam(th.Context, th.BasicTeam.Id, ruser.Id, "")
|
||||
require.Nil(t, err)
|
||||
|
||||
_, err = th.App.UpdateTeamMemberRoles(th.Context, th.BasicTeam.Id, ruser.Id, "team_post_all team_post_all_public system_post_all")
|
||||
require.NotNil(t, err)
|
||||
require.Equal(t, "api.team.update_team_member_roles.unset_user_scheme.app_error", err.Id)
|
||||
})
|
||||
|
||||
t.Run("team_post_all with team_user should succeed", func(t *testing.T) {
|
||||
user := model.User{Email: strings.ToLower(model.NewId()) + "success+test@example.com", Nickname: "Tester", Username: "tester" + model.NewId(), Password: "passwd1", AuthService: ""}
|
||||
ruser, _ := th.App.CreateUser(th.Context, &user)
|
||||
|
||||
_, _, err := th.App.AddUserToTeam(th.Context, th.BasicTeam.Id, ruser.Id, "")
|
||||
require.Nil(t, err)
|
||||
|
||||
updatedMember, err := th.App.UpdateTeamMemberRoles(th.Context, th.BasicTeam.Id, ruser.Id, "team_user team_post_all")
|
||||
require.Nil(t, err)
|
||||
require.True(t, updatedMember.SchemeUser)
|
||||
require.Contains(t, updatedMember.ExplicitRoles, "team_post_all")
|
||||
})
|
||||
|
||||
t.Run("team_post_all_public with team_user should succeed", func(t *testing.T) {
|
||||
user := model.User{Email: strings.ToLower(model.NewId()) + "success+test@example.com", Nickname: "Tester", Username: "tester" + model.NewId(), Password: "passwd1", AuthService: ""}
|
||||
ruser, _ := th.App.CreateUser(th.Context, &user)
|
||||
|
||||
_, _, err := th.App.AddUserToTeam(th.Context, th.BasicTeam.Id, ruser.Id, "")
|
||||
require.Nil(t, err)
|
||||
|
||||
updatedMember, err := th.App.UpdateTeamMemberRoles(th.Context, th.BasicTeam.Id, ruser.Id, "team_user team_post_all_public")
|
||||
require.Nil(t, err)
|
||||
require.True(t, updatedMember.SchemeUser)
|
||||
require.Contains(t, updatedMember.ExplicitRoles, "team_post_all_public")
|
||||
})
|
||||
|
||||
t.Run("multiple explicit roles with team_user should succeed", func(t *testing.T) {
|
||||
user := model.User{Email: strings.ToLower(model.NewId()) + "success+test@example.com", Nickname: "Tester", Username: "tester" + model.NewId(), Password: "passwd1", AuthService: ""}
|
||||
ruser, _ := th.App.CreateUser(th.Context, &user)
|
||||
|
||||
_, _, err := th.App.AddUserToTeam(th.Context, th.BasicTeam.Id, ruser.Id, "")
|
||||
require.Nil(t, err)
|
||||
|
||||
updatedMember, err := th.App.UpdateTeamMemberRoles(th.Context, th.BasicTeam.Id, ruser.Id, "team_user team_post_all team_post_all_public")
|
||||
require.Nil(t, err)
|
||||
require.True(t, updatedMember.SchemeUser)
|
||||
require.Contains(t, updatedMember.ExplicitRoles, "team_post_all")
|
||||
require.Contains(t, updatedMember.ExplicitRoles, "team_post_all_public")
|
||||
})
|
||||
|
||||
t.Run("explicit role with admin should succeed", func(t *testing.T) {
|
||||
user := model.User{Email: strings.ToLower(model.NewId()) + "success+test@example.com", Nickname: "Tester", Username: "tester" + model.NewId(), Password: "passwd1", AuthService: ""}
|
||||
ruser, _ := th.App.CreateUser(th.Context, &user)
|
||||
|
||||
_, _, err := th.App.AddUserToTeam(th.Context, th.BasicTeam.Id, ruser.Id, "")
|
||||
require.Nil(t, err)
|
||||
|
||||
updatedMember, err := th.App.UpdateTeamMemberRoles(th.Context, th.BasicTeam.Id, ruser.Id, "team_user team_admin team_post_all")
|
||||
require.Nil(t, err)
|
||||
require.True(t, updatedMember.SchemeUser)
|
||||
require.True(t, updatedMember.SchemeAdmin)
|
||||
require.Contains(t, updatedMember.ExplicitRoles, "team_post_all")
|
||||
})
|
||||
}
|
||||
|
||||
func TestInvalidateAllResendInviteEmailJobs(t *testing.T) {
|
||||
mainHelper.Parallel(t)
|
||||
th := Setup(t)
|
||||
|
||||
Ссылка в новой задаче
Block a user