* @return boolean
*/
public function canEdit() {
- return (WCF::getUser()->userID == $this->userID);
+ return (WCF::getUser()->userID == $this->userID && ($this->getConversation()->isDraft || WCF::getSession()->getPermission('user.conversation.canEditMessage')));
}
/**
if (!$this->message->messageID) {
throw new IllegalLinkException();
}
- if ($this->message->userID != WCF::getUser()->userID) {
+ if (!$this->message->canEdit()) {
throw new PermissionDeniedException();
}
// get conversation
$this->conversationID = $this->message->conversationID;
- $this->conversation = new Conversation($this->conversationID);
+ $this->conversation = $this->message->getConversation();
if ($this->conversation->firstMessageID == $this->message->messageID) {
$this->isFirstMessage = true;
<item name="wcf.acp.group.option.user.conversation.allowedAttachmentExtensions"><![CDATA[Erlaubte Dateiendungen]]></item>
<item name="wcf.acp.group.option.user.conversation.allowedAttachmentExtensions.description"><![CDATA[Eine Dateiendung pro Zeile]]></item>
<item name="wcf.acp.group.option.user.conversation.maxAttachmentCount"><![CDATA[Maximale Dateianhänge pro Nachricht]]></item>
+ <item name="wcf.acp.group.option.user.conversation.canEditMessage"><![CDATA[Kann eigene Nachrichten bearbeiten]]></item>
+ <item name="wcf.acp.group.option.user.conversation.canEditMessage.description"><![CDATA[Mitglieder dieser Benutzergruppe können eigene Nachrichten in Konversationen nachträglich verändern, auch wenn diese bereits vom Empfänger gelesen wurden.]]></item>
</category>
<category name="wcf.acp.option">
<item name="wcf.acp.group.option.user.conversation.allowedAttachmentExtensions"><![CDATA[Allowed File Extensions]]></item>
<item name="wcf.acp.group.option.user.conversation.allowedAttachmentExtensions.description"><![CDATA[One extension per line]]></item>
<item name="wcf.acp.group.option.user.conversation.maxAttachmentCount"><![CDATA[Maximum Attachments per Message]]></item>
+ <item name="wcf.acp.group.option.user.conversation.canEditMessage"><![CDATA[TODO: Kann eigene Nachrichten bearbeiten]]></item>
+ <item name="wcf.acp.group.option.user.conversation.canEditMessage.description"><![CDATA[TODO: Mitglieder dieser Benutzergruppe können eigene Nachrichten in Konversationen nachträglich verändern, auch wenn diese bereits vom Empfänger gelesen wurden.]]></item>
</category>
<category name="wcf.acp.option">
<defaultvalue>1</defaultvalue>
<enableoptions>user.conversation.canSetCanInvite,user.conversation.canAddInvisibleParticipants,user.conversation.maxParticipants,user.conversation.maxConversations,user.conversation.maxLabels,user.conversation.maxLength,user.conversation.canUploadAttachment</enableoptions>
</option>
+ <option name="user.conversation.canEditMessage">
+ <categoryname>user.conversation</categoryname>
+ <optiontype>boolean</optiontype>
+ <defaultvalue>1</defaultvalue>
+ </option>
<option name="user.conversation.canSetCanInvite">
<categoryname>user.conversation</categoryname>
<optiontype>boolean</optiontype>