Show group update messages for member label permission changes.

This commit is contained in:
jeffrey-signal
2026-03-09 10:18:12 -04:00
parent 54aa477b28
commit 6100664287
9 changed files with 106 additions and 8 deletions

View File

@@ -824,6 +824,34 @@ class GroupsV2UpdateMessageProducerTest {
assertEquals(listOf("Who can edit group membership has been changed to \"Only admins\"."), describeChange(change))
}
// member label access change
@Test
fun member_changes_member_label_access() {
val change = ChangeBuilder.changeBy(bob)
.memberLabelAccess(MEMBER)
.build()
assertEquals(listOf("Bob changed who can add member labels to \"All members\"."), describeChange(change))
}
@Test
fun you_changed_member_label_access() {
val change = ChangeBuilder.changeBy(you)
.memberLabelAccess(ADMINISTRATOR)
.build()
assertEquals(listOf("You changed who can add member labels to \"Only admins\"."), describeChange(change))
}
@Test
fun unknown_changed_member_label_access() {
val change = ChangeBuilder.changeByUnknown()
.memberLabelAccess(ADMINISTRATOR)
.build()
assertEquals(listOf("An admin changed who can add member labels to \"Only admins\"."), describeChange(change))
}
// Group link access change
@Test
fun you_changed_group_link_access_to_any() {

View File

@@ -3,6 +3,8 @@ package org.thoughtcrime.securesms.groups.v2;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import org.signal.core.models.ServiceId.ACI;
import org.signal.core.util.Util;
import org.signal.libsignal.zkgroup.InvalidInputException;
import org.signal.libsignal.zkgroup.profiles.ProfileKey;
import org.signal.storageservice.storage.protos.groups.AccessControl;
@@ -16,8 +18,6 @@ import org.signal.storageservice.storage.protos.groups.local.DecryptedPendingMem
import org.signal.storageservice.storage.protos.groups.local.DecryptedRequestingMember;
import org.signal.storageservice.storage.protos.groups.local.DecryptedString;
import org.signal.storageservice.storage.protos.groups.local.DecryptedTimer;
import org.signal.core.util.Util;
import org.signal.core.models.ServiceId.ACI;
import kotlin.collections.CollectionsKt;
import okio.ByteString;
@@ -128,6 +128,11 @@ public final class ChangeBuilder {
return this;
}
public ChangeBuilder memberLabelAccess(@NonNull AccessControl.AccessRequired accessRequired) {
builder.newMemberLabelAccess(accessRequired);
return this;
}
public ChangeBuilder inviteLinkAccess(@NonNull AccessControl.AccessRequired accessRequired) {
builder.newInviteLinkAccess(accessRequired);
return this;