Message deletion moderator check and toast.

pull/689/head
Vincent 5 years ago
parent fc235d6057
commit 2bdc0579c3

@ -1017,6 +1017,11 @@
"message":
"Are you sure? Clicking 'delete' will permanently remove these messages from this device only."
},
"messageDeletionForbidden": {
"message": "You don't have permission to delete others' messages.",
"description":
"Toast message explaining that the user doens't have the rights to delete other people's messages."
},
"deleteThisMessage": {
"message": "Delete this message"
},

@ -69,6 +69,12 @@
},
});
Whisper.MessageDeletionForbiddenToast = Whisper.ToastView.extend({
render_attributes() {
return { toastMessage: i18n('messageDeletionForbidden') };
},
});
const MAX_MESSAGE_BODY_LENGTH = 64 * 1024;
Whisper.MessageBodyTooLongToast = Whisper.ToastView.extend({
render_attributes() {
@ -1397,9 +1403,23 @@
},
deleteSelectedMessages() {
const msgArray = Array.from(this.model.selectedMessages);
const selected = Array.from(this.model.selectedMessages);
const isModerator = this.model.isModerator(this.model.OUR_NUMBER);
let isAllOurs = true;
// eslint-disable-next-line no-restricted-syntax
for (const message of selected) {
isAllOurs = message.attributes.source === message.OUR_NUMBER;
if (!isAllOurs && !isModerator) {
const toast = new Whisper.MessageDeletionForbiddenToast();
toast.$el.appendTo(this.$el);
toast.render();
return;
}
}
this.deleteMessages(msgArray, () => {
this.deleteMessages(selected, () => {
this.resetMessageSelection();
});
},

@ -11,7 +11,7 @@ export class SessionIconButton extends React.PureComponent<SProps> {
public static readonly extendedDefaults = {
onClick: () => null,
};
public static readonlydefaultProps = {
public static readonly defaultProps = {
...SessionIcon.defaultProps,
...SessionIconButton.extendedDefaults,
};

Loading…
Cancel
Save