Introduce new add member labels permission.

This commit is contained in:
jeffrey-signal
2026-03-06 15:58:00 -05:00
parent 7beb4dd939
commit 13444136bd
26 changed files with 441 additions and 60 deletions

View File

@@ -118,6 +118,27 @@ class GroupRecord(
}
}
/**
* Who is allowed to add member labels in this group.
*
* Defaults to ALL_MEMBERS for groups created before this permission was added.
*/
val memberLabelAccessControl: GroupAccessControl
get() {
if (!isV2Group) {
return GroupAccessControl.ALL_MEMBERS
}
return when ((requireV2GroupProperties().decryptedGroup.accessControl ?: AccessControl()).memberLabel) {
AccessControl.AccessRequired.ADMINISTRATOR -> GroupAccessControl.ONLY_ADMINS
AccessControl.AccessRequired.MEMBER,
AccessControl.AccessRequired.UNKNOWN, // groups predating this permission
AccessControl.AccessRequired.ANY,
AccessControl.AccessRequired.UNSATISFIABLE -> GroupAccessControl.ALL_MEMBERS
}
}
val actionableRequestingMembersCount: Int by lazy {
if (isV2Group && memberLevel(Recipient.self()) == GroupTable.MemberLevel.ADMINISTRATOR) {
requireV2GroupProperties()