mirror of
https://git.code.sf.net/p/seeddms/code
synced 2025-05-14 05:31:42 +00:00
Merge branch 'seeddms-5.1.x' into seeddms-6.0.x
This commit is contained in:
commit
22dce2fdf1
|
@ -1951,6 +1951,49 @@ class SeedDMS_Core_Document extends SeedDMS_Core_Object { /* {{{ */
|
||||||
return $this->_latestContent;
|
return $this->_latestContent;
|
||||||
} /* }}} */
|
} /* }}} */
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get the latest version of document
|
||||||
|
*
|
||||||
|
* This function returns the latest accessible version of a document.
|
||||||
|
* If content access has been restricted by setting
|
||||||
|
* {@link SeedDMS_Core_DMS::noReadForStatus} the function will go
|
||||||
|
* backwards in history until an accessible version is found. If none
|
||||||
|
* is found null will be returned.
|
||||||
|
* Access rights based on the document status are calculated for the
|
||||||
|
* currently logged in user.
|
||||||
|
*
|
||||||
|
* @return object object of class {@link SeedDMS_Core_DocumentContent}
|
||||||
|
*/
|
||||||
|
function getLatestContent() { /* {{{ */
|
||||||
|
if (!$this->_latestContent) {
|
||||||
|
$db = $this->_dms->getDB();
|
||||||
|
$queryStr = "SELECT * FROM `tblDocumentContent` WHERE `document` = ".$this->_id." ORDER BY `version` DESC";
|
||||||
|
$resArr = $db->getResultArray($queryStr);
|
||||||
|
if (is_bool($resArr) && !$res)
|
||||||
|
return false;
|
||||||
|
|
||||||
|
$classname = $this->_dms->getClassname('documentcontent');
|
||||||
|
$user = $this->_dms->getLoggedInUser();
|
||||||
|
foreach ($resArr as $row) {
|
||||||
|
if (!$this->_latestContent) {
|
||||||
|
$content = new $classname($row["id"], $this, $row["version"], $row["comment"], $row["date"], $row["createdBy"], $row["dir"], $row["orgFileName"], $row["fileType"], $row["mimeType"], $row['fileSize'], $row['checksum']);
|
||||||
|
if($user) {
|
||||||
|
/* If the user may even write the document, then also allow to see all content.
|
||||||
|
* This is needed because the user could upload a new version
|
||||||
|
*/
|
||||||
|
if($content->getAccessMode($user) >= M_READ) {
|
||||||
|
$this->_latestContent = $content;
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
$this->_latestContent = $content;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return $this->_latestContent;
|
||||||
|
} /* }}} */
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Remove version of document
|
* Remove version of document
|
||||||
*
|
*
|
||||||
|
@ -3256,7 +3299,6 @@ class SeedDMS_Core_DocumentContent extends SeedDMS_Core_Object { /* {{{ */
|
||||||
*/
|
*/
|
||||||
function getAccessMode($u) { /* {{{ */
|
function getAccessMode($u) { /* {{{ */
|
||||||
$dms = $this->_document->_dms;
|
$dms = $this->_document->_dms;
|
||||||
$db = $dms->getDB();
|
|
||||||
|
|
||||||
if(!$u)
|
if(!$u)
|
||||||
return M_NONE;
|
return M_NONE;
|
||||||
|
|
Loading…
Reference in New Issue
Block a user