$dms, 'user'=>$user)); /* Check if the form data comes from a trusted request */ if(!checkFormKey('editattributes')) { UI::exitError(getMLText("document_title", array("documentname" => getMLText("invalid_request_token"))),getMLText("invalid_request_token")); } if (!isset($_POST["documentid"]) || !is_numeric($_POST["documentid"]) || intval($_POST["documentid"])<1) { UI::exitError(getMLText("document_title", array("documentname" => getMLText("invalid_doc_id"))),getMLText("invalid_doc_id")); } $documentid = $_POST["documentid"]; $document = $dms->getDocument($documentid); if (!is_object($document)) { UI::exitError(getMLText("document_title", array("documentname" => getMLText("invalid_doc_id"))),getMLText("invalid_doc_id")); } $folder = $document->getFolder(); if ($document->getAccessMode($user, 'editDocumentContentAttributes') < M_READWRITE) { UI::exitError(getMLText("document_title", array("documentname" => $document->getName())),getMLText("access_denied")); } $versionid = $_POST["version"]; $version = $document->getContentByVersion($versionid); if (!is_object($version)) { UI::exitError(getMLText("document_title", array("documentname" => $document->getName())),getMLText("invalid_version")); } /* Make a real copy of each attribute because setting a new attribute value * will just update the old attribute object in array attributes[] and hence * also update the old value */ $oldattributes = array(); foreach($version->getAttributes() as $ai=>$aa) $oldattributes[$ai] = clone $aa; $attributes = $_POST["attributes"]; $controller->setParam('document', $document); $controller->setParam('version', $version); $controller->setParam('attributes', $attributes); if(!$controller()) { $err = $controller->getErrorMsg(); if(is_string($err)) $errmsg = getMLText($err); elseif(is_array($err)) { $errmsg = getMLText($err[0], $err[1]); } else { $errmsg = $err; } UI::exitError(getMLText("document_title", array("documentname" => $document->getName())), $errmsg); } if($notifier) { $notifier->sendChangedVersionAttributesMail($version, $user, $oldattributes); } add_log_line("?documentid=".$documentid); header("Location:../out/out.DocumentVersionDetail.php?documentid=".$documentid."&version=".$versionid);