Commit 2f59a956ad2d64e1cb5620adbf25f7c587409788

Authored by Michael Joseph
1 parent e10579f9

adding group folder access stuff


git-svn-id: https://kt-dms.svn.sourceforge.net/svnroot/kt-dms/trunk@1287 c91229c3-7414-0410-bfa2-8a42b809f60b
presentation/lookAndFeel/knowledgeTree/foldermanagement/addGroupFolderLinkBL.php 0 → 100644
  1 +<?php
  2 +/**
  3 + * $Id$
  4 + *
  5 + * Business logic for adding folder access
  6 + * addFolderAccessUI.inc for presentation information
  7 + *
  8 + * Licensed under the GNU GPL. For full terms see the file COPYING.
  9 + *
  10 + * Expected form variables:
  11 + * o $fFolderID - primary key of folder user is currently editing
  12 + *
  13 + * @version $Revision$
  14 + * @author Michael Joseph <michael@jamwarehouse.com>, Jam Warehouse (Pty) Ltd, South Africa
  15 + * @package presentation.lookAndFeel.knowledgeTree.foldermanagement
  16 + */
  17 +require_once("../../../../config/dmsDefaults.php");
  18 +include_once("$default->fileSystemRoot/lib/foldermanagement/Folder.inc");
  19 +include_once("$default->fileSystemRoot/lib/security/permission.inc");
  20 +include_once("$default->fileSystemRoot/lib/users/User.inc");
  21 +include_once("$default->fileSystemRoot/lib/groups/GroupFolderLink.inc");
  22 +include_once("$default->fileSystemRoot/presentation/Html.inc");
  23 +include_once("$default->fileSystemRoot/lib/visualpatterns/PatternListBox.inc");
  24 +include_once("$default->fileSystemRoot/lib/visualpatterns/PatternCustom.inc");
  25 +include_once("$default->fileSystemRoot/presentation/lookAndFeel/knowledgeTree/foldermanagement/folderUI.inc");
  26 +include_once("groupFolderLinkUI.inc");
  27 +
  28 +if (checkSession()) {
  29 + if (isset($fFolderID)) {
  30 + $oPatternCustom = & new PatternCustom();
  31 + $oPatternCustom->setHtml("");
  32 + // if a folder has been selected
  33 + if (Permission::userHasFolderWritePermission($fFolderID)) {
  34 + // can only add access if the user has folder write permission
  35 + if (isset($fForStore)) {
  36 + // attempt to create the new folder access entry
  37 + $oGroupFolderLink = & new GroupFolderLink($fFolderID, $fGroupID, $fCanRead, $fCanWrite);
  38 + // check if exists for the fFolderID, fGroupID combination
  39 + if (!$oGroupFolderLink->exists()) {
  40 + if ($oGroupFolderLink->create()) {
  41 + // on successful creation, redirect to the folder edit page
  42 + redirect("$default->rootUrl/control.php?action=editFolder&fFolderID=$fFolderID");
  43 + } else {
  44 + //otherwise display an error message
  45 + $sErrorMessage = "The folder access entry could not be created in the database";
  46 + $oPatternCustom->setHtml(getPage($fFolderID));
  47 + }
  48 + } else {
  49 + $sErrorMessage = "A folder access entry for the selected folder and group already exists.";
  50 + $oPatternCustom->setHtml(renderErrorPage($sErrorMessage, $fFolderID));
  51 + }
  52 + } else {
  53 + // display the browse page
  54 + $oPatternCustom->setHtml(getAddPage($fFolderID));
  55 + }
  56 + }
  57 + } else {
  58 + //display an error message
  59 + $sErrorMessage = "No folder currently selected";
  60 + }
  61 +
  62 + include_once("$default->fileSystemRoot/presentation/webpageTemplate.inc");
  63 + $main->setCentralPayload($oPatternCustom);
  64 + $main->setFormAction($_SERVER["PHP_SELF"] . "?fFolderID=$fFolderID&fForStore=1");
  65 + $main->setHasRequiredFields(true);
  66 + $main->render();
  67 +}
  68 +?>
... ...
presentation/lookAndFeel/knowledgeTree/foldermanagement/deleteGroupFolderLinkBL.php 0 → 100644
  1 +<?php
  2 +/**
  3 + * $Id$
  4 + *
  5 + * Business logic for deleting a folder access entry
  6 + * addFolderAccessUI.inc for presentation information
  7 + *
  8 + * Licensed under the GNU GPL. For full terms see the file COPYING.
  9 + *
  10 + * Expected form variables:
  11 + * o $fFolderID - primary key of folder user is currently editing
  12 + * o $fGroupFolderLinkID - primary key of group folder link user to delete
  13 + *
  14 + * @version $Revision$
  15 + * @author Michael Joseph <michael@jamwarehouse.com>, Jam Warehouse (Pty) Ltd, South Africa
  16 + * @package presentation.lookAndFeel.knowledgeTree.foldermanagement
  17 + */
  18 +
  19 +require_once("../../../../config/dmsDefaults.php");
  20 +include_once("$default->fileSystemRoot/lib/foldermanagement/Folder.inc");
  21 +include_once("$default->fileSystemRoot/lib/security/permission.inc");
  22 +include_once("$default->fileSystemRoot/lib/groups/GroupFolderLink.inc");
  23 +include_once("$default->fileSystemRoot/lib/groups/Group.inc");
  24 +include_once("$default->fileSystemRoot/lib/roles/Role.inc");
  25 +include_once("$default->fileSystemRoot/lib/visualpatterns/PatternListBox.inc");
  26 +include_once("$default->fileSystemRoot/lib/visualpatterns/PatternCustom.inc");
  27 +include_once("$default->fileSystemRoot/presentation/lookAndFeel/knowledgeTree/foldermanagement/folderUI.inc");
  28 +include_once("$default->fileSystemRoot/presentation/Html.inc");
  29 +include_once("groupFolderLinkUI.inc");
  30 +
  31 +if (checkSession()) {
  32 + if (isset($fFolderID) && isset($fGroupFolderLinkID)) {
  33 + // if a folder has been selected
  34 + $oPatternCustom = & new PatternCustom();
  35 + $oPatternCustom->setHtml("");
  36 + if (Permission::userHasFolderWritePermission($fFolderID)) {
  37 + // can only delete group folder links if the user has folder write permission
  38 + if (isset($fForDelete)) {
  39 + $oGroupFolderLink = & GroupFolderLink::get($fGroupFolderLinkID);
  40 + if ($oGroupFolderLink->delete()) {
  41 + // on successful deletion, redirect to the folder edit page
  42 + redirect("$default->rootUrl/control.php?action=editFolder&fFolderID=$fFolderID");
  43 + } else {
  44 + // otherwise display an error message
  45 + $sErrorMessage = "The folder access entry could not be deleted from the database";
  46 + $oGroupFolderLink = & GroupFolderLink::get($fGroupFolderLinkID);
  47 + $oPatternCustom->setHtml(getPage($oGroupFolderLink));
  48 + }
  49 + } else {
  50 + $oGroupFolderLink = & GroupFolderLink::get($fGroupFolderLinkID);
  51 + $oPatternCustom->setHtml(getDeletePage($oGroupFolderLink));
  52 + }
  53 + } else {
  54 + // display an error message
  55 + $sErrorMessage = "You don't have permission to delete this folder access entry.";
  56 + }
  57 + } else {
  58 + $sErrorMessage = "No folder currently selected";
  59 + }
  60 +
  61 + include_once("$default->fileSystemRoot/presentation/webpageTemplate.inc");
  62 + $main->setCentralPayload($oPatternCustom);
  63 + if (isset($sErrorMessage)) {
  64 + $main->setErrorMessage($sErrorMessage);
  65 + }
  66 + $main->setFormAction($_SERVER["PHP_SELF"] . "?fFolderID=$fFolderID&fGroupFolderLinkID=$fGroupFolderLinkID&fForDelete=1");
  67 + $main->setHasRequiredFields(true);
  68 + $main->render();
  69 +}
  70 +?>
... ...
presentation/lookAndFeel/knowledgeTree/foldermanagement/editGroupFolderLinkBL.php 0 → 100644
  1 +<?php
  2 +/**
  3 + * $Id$
  4 + *
  5 + * Business logic for editing a folder access entry
  6 + * groupFolderLinkUI.inc for presentation information
  7 + *
  8 + * Licensed under the GNU GPL. For full terms see the file COPYING.
  9 + *
  10 + * Expected form variables:
  11 + * o $fFolderID - primary key of folder user is currently editing
  12 + * o $fGroupFolderLinkID - primary key of group folder link user to delete
  13 + *
  14 + * @version $Revision$
  15 + * @author Michael Joseph <michael@jamwarehouse.com>, Jam Warehouse (Pty) Ltd, South Africa
  16 + * @package presentation.lookAndFeel.knowledgeTree.foldermanagement
  17 + */
  18 +
  19 +require_once("../../../../config/dmsDefaults.php");
  20 +include_once("$default->fileSystemRoot/lib/foldermanagement/Folder.inc");
  21 +include_once("$default->fileSystemRoot/lib/security/permission.inc");
  22 +include_once("$default->fileSystemRoot/lib/groups/GroupFolderLink.inc");
  23 +include_once("$default->fileSystemRoot/lib/groups/Group.inc");
  24 +include_once("$default->fileSystemRoot/lib/roles/Role.inc");
  25 +include_once("$default->fileSystemRoot/lib/visualpatterns/PatternListBox.inc");
  26 +include_once("$default->fileSystemRoot/lib/visualpatterns/PatternCustom.inc");
  27 +include_once("$default->fileSystemRoot/lib/visualpatterns/PatternEditableListFromQuery.inc");
  28 +include_once("$default->fileSystemRoot/presentation/lookAndFeel/knowledgeTree/foldermanagement/folderUI.inc");
  29 +include_once("$default->fileSystemRoot/presentation/Html.inc");
  30 +include_once("groupFolderLinkUI.inc");
  31 +
  32 +if (checkSession()) {
  33 + if (isset($fFolderID) && isset($fGroupFolderLinkID)) {
  34 + // if a folder has been selected
  35 + $oPatternCustom = & new PatternCustom();
  36 + $oPatternCustom->setHtml("");
  37 + if (Permission::userHasFolderWritePermission($fFolderID)) {
  38 + // can only edit group folder links if the user has folder write permission
  39 + if (isset($fForStore)) {
  40 + $oGroupFolderLink = & GroupFolderLink::get($fGroupFolderLinkID);
  41 + $oGroupFolderLink->setCanRead($fCanRead);
  42 + $oGroupFolderLink->setCanWrite($fCanWrite);
  43 + if ($oGroupFolderLink->update()) {
  44 + // on successful deletion, redirect to the folder edit page
  45 + redirect("$default->rootUrl/control.php?action=editFolder&fFolderID=$fFolderID");
  46 + } else {
  47 + // otherwise display an error message
  48 + $sErrorMessage = "The folder access entry could not be deleted from the database";
  49 + $oGroupFolderLink = & GroupFolderLink::get($fGroupFolderLinkID);
  50 + $oPatternCustom->setHtml(getEditPage($oGroupFolderLink));
  51 + }
  52 + } else {
  53 + $oGroupFolderLink = & GroupFolderLink::get($fGroupFolderLinkID);
  54 + $oPatternCustom->setHtml(getEditPage($oGroupFolderLink));
  55 + }
  56 + } else {
  57 + // display an error message
  58 + $sErrorMessage = "You don't have permission to delete this folder access entry.";
  59 + }
  60 + } else {
  61 + $sErrorMessage = "No folder currently selected";
  62 + }
  63 +
  64 + include_once("$default->fileSystemRoot/presentation/webpageTemplate.inc");
  65 + $main->setCentralPayload($oPatternCustom);
  66 + if (isset($sErrorMessage)) {
  67 + $main->setErrorMessage($sErrorMessage);
  68 + }
  69 + $main->setFormAction($_SERVER["PHP_SELF"] . "?fFolderID=$fFolderID&fGroupFolderLinkID=$fGroupFolderLinkID&fForStore=1");
  70 + $main->setHasRequiredFields(true);
  71 + $main->render();
  72 +}
  73 +?>
... ...
presentation/lookAndFeel/knowledgeTree/foldermanagement/groupFolderLinkUI.inc 0 → 100644
  1 +<?php
  2 +/**
  3 + * Presentation information for adding folder access
  4 + * Used by addFolderAccessBL.php
  5 + *
  6 + * @version $Revision$
  7 + * @author Michael Joseph <michael@jamwarehouse.com>, Jam Warehouse (Pty) Ltd, South Africa
  8 + * @package presentation.lookAndFeel.knowledgeTree.foldermanagement
  9 + */
  10 +
  11 +function getDeletePage($oGroupFolderLink) {
  12 + global $default;
  13 + $sToRender .= "<table>\n";
  14 + $sToRender .= "<tr>\n";
  15 + $sToRender .= "<td>Group</td><td>" . Group::getGroupName($oGroupFolderLink->getGroupID()) . "</td>\n";
  16 + $sToRender .= "</tr>\n";
  17 + $sToRender .= "<tr>\n";
  18 + $sToRender .= "<td>Access</td><td>" . getAccessCheckBoxes(true, $oGroupFolderLink->getCanRead(), $oGroupFolderLink->getCanWrite()) . "</td>\n";
  19 + $sToRender .= "</tr>\n";
  20 + $sToRender .= "<tr>\n";
  21 + $sToRender .= "<td><table><tr><td><input type=\"image\" src=\"$default->graphicsUrl/widgets/delete.gif\" /></td><td><a href=\"$default->rootUrl/control.php?action=editFolder&fFolderID=" . $oGroupFolderLink->getFolderID() . "\"><img src=\"$default->graphicsUrl/widgets/cancel.gif\" border=\"0\" /></a></td></tr></table></td>\n";
  22 + $sToRender .= "</tr>\n";
  23 + $sToRender .= "<table>\n";
  24 +
  25 +
  26 + $sToRender .= "\n\n<script language=\"javascript\">\n<!--\n";
  27 + $sToRender .= "function validateForm(theForm) {\n";
  28 + $sToRender .= "\t return confirm('Are you sure you wish to delete this folder access entry?');}\n";
  29 + $sToRender .= "//-->\n</script>\n\n";
  30 +
  31 + return $sToRender;
  32 +}
  33 +
  34 +function getEditPage($oGroupFolderLink) {
  35 + global $default;
  36 + $sToRender .= "<table>\n";
  37 + $sToRender .= "<tr>\n";
  38 + $sToRender .= "<td>Group</td><td>" . getGroupDropDown($oGroupFolderLink->getGroupID()) . "</td>\n";
  39 + $sToRender .= "</tr>\n";
  40 + $sToRender .= "<tr>\n";
  41 + $sToRender .= "<td>Access</td><td>" . getAccessCheckBoxes(false, $oGroupFolderLink->getCanRead(), $oGroupFolderLink->getCanWrite()) . "</td>\n";
  42 + $sToRender .= "</tr>\n";
  43 + $sToRender .= "<tr>\n";
  44 + $sToRender .= "<td><table><tr><td><input type=\"image\" src=\"$default->graphicsUrl/widgets/update.gif\" /></td><td><a href=\"$default->rootUrl/control.php?action=editFolder&fFolderID=" . $oGroupFolderLink->getFolderID() . "\"><img src=\"$default->graphicsUrl/widgets/cancel.gif\" border=\"0\" /></a></td></tr></table></td>\n";
  45 + $sToRender .= "</tr>\n";
  46 + $sToRender .= "<table>\n";
  47 +
  48 + $sToRender .= "\n\n<script language=\"javascript\">\n<!--\n";
  49 + $sToRender .= "function validateForm(theForm) {\n";
  50 + $sToRender .= "\tif (!theForm.fCanRead.checked && !theForm.fCanWrite.checked) {\n";
  51 + $sToRender .= "\t\talert('You must select either read or write access'); return false;\n\t}\n";
  52 + $sToRender .= "return true;\n}\n";
  53 + $sToRender .= "//-->\n</script>\n\n";
  54 +
  55 + return $sToRender;
  56 +}
  57 +
  58 +function getAddPage($iFolderID) {
  59 + global $default;
  60 + $sToRender .= "<table>\n";
  61 + $sToRender .= "<tr>\n";
  62 + $sToRender .= "<td>Group</td><td>" . getGroupDropDown() . "</td>\n";
  63 + $sToRender .= "</tr>\n";
  64 + $sToRender .= "<tr>\n";
  65 + $sToRender .= "<td>Access</td><td>" . getAccessCheckBoxes(false) . "</td>\n";
  66 + $sToRender .= "</tr>\n";
  67 + $sToRender .= "<tr>\n";
  68 + $sToRender .= "<td><table><tr><td><input type=\"image\" src=\"$default->graphicsUrl/widgets/add.gif\" /></td><td><a href=\"$default->rootUrl/control.php?action=editFolder&fFolderID=$iFolderID\"><img src=\"$default->graphicsUrl/widgets/cancel.gif\" border=\"0\" /></a></td></tr></table></td>\n";
  69 + $sToRender .= "</tr>\n";
  70 + $sToRender .= "<table>\n";
  71 +
  72 + $sToRender .= "\n\n<script language=\"javascript\">\n<!--\n";
  73 + $sToRender .= "function validateForm(theForm) {\n";
  74 + $sToRender .= "\tif (!theForm.fCanRead.checked && !theForm.fCanWrite.checked) {\n";
  75 + $sToRender .= "\t\talert('You must select either read or write access'); return false;\n\t}\n";
  76 + $sToRender .= "return true;\n}\n";
  77 + $sToRender .= "//-->\n</script>\n\n";
  78 +
  79 + return $sToRender;
  80 +}
  81 +
  82 +function getAccessCheckBoxes($bReadOnly, $fCanRead = false, $fCanWrite = false) {
  83 + return "<input name=\"fCanRead\" type=\"checkbox\" " . ($bReadOnly ? "disabled " : "") . ($fCanRead ? "checked" : "") . "/>Read\n" .
  84 + "<input name=\"fCanWrite\" type=\"checkbox\" " . ($bReadOnly ? "disabled " : "") . ($fCanWrite ? "checked" : "") . "/>Write\n";
  85 +}
  86 +
  87 +function getFolderPath($iFolderID) {
  88 + global $default;
  89 + return displayFolderPathLink(Folder::getFolderPathAsArray($iFolderID), Folder::getFolderPathNamesAsArray($iFolderID), "$default->rootUrl/control.php?action=browse");
  90 +}
  91 +
  92 +function getGroupDropDown($iGroupID = -1) {
  93 + global $default;
  94 + if (Permission::userIsSystemAdministrator()) {
  95 + $oPatternListBox = & new PatternListBox("$default->owl_groups_table", "name", "id", "fGroupID");
  96 + } else {
  97 + $oPatternListBox = & new PatternListBox("$default->owl_groups_table", "name", "id", "fGroupID", "GUL.unit_id=" . User::getUnitID($_SESSION["userID"]));
  98 + $oPatternListBox->setFromClause("INNER JOIN $default->owl_groups_units_table AS GUL ON ST.id = GUL.group_id");
  99 + }
  100 + $oPatternListBox->setEmptyErrorMessage("There are no groups");
  101 + $oPatternListBox->setIncludeDefaultValue(false);
  102 + if ($iGroupID != -1) {
  103 + $oPatternListBox->setWhereClause("ST.id = $iGroupID");
  104 + }
  105 + return $oPatternListBox->render();
  106 +}
  107 +
  108 +function renderErrorPage($sErrorMessage, $fFolderID) {
  109 + global $default;
  110 + return "<p class=\"errorText\">$sErrorMessage</p>\n" .
  111 + "<a href=\"$default->rootUrl/control.php?action=editFolder&fFolderID=$fFolderID\"><img src=\"$default->graphicsUrl/widgets/back.gif\" border=\"0\"/></a>\n";
  112 +}
  113 +?>
... ...