/** * @requiresRight id WRITE */ public function commitResource() { $resource = new \core_kernel_classes_Resource($this->getRequestParameter('id')); // prevent escaping on input $message = isset($_POST['message']) ? $_POST['message'] : ''; $revision = RevisionService::commit($resource, $message); $this->returnJson(array('success' => true, 'id' => $revision->getVersion(), 'modified' => \tao_helpers_Date::displayeDate($revision->getDateCreated()), 'author' => UserHelper::renderHtmlUser($revision->getAuthorId()), 'message' => $revision->getMessage(), 'commitMessage' => __('%s has been committed', $resource->getLabel()))); }
/** * * @param core_kernel_classes_Resource $resource * @param string $oldVersion * @param string $message * @param string $newVersion * @return \oat\taoRevision\model\Revision */ public static function restore(core_kernel_classes_Resource $resource, $oldVersion, $message, $newVersion = null) { $lockManager = LockManager::getImplementation(); if ($lockManager->isLocked($resource)) { $userId = common_session_SessionManager::getSession()->getUser()->getIdentifier(); $lockManager->releaseLock($resource, $userId); } $oldRevision = RepositoryProxy::getRevision($resource->getUri(), $oldVersion); $success = RepositoryProxy::restore($oldRevision); if ($success) { $newVersion = is_null($newVersion) ? self::getNextVersion($resource->getUri()) : $newVersion; $newRevision = RevisionService::commit($resource, $message, $newVersion); return $newRevision; } else { throw \common_exception_Error('Unable to restore version ' . $oldVersion . ' of resource ' . $resource->getUri()); } }
/** * Edit a media instance with a new file and/or a new language * @param $fileTmp * @param $instanceUri * @param $language * @return bool $instanceUri or false on error */ public function editMediaInstance($fileTmp, $instanceUri, $language) { $instance = new \core_kernel_classes_Resource($instanceUri); $link = $this->getLink($instance); $fileManager = FileManager::getFileManagementModel(); $fileManager->deleteFile($link); $link = $fileManager->storeFile($fileTmp, $instance->getLabel()); if ($link !== false) { //get the file MD5 $md5 = md5_file($fileTmp); /** @var $instance \core_kernel_classes_Resource */ if (!is_null($instance) && $instance instanceof \core_kernel_classes_Resource) { $instance->editPropertyValues(new \core_kernel_classes_Property(MEDIA_LINK), $link); $instance->editPropertyValues(new \core_kernel_classes_Property(MEDIA_LANGUAGE), $language); $instance->editPropertyValues(new \core_kernel_classes_Property(MEDIA_MD5), $md5); } if (common_ext_ExtensionsManager::singleton()->isEnabled('taoRevision')) { \common_Logger::i('Auto generating revision'); RevisionService::commit($instance, __('Imported new file')); } } return $link !== false ? true : false; }