chore: show toast when trying to remove admin of groupv2

pull/2963/head
Audric Ackermann 1 year ago
parent 13da2b5632
commit d3ed798d0e

@ -327,6 +327,7 @@
"leaveGroupConfirmationAdmin": "As you are the admin of this group, if you leave it it will be removed for every current members. Are you sure you want to leave this group?",
"cannotRemoveCreatorFromGroup": "Cannot remove this user",
"cannotRemoveCreatorFromGroupDesc": "You cannot remove this user as they are the creator of the group.",
"cannotRemoveAdminFromGroup": "Admins cannot be removed",
"noContactsForGroup": "You don't have any contacts yet",
"failedToAddAsModerator": "Failed to add user as admin",
"failedToRemoveFromModerator": "Failed to remove user from the admin list",

@ -249,6 +249,11 @@ export const UpdateGroupMembersDialog = (props: Props) => {
return;
}
if (groupAdmins?.includes(member)) {
if (PubKey.is03Pubkey(conversationId)) {
ToastUtils.pushCannotRemoveAdminFromGroup();
window?.log?.warn(`User ${member} cannot be removed as they are adn admin.`);
return;
}
ToastUtils.pushCannotRemoveCreatorFromGroup();
window?.log?.warn(
`User ${member} cannot be removed as they are the creator of the closed group.`

@ -95,16 +95,18 @@ export class GroupUpdateMemberChangeMessage extends GroupUpdateMessage {
public dataProto(): SignalService.DataMessage {
const { Type } = SignalService.GroupUpdateMemberChangeMessage;
const type: SignalService.GroupUpdateMemberChangeMessage.Type =
this.typeOfChange === 'added' || this.typeOfChange === 'addedWithHistory'
? Type.ADDED
: this.typeOfChange === 'removed'
? Type.REMOVED
: Type.PROMOTED;
const memberChangeMessage = new SignalService.GroupUpdateMemberChangeMessage({
type:
this.typeOfChange === 'added' || this.typeOfChange === 'addedWithHistory'
? Type.ADDED
: this.typeOfChange === 'removed'
? Type.REMOVED
: Type.PROMOTED,
type,
memberSessionIds: this.memberSessionIds,
adminSignature: this.sodium.crypto_sign_detached(
stringToUint8Array(`MEMBER_CHANGE${this.typeOfChange}${this.createAtNetworkTimestamp}`),
stringToUint8Array(`MEMBER_CHANGE${type}${this.createAtNetworkTimestamp}`),
this.secretKey
),
});

@ -493,6 +493,8 @@ async function encryptMessageAndWrap(
return encryptForGroupV2(params);
}
// can only be legacy group or 1o1 chats here
const recipient = PubKey.cast(destination);
const { envelopeType, cipherText } = await MessageEncrypter.encrypt(

@ -194,6 +194,10 @@ export function pushCannotRemoveCreatorFromGroup() {
pushToastWarning('cannotRemoveCreatorFromGroup', window.i18n('cannotRemoveCreatorFromGroupDesc'));
}
export function pushCannotRemoveAdminFromGroup() {
pushToastWarning('cannotRemoveAdminFromGroup', window.i18n('cannotRemoveAdminFromGroup'));
}
export function pushOnlyAdminCanRemove() {
pushToastInfo('onlyAdminCanRemoveMembers', window.i18n('onlyAdminCanRemoveMembersDesc'));
}

@ -11,6 +11,7 @@ import {
} from 'libsession_util_nodejs';
import { base64_variants, from_base64 } from 'libsodium-wrappers-sumo';
import { intersection, isEmpty, uniq } from 'lodash';
import { v4 } from 'uuid';
import { ConfigDumpData } from '../../data/configDump/configDump';
import { ConversationModel } from '../../models/conversation';
import { ConversationTypeEnum } from '../../models/conversationAttributes';
@ -630,6 +631,7 @@ async function getUpdateMessagesToPush({
if (withoutHistory.length) {
updateMessages.push(
new GroupUpdateMemberChangeMessage({
identifier: v4(),
added: withoutHistory,
groupPk,
typeOfChange: 'added',
@ -643,6 +645,7 @@ async function getUpdateMessagesToPush({
if (withHistory.length) {
updateMessages.push(
new GroupUpdateMemberChangeMessage({
identifier: v4(),
added: withHistory,
groupPk,
typeOfChange: 'addedWithHistory',
@ -656,6 +659,7 @@ async function getUpdateMessagesToPush({
if (removed.length) {
updateMessages.push(
new GroupUpdateMemberChangeMessage({
identifier: v4(),
removed,
groupPk,
typeOfChange: 'removed',

@ -52,6 +52,7 @@ export type LocalizerKeys =
| 'cameraPermissionNeeded'
| 'cancel'
| 'cannotMixImageAndNonImageAttachments'
| 'cannotRemoveAdminFromGroup'
| 'cannotRemoveCreatorFromGroup'
| 'cannotRemoveCreatorFromGroupDesc'
| 'cannotUpdate'

Loading…
Cancel
Save