Fix various corner case block/reject join request bugs.

This commit is contained in:
Cody Henthorne
2022-03-18 11:00:23 -04:00
parent b8e98350c1
commit e6ac40a07c
8 changed files with 83 additions and 26 deletions

View File

@@ -210,7 +210,7 @@ public final class GroupsV2Operations {
}
public GroupChange.Actions.Builder createRefuseGroupJoinRequest(Set<UUID> requestsToRemove, boolean alsoBan) {
GroupChange.Actions.Builder actions = alsoBan ? createBanUuidsChange(requestsToRemove)
GroupChange.Actions.Builder actions = alsoBan ? createBanUuidsChange(requestsToRemove, false)
: GroupChange.Actions.newBuilder();
for (UUID uuid : requestsToRemove) {
@@ -236,7 +236,7 @@ public final class GroupsV2Operations {
}
public GroupChange.Actions.Builder createRemoveMembersChange(final Set<UUID> membersToRemove, boolean alsoBan) {
GroupChange.Actions.Builder actions = alsoBan ? createBanUuidsChange(membersToRemove)
GroupChange.Actions.Builder actions = alsoBan ? createBanUuidsChange(membersToRemove, false)
: GroupChange.Actions.newBuilder();
for (UUID remove: membersToRemove) {
@@ -350,8 +350,9 @@ public final class GroupsV2Operations {
.setAnnouncementsOnly(isAnnouncementGroup));
}
public GroupChange.Actions.Builder createBanUuidsChange(Set<UUID> banUuids) {
GroupChange.Actions.Builder builder = GroupChange.Actions.newBuilder();
public GroupChange.Actions.Builder createBanUuidsChange(Set<UUID> banUuids, boolean rejectJoinRequest) {
GroupChange.Actions.Builder builder = rejectJoinRequest ? createRefuseGroupJoinRequest(banUuids, false)
: GroupChange.Actions.newBuilder();
for (UUID uuid : banUuids) {
builder.addAddBannedMembers(GroupChange.Actions.AddBannedMemberAction.newBuilder().setAdded(BannedMember.newBuilder().setUserId(encryptUuid(uuid)).build()));

View File

@@ -393,7 +393,7 @@ public final class GroupsV2Operations_decrypt_change_Test {
public void can_decrypt_member_bans_field22() {
UUID ban = UUID.randomUUID();
assertDecryption(groupOperations.createBanUuidsChange(Collections.singleton(ban))
assertDecryption(groupOperations.createBanUuidsChange(Collections.singleton(ban), false)
.setRevision(13),
DecryptedGroupChange.newBuilder()
.setRevision(13)