Commit 5ad9fc21187c8c83444af11f4a02e648bdf333a0

Authored by nbm
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
presentation/lookAndFeel/knowledgeTree/foldermanagement/editUI.inc
@@ -134,7 +134,24 @@ function getFolderGroupAccess($iFolderID, $sDivName) { @@ -134,7 +134,24 @@ function getFolderGroupAccess($iFolderID, $sDivName) {
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 " . 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 "FROM $default->groups_folders_table AS GFL " . 135 "FROM $default->groups_folders_table AS GFL " .
136 "INNER JOIN $default->groups_table AS GL ON GFL.group_id = GL.id " . 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 $aColumns = array("group_name", "can_read", "can_write", "edit", "del"); 156 $aColumns = array("group_name", "can_read", "can_write", "edit", "del");
140 $aColumnHeaders = array(_("Group"), _("Read"), _("Write"), "", ""); 157 $aColumnHeaders = array(_("Group"), _("Read"), _("Write"), "", "");
@@ -143,9 +160,13 @@ function getFolderGroupAccess($iFolderID, $sDivName) { @@ -143,9 +160,13 @@ function getFolderGroupAccess($iFolderID, $sDivName) {
143 $aQueryStringVariableNames = array("fGroupFolderLinkID", "fFolderID"); 160 $aQueryStringVariableNames = array("fGroupFolderLinkID", "fFolderID");
144 $aLinkURLs = array(3=>"$default->rootUrl/control.php?action=modifyGroupFolderLink",4=>"$default->rootUrl/control.php?action=deleteGroupFolderLink"); 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 $oPatternTableSqlQuery->setTableHeading("Folder Permissions"); 164 $oPatternTableSqlQuery->setTableHeading("Folder Permissions");
148 $oPatternTableSqlQuery->setDisplayColumnHeadings(true); 165 $oPatternTableSqlQuery->setDisplayColumnHeadings(true);
  166 + if ($bDisabled === true) {
  167 + $oPatternTableSqlQuery->setDisabled($bDisabled);
  168 + $oPatternTableSqlQuery->setTableHeading("Folder Permissions (inherited)");
  169 + }
149 170
150 $sToRender .= "<table>"; 171 $sToRender .= "<table>";
151 $sToRender .= "<tr><td>" . $oPatternTableSqlQuery->render() . "</td></tr>"; 172 $sToRender .= "<tr><td>" . $oPatternTableSqlQuery->render() . "</td></tr>";