Introduce new permission for group member labels

This commit is contained in:
Scott Nonnenberg
2026-03-05 11:18:39 +10:00
committed by GitHub
parent 095e24327b
commit 909896d65c
21 changed files with 519 additions and 148 deletions

View File

@@ -5,6 +5,7 @@ import type {
ConversationType,
MembershipType,
} from '../state/ducks/conversations.preload.js';
import { SignalService as Proto } from '../protobuf/index.std.js';
export const missingEmojiPlaceholder = '⍰';
@@ -25,5 +26,11 @@ export function getCanAddLabel(
conversation: ConversationType,
membership: MembershipType | undefined
): boolean {
return Boolean(membership && conversation.type === 'group');
return Boolean(
membership &&
conversation.type === 'group' &&
(membership.isAdmin ||
conversation.accessControlMemberLabel ===
Proto.AccessControl.AccessRequired.MEMBER)
);
}

View File

@@ -21,6 +21,10 @@ type GroupV2AccessInviteLinkChangeType = {
type: 'access-invite-link';
newPrivilege: number;
};
type GroupV2AccessMemberLabelChangeType = {
type: 'access-member-label';
newPrivilege: number;
};
type GroupV2AnnouncementsOnlyChangeType = {
type: 'announcements-only';
announcementsOnly: boolean;
@@ -127,6 +131,7 @@ export type GroupV2ChangeDetailType =
| GroupV2AccessAttributesChangeType
| GroupV2AccessCreateChangeType
| GroupV2AccessInviteLinkChangeType
| GroupV2AccessMemberLabelChangeType
| GroupV2AccessMembersChangeType
| GroupV2AdminApprovalAddOneChangeType
| GroupV2AdminApprovalRemoveOneChangeType