Commit 5ad9fc21187c8c83444af11f4a02e648bdf333a0
1 parent
4b2ec61a
Show inherited permissions if there are no direct permissions on the folder.
git-svn-id: https://kt-dms.svn.sourceforge.net/svnroot/kt-dms/trunk@3048 c91229c3-7414-0410-bfa2-8a42b809f60b
Showing
1 changed file
with
23 additions
and
2 deletions
presentation/lookAndFeel/knowledgeTree/foldermanagement/editUI.inc
| ... | ... | @@ -134,7 +134,24 @@ function getFolderGroupAccess($iFolderID, $sDivName) { |
| 134 | 134 | $sQuery = "SELECT GFL.id as id, GFL.group_id AS group_id, GFL.folder_id AS folder_id, GFL.can_read AS can_read, GFL.can_write AS can_write, GL.name AS group_name, 'Edit' as edit, 'Delete' as del " . |
| 135 | 135 | "FROM $default->groups_folders_table AS GFL " . |
| 136 | 136 | "INNER JOIN $default->groups_table AS GL ON GFL.group_id = GL.id " . |
| 137 | - "WHERE GFL.folder_id = $iFolderID"; | |
| 137 | + "WHERE GFL.folder_id = ?"; | |
| 138 | + | |
| 139 | + $iTestFolderID = $iFolderID; | |
| 140 | + $bFoundPermissions = false; | |
| 141 | + $bDisabled = false; | |
| 142 | + while ($bFoundPermissions !== true) { | |
| 143 | + $aCheckQuery = array('SELECT id FROM groups_folders_link WHERE folder_id = ? LIMIT 1', $iTestFolderID); | |
| 144 | + if (count(DBUtil::getResultArrayKey($aCheckQuery, 'id')) == 0) { | |
| 145 | + $default->log->info('No direct permissions on folder ' . $iTestFolderID); | |
| 146 | + $bDisabled = true; | |
| 147 | + $oTestFolder = Folder::get($iTestFolderID); | |
| 148 | + $iTestFolderID = $oTestFolder->getParentID(); | |
| 149 | + $default->log->info('... trying parent: ' . $iTestFolderID); | |
| 150 | + } else { | |
| 151 | + $default->log->info('Found direct permissions on folder ' . $iTestFolderID); | |
| 152 | + break; | |
| 153 | + } | |
| 154 | + } | |
| 138 | 155 | |
| 139 | 156 | $aColumns = array("group_name", "can_read", "can_write", "edit", "del"); |
| 140 | 157 | $aColumnHeaders = array(_("Group"), _("Read"), _("Write"), "", ""); |
| ... | ... | @@ -143,9 +160,13 @@ function getFolderGroupAccess($iFolderID, $sDivName) { |
| 143 | 160 | $aQueryStringVariableNames = array("fGroupFolderLinkID", "fFolderID"); |
| 144 | 161 | $aLinkURLs = array(3=>"$default->rootUrl/control.php?action=modifyGroupFolderLink",4=>"$default->rootUrl/control.php?action=deleteGroupFolderLink"); |
| 145 | 162 | |
| 146 | - $oPatternTableSqlQuery = & new PatternTableSqlQuery($sQuery, $aColumns, $aColumnTypes, $aColumnHeaders, "610", $aLinkURLs, $aDBColumnArray,$aQueryStringVariableNames); | |
| 163 | + $oPatternTableSqlQuery = & new PatternTableSqlQuery(array($sQuery, $iTestFolderID), $aColumns, $aColumnTypes, $aColumnHeaders, "610", $aLinkURLs, $aDBColumnArray,$aQueryStringVariableNames); | |
| 147 | 164 | $oPatternTableSqlQuery->setTableHeading("Folder Permissions"); |
| 148 | 165 | $oPatternTableSqlQuery->setDisplayColumnHeadings(true); |
| 166 | + if ($bDisabled === true) { | |
| 167 | + $oPatternTableSqlQuery->setDisabled($bDisabled); | |
| 168 | + $oPatternTableSqlQuery->setTableHeading("Folder Permissions (inherited)"); | |
| 169 | + } | |
| 149 | 170 | |
| 150 | 171 | $sToRender .= "<table>"; |
| 151 | 172 | $sToRender .= "<tr><td>" . $oPatternTableSqlQuery->render() . "</td></tr>"; | ... | ... |