Ejemplo n.º 1
0
 /**
  * @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;
 }