Commit 85c04b6458f1fe79aa74fa93716db5ca763fea2d

Authored by Neil Blakey-Milner
1 parent c18f231a

Make it possible to copy inherited permissions directly onto folder


git-svn-id: https://kt-dms.svn.sourceforge.net/svnroot/kt-dms/trunk@3067 c91229c3-7414-0410-bfa2-8a42b809f60b
config/siteMap.inc
... ... @@ -60,6 +60,7 @@ $default->siteMap->addPage("addFolder", "/presentation/lookAndFeel/knowledgeTree
60 60 $default->siteMap->addPage("addFolderDocType", "/presentation/lookAndFeel/knowledgeTree/foldermanagement/addFolderDocTypeBL.php", "Manage Documents", User, "");
61 61 $default->siteMap->addPage("deleteFolderDocType", "/presentation/lookAndFeel/knowledgeTree/foldermanagement/deleteFolderDocTypeBL.php", "Manage Documents", User, "");
62 62 $default->siteMap->addPage("editFolder", "/presentation/lookAndFeel/knowledgeTree/foldermanagement/editBL.php", "Manage Documents", User, _("Modify Folder Properties"));
  63 +$default->siteMap->addPage("copyFolderPermissions", "/presentation/lookAndFeel/knowledgeTree/foldermanagement/copyInheritedPermissionsBL.php", "Manage Documents", User, _("Copy Inherited Folder Permissions"), false);
63 64 $default->siteMap->addPage("modifyFolderData", "/presentation/lookAndFeel/knowledgeTree/foldermanagement/modifyFolderDataBL.php", "Manage Documents", User, "Modify Folder Data", false);
64 65 $default->siteMap->addPage("deleteFolder", "/presentation/lookAndFeel/knowledgeTree/foldermanagement/deleteFolderBL.php", "Manage Documents", User, _("Delete Current Folder"));
65 66  
... ...
presentation/lookAndFeel/knowledgeTree/foldermanagement/copyInheritedPermissionsBL.php 0 → 100644
  1 +<?php
  2 +/**
  3 + * $Id$
  4 + *
  5 + * Business logic used to edit folder properties
  6 + *
  7 + * Expected form variables:
  8 + * o $fFolderID - primary key of folder user is currently browsing
  9 + *
  10 + * Copyright (c) 2003 Jam Warehouse http://www.jamwarehouse.com
  11 + *
  12 + * This program is free software; you can redistribute it and/or modify
  13 + * it under the terms of the GNU General Public License as published by
  14 + * the Free Software Foundation; either version 2 of the License, or
  15 + * (at your option) any later version.
  16 + *
  17 + * This program is distributed in the hope that it will be useful,
  18 + * but WITHOUT ANY WARRANTY; without even the implied warranty of
  19 + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
  20 + * GNU General Public License for more details.
  21 + *
  22 + * You should have received a copy of the GNU General Public License
  23 + * along with this program; if not, write to the Free Software
  24 + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
  25 + *
  26 + * @version $Revision$
  27 + * @author Rob Cherry, Jam Warehouse (Pty) Ltd, South Africa
  28 + * @package foldermanagement
  29 + */
  30 +
  31 +require_once("../../../../config/dmsDefaults.php");
  32 +
  33 +KTUtil::extractGPC('fInheritedFolderID', 'fFolderID');
  34 +
  35 +if (!checkSession()) {
  36 + exit(0);
  37 +}
  38 +
  39 +require_once("$default->fileSystemRoot/lib/visualpatterns/PatternListBox.inc");
  40 +require_once("$default->fileSystemRoot/lib/visualpatterns/PatternEditableListFromQuery.inc");
  41 +require_once("$default->fileSystemRoot/lib/visualpatterns/PatternListFromQuery.inc");
  42 +require_once("editUI.inc");
  43 +require_once("$default->fileSystemRoot/lib/security/Permission.inc");
  44 +require_once("$default->fileSystemRoot/lib/visualpatterns/PatternCustom.inc");
  45 +require_once("$default->fileSystemRoot/lib/foldermanagement/Folder.inc");
  46 +require_once("$default->fileSystemRoot/presentation/lookAndFeel/knowledgeTree/foldermanagement/folderUI.inc");
  47 +require_once("$default->fileSystemRoot/presentation/Html.inc");
  48 +require_once("$default->fileSystemRoot/presentation/webpageTemplate.inc");
  49 +
  50 +$oPatternCustom = & new PatternCustom();
  51 +
  52 +if (!isset($fFolderID)) {
  53 + $oPatternCustom->setHtml("<a href=\"javascript:history.go(-1)\"><img src=\"" . KTHtml::getBackButton() . "\" border=\"0\" /></a>\n");
  54 + $main->setErrorMessage(_("No folder currently selected"));
  55 + $main->setCentralPayload($oPatternCustom);
  56 + $main->render();
  57 + exit(0);
  58 +}
  59 +
  60 +$oFolder = Folder::get($fFolderID);
  61 +if (!$oFolder) {
  62 + // folder doesn't exist
  63 + $oPatternCustom->setHtml("<a href=\"javascript:history.go(-1)\"><img src=\"" . KTHtml::getBackButton() . "\" border=\"0\" /></a>\n");
  64 + $main->setErrorMessage(_("The folder you're trying to modify does not exist in the DMS"));
  65 + $main->setCentralPayload($oPatternCustom);
  66 + $main->render();
  67 + exit(0);
  68 +}
  69 +
  70 +if (!isset($fInheritedFolderID)) {
  71 + //else display an error message
  72 + $oPatternCustom->setHtml("<a href=\"javascript:history.go(-1)\"><img src=\"" . KTHtml::getBackButton() . "\" border=\"0\" /></a>\n");
  73 + $main->setErrorMessage(_("No inherited folder given"));
  74 + $main->setCentralPayload($oPatternCustom);
  75 + $main->render();
  76 + exit(0);
  77 +}
  78 +
  79 +$oInheritedFolder = Folder::get($fInheritedFolderID);
  80 +if (!$oInheritedFolder) {
  81 + //else display an error message
  82 + $oPatternCustom->setHtml("<a href=\"javascript:history.go(-1)\"><img src=\"" . KTHtml::getBackButton() . "\" border=\"0\" /></a>\n");
  83 + $main->setErrorMessage(_("The inherited folder given does not exist in the DMS"));
  84 + $main->setCentralPayload($oPatternCustom);
  85 + $main->render();
  86 + exit(0);
  87 +}
  88 +
  89 +//if the user can edit the folder
  90 +if (!Permission::userHasFolderWritePermission($oFolder)) {
  91 + //user does not have write permission for this folder,
  92 + $oPatternCustom->setHtml("<a href=\"javascript:history.go(-1)\"><img src=\"" . KTHtml::getBackButton() . "\" border=\"0\" /></a>\n");
  93 + $main->setErrorMessage(_("You do not have permission to edit this folder"));
  94 + $main->setCentralPayload($oPatternCustom);
  95 + $main->render();
  96 + exit(0);
  97 +}
  98 +
  99 +$sQuery = DBUtil::compactQuery("
  100 +SELECT
  101 + GFL.group_id AS group_id,
  102 + GFL.can_read AS can_read,
  103 + GFL.can_write AS can_write
  104 +FROM
  105 + $default->groups_folders_table AS GFL
  106 +WHERE GFL.folder_id = ?");
  107 +$aParams = array($fInheritedFolderID);
  108 +$aPermissions = DBUtil::getResultArray(array($sQuery, $aParams));
  109 +
  110 +if (PEAR::isError($aPermissions)) {
  111 + $oPatternCustom->setHtml("<a href=\"javascript:history.go(-1)\"><img src=\"" . KTHtml::getBackButton() . "\" border=\"0\" /></a>\n");
  112 + $main->setErrorMessage(_("Error retrieving folder permissions"));
  113 + $main->setCentralPayload($oPatternCustom);
  114 + $main->render();
  115 + exit(0);
  116 +}
  117 +
  118 +foreach ($aPermissions as $aRow) {
  119 + $aRow['folder_id'] = $fFolderID;
  120 + $res = DBUtil::autoInsert($default->groups_folders_table, $aRow);
  121 + if (PEAR::isError($res)) {
  122 + $oPatternCustom->setHtml("<a href=\"javascript:history.go(-1)\"><img src=\"" . KTHtml::getBackButton() . "\" border=\"0\" /></a>\n");
  123 + $main->setErrorMessage(_("Error saving folder permissions"));
  124 + $main->setCentralPayload($oPatternCustom);
  125 + $main->render();
  126 + exit(0);
  127 + }
  128 +}
  129 +
  130 +controllerRedirect("editFolder", "fFolderID=$fFolderID&fShowSection=folderPermissions");
  131 +
  132 +?>
... ...
presentation/lookAndFeel/knowledgeTree/foldermanagement/editUI.inc
... ... @@ -180,7 +180,9 @@ function getFolderGroupAccess($iFolderID, $sDivName) {
180 180 $sToRender .= '<tr><td>Inherited from: <span style="background-color: ' . $sTDBGColour . ';">';
181 181  
182 182 $sToRender .= displayFolderPathLink(Folder::getFolderPathAsArray($iInheritedFolderID), Folder::getFolderPathNamesAsArray($iInheritedFolderID), "$default->rootUrl/control.php?action=editFolder");
183   - $sToRender .= "</span></td></tr>";
  183 + $sToRender .= "</span>";
  184 + $sToRender .= " (" . generateLink("/control.php", "action=copyFolderPermissions&fFolderID=$iFolderID&fInheritedFolderID=$iInheritedFolderID", _("Copy")) . ")";
  185 + $sToRender .= "</td></tr>";
184 186 } else {
185 187 $sToRender .= "<tr><td><a href=\"$default->rootUrl/control.php?action=addGroupFolderLink&fFolderID=$iFolderID\"><img src=\"" . KTHtml::getAddButton() . "\" border=\"0\" /></a></td></tr>";
186 188 }
... ...