+ {avatar}
{isMine ? adds : null}
this.onMessageSelect(idx, event)} title={friendlyDate + (modified ? tt('g.modified') : '')}>
{ quoteHeader }
diff --git a/src/components/pages/Messages.jsx b/src/components/pages/Messages.jsx
index fba08ba0f..feaf8ed47 100644
--- a/src/components/pages/Messages.jsx
+++ b/src/components/pages/Messages.jsx
@@ -27,6 +27,7 @@ import MessagesTopCenter from 'app/components/modules/MessagesTopCenter'
import g from 'app/redux/GlobalReducer'
import transaction from 'app/redux/TransactionReducer'
import user from 'app/redux/UserReducer'
+import { getRoleInGroup } from 'app/utils/groups'
import { getProfileImage, } from 'app/utils/NormalizeProfile';
import { normalizeContacts, normalizeMessages } from 'app/utils/Normalizators';
import { fitToPreview } from 'app/utils/ImageUtils';
@@ -447,7 +448,20 @@ class Messages extends React.Component {
let selectedMessages = {...this.state.selectedMessages};
let selectMessage = (msg, idx) => {
- const isMine = account.name === msg.from;
+ const isMine = account.name === msg.from
+ let canIEdit = isMine
+ let canIDelete = true
+ if (this.isGroup()) {
+ const { the_group } = this.props
+ const { amModer, amMember, amBanned } = getRoleInGroup(the_group, account.name)
+ if (amModer) {
+ canIEdit = true
+ } else if (amBanned || (the_group.privacy !== 'public_group' && !amModer && !amMember)) {
+ canIEdit = false
+ }
+ canIDelete = canIEdit
+ }
+
let isImage = false;
let isInvalid = true;
const { message } = msg;
@@ -456,7 +470,9 @@ class Messages extends React.Component {
isInvalid = !!message.invalid;
}
selectedMessages[msg.nonce] = {
- editable: isMine && !isImage && !isInvalid, idx };
+ editable: canIEdit && !isImage && !isInvalid,
+ deletable: canIDelete,
+ idx };
};
if (event.shiftKey) {
diff --git a/src/utils/Normalizators.js b/src/utils/Normalizators.js
index 7b3694de5..9d6ff1402 100644
--- a/src/utils/Normalizators.js
+++ b/src/utils/Normalizators.js
@@ -182,7 +182,7 @@ export async function normalizeMessages(messages, accounts, currentUser, to) {
}
}
}
- msg.decrypt_date = null
+ //msg.decrypt_date = null
if (loadFromCache(msg)) {
results.push(msg)