From 4bc006b161a682e1d21dc633ebd30f434a677ec8 Mon Sep 17 00:00:00 2001 From: Marco Antonio Nina Date: Mon, 30 Jul 2012 11:50:07 -0400 Subject: [PATCH] BUG 4869 Download link on dynaform in view mode SOLVED - Not had the option to download. - The dynaform in view mode documents can be downloaded if you have permissions --- gulliver/system/class.xmlform.php | 61 ++++++++++++++++++++++++++++++- 1 file changed, 60 insertions(+), 1 deletion(-) diff --git a/gulliver/system/class.xmlform.php b/gulliver/system/class.xmlform.php index 271aa6a55..78d423221 100755 --- a/gulliver/system/class.xmlform.php +++ b/gulliver/system/class.xmlform.php @@ -2303,10 +2303,69 @@ class XmlForm_Field_File extends XmlForm_Field { * @return string */ function render($value = NULL) { + $permission = false; + $url = ''; + if (isset($_SESSION['APPLICATION']) && isset($_SESSION['USER_LOGGED']) && $this->mode == 'view') { + G::LoadClass('case'); + $oCase = new Cases(); + $fields = $oCase->loadCase($_SESSION['APPLICATION']); + $sProcessUID = $fields['PRO_UID']; + $sTaskUID = ''; + $oCriteria = $oCase->getAllUploadedDocumentsCriteria($sProcessUID, $_SESSION['APPLICATION'], $sTaskUID, $_SESSION['USER_LOGGED']); + $result = array(); + global $_DBArray; + + foreach ($_DBArray['inputDocuments'] as $key => $row) { + if (isset($row['DOC_VERSION'])) { + $docrow = array(); + $docrow['guid'] = $row['APP_DOC_UID']; + $docrow['filename'] = $row['APP_DOC_FILENAME']; + $docrow['docId'] = $row['DOC_UID']; + $docrow['version'] = $row['DOC_VERSION']; + $docrow['createDate'] = $row['CREATE_DATE']; + $docrow['createBy'] = $row['CREATED_BY']; + $docrow['type'] = $row['TYPE']; + $docrow['index'] = $row['APP_DOC_INDEX']; + $docrow['link'] = 'cases/' . $row['DOWNLOAD_LINK']; + + $result[] = $docrow; + + require_once ("classes/model/ObjectPermission.php"); + G::LoadClass('groups'); + $oCriteria = new Criteria(); + $oCriteria->add(ObjectPermissionPeer::PRO_UID, $sProcessUID); + $oDataset = ObjectPermissionPeer::doSelectRS($oCriteria); + $oDataset->setFetchmode(ResultSet::FETCHMODE_ASSOC); + $oDataset->next(); + $fields = array(); + while ($aRow = $oDataset->getRow()) { + if (($row['DOC_UID'] == $aRow['OP_OBJ_UID']) && ($aRow['OP_ACTION'] == 'VIEW')) { + if ($_SESSION['USER_LOGGED'] == $aRow['USR_UID']) { + $permission = true; + $url = (G::is_https() ? 'https://' : 'http://') .$_SERVER['HTTP_HOST'].dirname($_SERVER['REQUEST_URI']).'/'.$row['DOWNLOAD_LINK']; + } else { + $group = new Groups(); + $aGroups = $group->verifyUsertoGroup($aRow['USR_UID'], $_SESSION['USER_LOGGED']); + if ($aGroups) { + $permission = true; + $url = (G::is_https() ? 'https://' : 'http://') .$_SERVER['HTTP_HOST'].dirname($_SERVER['REQUEST_URI']).'/'.$row['DOWNLOAD_LINK']; + } + } + } + $fields[] = $aRow ; + $oDataset->next(); + } + } + } + } $mode = ($this->mode == 'view') ? ' disabled="disabled"' : ''; if($this->mode == 'view'){ $displayStyle = 'display:none;'; - $html = $value.''; + if ($permission) { + $html = ''.$value.''; + } else { + $html = $value.''; + } } else{ $html = '';