Browse Source

Fix delete rights

master
Eduard Kuzmenko 4 years ago
parent
commit
d1b8461b54
  1. 47
      src/components/popupDeleteMessages.ts
  2. 11
      src/lib/appManagers/appMessagesManager.ts
  3. 4
      src/scss/partials/_leftSidebar.scss
  4. 1
      src/scss/partials/popups/_peer.scss

47
src/components/popupDeleteMessages.ts

@ -17,7 +17,7 @@ export default class PopupDeleteMessages { @@ -17,7 +17,7 @@ export default class PopupDeleteMessages {
};
let title: string, description: string, buttons: PopupButton[];
title = `Delete Message${mids.length == 1 ? '' : 's'}?`;
title = `Delete ${mids.length == 1 ? '' : mids.length + ' '}Message${mids.length == 1 ? '' : 's'}?`;
description = `Are you sure you want to delete ${mids.length == 1 ? 'this message' : 'these messages'}?`;
if(peerID == $rootScope.myID) {
@ -39,12 +39,45 @@ export default class PopupDeleteMessages { @@ -39,12 +39,45 @@ export default class PopupDeleteMessages {
isDanger: true,
callback: () => callback(true)
});
} else if(appChatsManager.hasRights(-peerID, 'deleteRevoke')) {
buttons.push({
text: 'DELETE FOR ALL',
isDanger: true,
callback: () => callback(true)
});
} else {
const chat = appChatsManager.getChat(-peerID);
const hasRights = appChatsManager.hasRights(-peerID, 'deleteRevoke');
if(chat._ == 'chat') {
const canRevoke = hasRights ? mids.slice() : mids.filter(mid => {
const message = appMessagesManager.getMessage(mid);
return message.fromID == $rootScope.myID;
});
if(canRevoke.length) {
if(canRevoke.length == mids.length) {
buttons.push({
text: 'DELETE FOR ALL',
isDanger: true,
callback: () => callback(true)
});
} else {
const buttonText = 'Unsend my and delete';
buttons.push({
text: buttonText,
isDanger: true,
callback: () => callback(true)
});
description = `You can also delete the ${canRevoke.length} message${canRevoke.length > 1 ? 's' : ''} you sent from the inboxes of other group members by pressing "${buttonText}".`;
}
}
} else {
if(!hasRights || appChatsManager.isBroadcast(-peerID)) {
buttons.shift();
}
buttons.push({
text: 'DELETE FOR ALL',
isDanger: true,
callback: () => callback(true)
});
}
}
}

11
src/lib/appManagers/appMessagesManager.ts

@ -2392,11 +2392,12 @@ export class AppMessagesManager { @@ -2392,11 +2392,12 @@ export class AppMessagesManager {
public canDeleteMessage(messageID: number) {
const message = this.messagesStorage[messageID];
if(message) {
return message.peerID > 0 || message.fromID == $rootScope.myID || appChatsManager.hasRights(message.peerID, 'deleteRevoke');
} else {
return false;
}
return message && (
message.peerID > 0
|| message.fromID == $rootScope.myID
|| appChatsManager.getChat(message.peerID)._ == 'chat'
|| appChatsManager.hasRights(message.peerID, 'deleteRevoke')
);
}
public applyConversations(dialogsResult: MessagesPeerDialogs.messagesPeerDialogs) {

4
src/scss/partials/_leftSidebar.scss

@ -557,8 +557,8 @@ @@ -557,8 +557,8 @@
}
avatar-element {
height: 32px;
width: 32px;
height: 2rem;
width: 2rem;
font-size: .875rem;
}

1
src/scss/partials/popups/_peer.scss

@ -48,5 +48,6 @@ @@ -48,5 +48,6 @@
.peer-avatar {
height: 2rem;
width: 2rem;
font-size: .875rem;
}
}
Loading…
Cancel
Save