Merge pull request #5384 from matrix-org/travis/redact-acl
Don't let users accidentally redact ACL eventspull/21833/head
						commit
						e67db1063e
					
				|  | @ -31,6 +31,7 @@ import SettingsStore from '../../../settings/SettingsStore'; | |||
| import { isUrlPermitted } from '../../../HtmlUtils'; | ||||
| import { isContentActionable } from '../../../utils/EventUtils'; | ||||
| import {MenuItem} from "../../structures/ContextMenu"; | ||||
| import {EventType} from "matrix-js-sdk/src/@types/event"; | ||||
| 
 | ||||
| function canCancel(eventStatus) { | ||||
|     return eventStatus === EventStatus.QUEUED || eventStatus === EventStatus.NOT_SENT; | ||||
|  | @ -72,7 +73,10 @@ export default class MessageContextMenu extends React.Component { | |||
|         const cli = MatrixClientPeg.get(); | ||||
|         const room = cli.getRoom(this.props.mxEvent.getRoomId()); | ||||
| 
 | ||||
|         const canRedact = room.currentState.maySendRedactionForEvent(this.props.mxEvent, cli.credentials.userId); | ||||
|         // We explicitly decline to show the redact option on ACL events as it has a potential
 | ||||
|         // to obliterate the room - https://github.com/matrix-org/synapse/issues/4042
 | ||||
|         const canRedact = room.currentState.maySendRedactionForEvent(this.props.mxEvent, cli.credentials.userId) | ||||
|             && this.props.mxEvent.getType() !== EventType.RoomServerAcl; | ||||
|         let canPin = room.currentState.mayClientSendStateEvent('m.room.pinned_events', cli); | ||||
| 
 | ||||
|         // HACK: Intentionally say we can't pin if the user doesn't want to use the functionality
 | ||||
|  |  | |||
|  | @ -60,6 +60,7 @@ import ErrorDialog from "../dialogs/ErrorDialog"; | |||
| import QuestionDialog from "../dialogs/QuestionDialog"; | ||||
| import ConfirmUserActionDialog from "../dialogs/ConfirmUserActionDialog"; | ||||
| import InfoDialog from "../dialogs/InfoDialog"; | ||||
| import { EventType } from "matrix-js-sdk/src/@types/event"; | ||||
| 
 | ||||
| interface IDevice { | ||||
|     deviceId: string; | ||||
|  | @ -586,7 +587,10 @@ const RedactMessagesButton: React.FC<IBaseProps> = ({member}) => { | |||
|         while (timeline) { | ||||
|             eventsToRedact = timeline.getEvents().reduce((events, event) => { | ||||
|                 if (event.getSender() === userId && !event.isRedacted() && !event.isRedaction() && | ||||
|                     event.getType() !== "m.room.create" | ||||
|                     event.getType() !== EventType.RoomCreate && | ||||
|                     // Don't redact ACLs because that'll obliterate the room
 | ||||
|                     // See https://github.com/matrix-org/synapse/issues/4042 for details.
 | ||||
|                     event.getType() !== EventType.RoomServerAcl | ||||
|                 ) { | ||||
|                     return events.concat(event); | ||||
|                 } else { | ||||
|  |  | |||
		Loading…
	
		Reference in New Issue
	
	 Travis Ralston
						Travis Ralston