Support for Group Member Labels

This commit is contained in:
Scott Nonnenberg
2026-02-03 04:06:25 +10:00
committed by GitHub
parent d173db816b
commit 09c71ad356
60 changed files with 1794 additions and 345 deletions

View File

@@ -325,11 +325,13 @@ message Group {
ADMINISTRATOR = 2;
}
bytes userId = 1;
bytes user_id = 1;
Role role = 2;
reserved /*profileKey*/ 3; // This field is ignored in Backups, in favor of Contact frames for members
reserved /*presentation*/ 4; // This field is deprecated in the context of static group state
uint32 joinedAtVersion = 5;
string label_emoji = 6;
string label_string = 7;
}
message MemberPendingProfileKey {
@@ -339,14 +341,14 @@ message Group {
}
message MemberPendingAdminApproval {
bytes userId = 1;
bytes user_id = 1;
reserved /*profileKey*/ 2; // This field is ignored in Backups, in favor of Contact frames for members
reserved /*presentation*/ 3; // This field is deprecated in the context of static group state
uint64 timestamp = 4;
}
message MemberBanned {
bytes userId = 1;
bytes user_id = 1;
uint64 timestamp = 2;
}

View File

@@ -1,11 +1,11 @@
syntax = "proto3";
// Copyright 2020 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
syntax = "proto3";
package signalservice;
option java_package = "org.whispersystems.signalservice.protos.groups";
option java_package = "org.signal.storageservice.storage.protos.groups";
option java_outer_classname = "GroupProtos";
option java_multiple_files = true;
message AvatarUploadAttributes {
@@ -27,11 +27,14 @@ message Member {
ADMINISTRATOR = 2;
}
bytes userId = 1;
bytes user_id = 1;
Role role = 2;
bytes profileKey = 3;
bytes presentation = 4;
uint32 joinedAtVersion = 5;
// These two fields each decrypt to a UTF8 string
bytes label_emoji = 6;
bytes label_string = 7;
}
message MemberPendingProfileKey {
@@ -41,14 +44,14 @@ message MemberPendingProfileKey {
}
message MemberPendingAdminApproval {
bytes userId = 1;
bytes user_id = 1;
bytes profileKey = 2;
bytes presentation = 3;
uint64 timestamp = 4; // ms since epoch
}
message MemberBanned {
bytes userId = 1;
bytes user_id = 1;
uint64 timestamp = 2; // ms since epoch
}
@@ -134,10 +137,17 @@ message GroupChange {
}
message ModifyMemberRoleAction {
bytes userId = 1;
bytes user_id = 1;
Member.Role role = 2;
}
message ModifyMemberLabelAction {
bytes user_id = 1;
// These two fields each decrypt to a UTF8 string
bytes label_emoji = 2;
bytes label_string = 3;
}
message ModifyMemberProfileKeyAction {
bytes presentation = 1;
bytes user_id = 2;
@@ -174,7 +184,7 @@ message GroupChange {
}
message PromoteMemberPendingAdminApprovalAction {
bytes userId = 1;
bytes user_id = 1;
Member.Role role = 2;
}
@@ -231,6 +241,7 @@ message GroupChange {
repeated AddMemberAction addMembers = 3;
repeated DeleteMemberAction deleteMembers = 4;
repeated ModifyMemberRoleAction modifyMemberRoles = 5;
repeated ModifyMemberLabelAction modifyMemberLabels = 26; // change epoch = 6;
repeated ModifyMemberProfileKeyAction modifyMemberProfileKeys = 6;
repeated AddMemberPendingProfileKeyAction addMembersPendingProfileKey = 7;
repeated DeleteMemberPendingProfileKeyAction deleteMembersPendingProfileKey = 8;