mirror of
https://github.com/signalapp/Signal-Desktop.git
synced 2026-02-15 07:28:59 +00:00
Fix admin pin permissions in groups with admin-only edit settings
This commit is contained in:
@@ -168,7 +168,6 @@ import { getCallIdFromEra } from '../../util/callDisposition.preload.js';
|
||||
import { LONG_MESSAGE } from '../../types/MIME.std.js';
|
||||
import type { MessageRequestResponseNotificationData } from '../../components/conversation/MessageRequestResponseNotification.dom.js';
|
||||
import type { PinnedMessageNotificationData } from '../../components/conversation/pinned-messages/PinnedMessageNotification.dom.js';
|
||||
import { canEditGroupInfo } from '../../util/canEditGroupInfo.preload.js';
|
||||
import { isPinnedMessagesSendEnabled } from '../../util/isPinnedMessagesEnabled.dom.js';
|
||||
|
||||
const { groupBy, isEmpty, isNumber, isObject, map } = lodash;
|
||||
@@ -2407,7 +2406,9 @@ export function canPinMessages(conversation: ConversationType): boolean {
|
||||
if (!isPinnedMessagesSendEnabled()) {
|
||||
return false;
|
||||
}
|
||||
return conversation.type === 'direct' || canEditGroupInfo(conversation);
|
||||
return (
|
||||
conversation.type === 'direct' || conversation.canEditGroupInfo === true
|
||||
);
|
||||
}
|
||||
|
||||
export function canPinMessage(
|
||||
|
||||
@@ -5,24 +5,9 @@ import type { ConversationAttributesType } from '../model-types.d.ts';
|
||||
import { SignalService as Proto } from '../protobuf/index.std.js';
|
||||
import { isGroupV2 } from './whatTypeOfConversation.dom.js';
|
||||
import { areWeAdmin } from './areWeAdmin.preload.js';
|
||||
import type { ConversationType } from '../state/ducks/conversations.preload.js';
|
||||
|
||||
function getConversationAccessControlAttributes(
|
||||
conversation: ConversationAttributesType | ConversationType
|
||||
): number | null {
|
||||
if ('accessControl' in conversation) {
|
||||
return conversation.accessControl?.attributes ?? null;
|
||||
}
|
||||
|
||||
if ('accessControlAttributes' in conversation) {
|
||||
return conversation.accessControlAttributes ?? null;
|
||||
}
|
||||
|
||||
return null;
|
||||
}
|
||||
|
||||
export function canEditGroupInfo(
|
||||
conversationAttrs: ConversationAttributesType | ConversationType
|
||||
conversationAttrs: ConversationAttributesType
|
||||
): boolean {
|
||||
if (!isGroupV2(conversationAttrs)) {
|
||||
return false;
|
||||
@@ -36,7 +21,8 @@ export function canEditGroupInfo(
|
||||
return true;
|
||||
}
|
||||
|
||||
const accessControlAttributes =
|
||||
getConversationAccessControlAttributes(conversationAttrs);
|
||||
return accessControlAttributes === Proto.AccessControl.AccessRequired.MEMBER;
|
||||
return (
|
||||
conversationAttrs.accessControl?.attributes ===
|
||||
Proto.AccessControl.AccessRequired.MEMBER
|
||||
);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user