--- /dev/null
+<?php
+namespace wcf\system\edit;
+use wcf\data\edit\history\entry\EditHistoryEntry;
+use wcf\data\IDatabaseObjectProcessor;
+use wcf\data\IUserContent;
+
+/**
+* Represents an object that saves it's edit history.
+*
+* @author Tim Duesterhus
+* @copyright 2001-2014 WoltLab GmbH
+* @license GNU Lesser General Public License <http://opensource.org/licenses/lgpl-license.php>
+* @package com.woltlab.wcf
+* @subpackage system.edit
+* @category Community Framework
+*/
+interface IHistorySavingObject extends IDatabaseObjectProcessor, IUserContent {
+ /**
+ * Reverts the object's text to the given EditHistoryEntry.
+ *
+ * @param \wcf\data\edit\history\entry\EditHistoryEntry
+ */
+ public function revertVersion(EditHistoryEntry $edit);
+
+ /**
+ * Returns the object's current edit reason.
+ *
+ * @return string
+ */
+ public function getEditReason();
+
+ /**
+ * Returns the object's current message text.
+ *
+ * @return string
+ */
+ public function getMessage();
+}
--- /dev/null
+<?php
+namespace wcf\system\edit;
+use wcf\data\object\type\IObjectTypeProvider;
+
+/**
+ * Represents an object which edit history can be saved.
+ *
+ * @author Tim Duesterhus
+ * @copyright 2001-2014 WoltLab GmbH
+ * @license GNU Lesser General Public License <http://opensource.org/licenses/lgpl-license.php>
+ * @package com.woltlab.wcf
+ * @subpackage system.edit
+ * @category Community Framework
+ */
+interface IHistorySavingObjectTypeProvider extends IObjectTypeProvider {
+ /**
+ * Checks the permissions to review the edit history
+ * and to revert to an older version of the given
+ * IHistorySavingObject.
+ * You must throw a \wcf\system\exception\PermissionDeniedException
+ * to deny access!
+ *
+ * @param \wcf\system\edit\IHistorySavingObject $object
+ */
+ public function checkPermissions(IHistorySavingObject $object);
+
+ /**
+ * Returns the identifier of the appropriate page menu item.
+ *
+ * @return string
+ */
+ public function getActivePageMenuItem();
+}