From 187aea5c4e96bc4dc22e4cc6cf78369719d7d080 Mon Sep 17 00:00:00 2001 From: Brad Shuttleworth Date: Wed, 23 Nov 2005 13:58:01 +0000 Subject: [PATCH] merge in role management. --- config/siteMap.inc | 2 +- lib/roles/Role.inc | 8 +++++--- plugins/ktcore/KTAdminPlugins.php | 5 +++++ presentation/lookAndFeel/knowledgeTree/administration/permissions/managePermissions.php | 25 ++++++++++++++++++++----- presentation/lookAndFeel/knowledgeTree/administration/rolemanagement/addRoleBL.php | 47 ----------------------------------------------- presentation/lookAndFeel/knowledgeTree/administration/rolemanagement/addRoleUI.inc | 57 --------------------------------------------------------- presentation/lookAndFeel/knowledgeTree/administration/rolemanagement/editRoleBL.php | 104 -------------------------------------------------------------------------------------------------------- presentation/lookAndFeel/knowledgeTree/administration/rolemanagement/editRoleSuccess.php | 55 ------------------------------------------------------- presentation/lookAndFeel/knowledgeTree/administration/rolemanagement/editRoleUI.inc | 235 ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- presentation/lookAndFeel/knowledgeTree/administration/rolemanagement/listRolesBL.php | 49 ------------------------------------------------- presentation/lookAndFeel/knowledgeTree/administration/rolemanagement/listRolesUI.inc | 58 ---------------------------------------------------------- presentation/lookAndFeel/knowledgeTree/administration/rolemanagement/removeRoleBL.php | 73 ------------------------------------------------------------------------- presentation/lookAndFeel/knowledgeTree/administration/rolemanagement/removeRoleUI.inc | 157 ------------------------------------------------------------------------------------------------------------------------------------------------------------- presentation/lookAndFeel/knowledgeTree/administration/rolemanagement/roleManagement.php | 135 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ templates/ktcore/manage_permissions.smarty | 95 ++++++++++++++++++++++++++++++++++++++++++++++++----------------------------------------------- templates/ktcore/principals/roleadmin.smarty | 72 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 16 files changed, 286 insertions(+), 891 deletions(-) delete mode 100644 presentation/lookAndFeel/knowledgeTree/administration/rolemanagement/addRoleBL.php delete mode 100644 presentation/lookAndFeel/knowledgeTree/administration/rolemanagement/addRoleUI.inc delete mode 100644 presentation/lookAndFeel/knowledgeTree/administration/rolemanagement/editRoleBL.php delete mode 100644 presentation/lookAndFeel/knowledgeTree/administration/rolemanagement/editRoleSuccess.php delete mode 100644 presentation/lookAndFeel/knowledgeTree/administration/rolemanagement/editRoleUI.inc delete mode 100644 presentation/lookAndFeel/knowledgeTree/administration/rolemanagement/listRolesBL.php delete mode 100644 presentation/lookAndFeel/knowledgeTree/administration/rolemanagement/listRolesUI.inc delete mode 100644 presentation/lookAndFeel/knowledgeTree/administration/rolemanagement/removeRoleBL.php delete mode 100644 presentation/lookAndFeel/knowledgeTree/administration/rolemanagement/removeRoleUI.inc create mode 100644 presentation/lookAndFeel/knowledgeTree/administration/rolemanagement/roleManagement.php create mode 100644 templates/ktcore/principals/roleadmin.smarty diff --git a/config/siteMap.inc b/config/siteMap.inc index 3d1d30b..7686efa 100644 --- a/config/siteMap.inc +++ b/config/siteMap.inc @@ -114,7 +114,7 @@ $default->siteMap->addPage("doccheckoutManagement", "/presentation/lookAndFeel/k $default->siteMap->addPage("newsManagement", "/presentation/lookAndFeel/knowledgeTree/administration/news/listNewsBL.php", "Administration", SysAdmin, _("Dashboard News Management"), true, 10); $default->siteMap->addPage("linkManagement", "/presentation/lookAndFeel/knowledgeTree/administration/linkmanagement/listLinksBL.php", "Administration", SysAdmin, _("QuickLink Management"), true, 11); -$default->siteMap->addPage("roleManagement", "/presentation/lookAndFeel/knowledgeTree/administration/rolemanagement/listRolesBL.php", "Administration", SysAdmin, _("Role Management"), true, 12); +$default->siteMap->addPage("roleManagement", "/presentation/lookAndFeel/knowledgeTree/administration/admin.php/security/roles", "Administration", SysAdmin, _("Role Management"), true, 12); $default->siteMap->addPage("websiteManagement", "/presentation/lookAndFeel/knowledgeTree/administration/websitemanagement/listWebsitesBL.php", "Administration", SysAdmin, _("Website Management"), true, 13); $default->siteMap->addPage("systemAdministration", "/presentation/lookAndFeel/knowledgeTree/administration/systemsettings/systemSettingsBL.php", "Administration", SysAdmin, _("System Settings"), true, 14); diff --git a/lib/roles/Role.inc b/lib/roles/Role.inc index 27fa611..f65806d 100644 --- a/lib/roles/Role.inc +++ b/lib/roles/Role.inc @@ -47,7 +47,7 @@ class Role extends KTEntity { * @param boolean Role has document write permission * */ - function Role($sNewName, $bNewCanRead, $bNewCanWrite) { + function Role($sNewName = null, $bNewCanRead = false, $bNewCanWrite = false) { //object not yet created in database $this->iId = -1; $this->sName = $sNewName; @@ -114,10 +114,11 @@ class Role extends KTEntity { function delete() { global $default, $lang_err_database, $lang_err_object_key; //only delete the object if it exists in the database + /* if ($this->iId >= 0) { - //check to see if role is linked to a folder + $sql = $default->db; - $query = "SELECT role_id FROM ". $default->groups_folders_approval_table ." WHERE role_id = ?";/*ok*/ + $query = "SELECT role_id FROM ". $default->groups_folders_approval_table ." WHERE role_id = ?"; $aParams = array($this->iId); $sql->query(array($query, $aParams)); $rows = $sql->num_rows($sql); @@ -127,6 +128,7 @@ class Role extends KTEntity { return false; } } + */ return parent::delete(); } diff --git a/plugins/ktcore/KTAdminPlugins.php b/plugins/ktcore/KTAdminPlugins.php index 403d443..2b59652 100644 --- a/plugins/ktcore/KTAdminPlugins.php +++ b/plugins/ktcore/KTAdminPlugins.php @@ -29,8 +29,13 @@ $oAdminRegistry->registerCategory("misc", "Miscellaneous", "Various settings whi $oAdminRegistry->registerLocation("users",'KTUserAdminDispatcher',"principals", "Manage Users","Add or remove users from the system.", KT_DIR . '/presentation/lookAndFeel/knowledgeTree/administration/usermanagement/userManagement.php', null); $oAdminRegistry->registerLocation("groups",'KTGroupAdminDispatcher',"principals", "Manage Groups","Add or remove groups from the system.", KT_DIR . '/presentation/lookAndFeel/knowledgeTree/administration/groupmanagement/groupManagement.php', null); $oAdminRegistry->registerLocation("units",'KTUnitAdminDispatcher',"principals", "Control Units","Specify which organisation units are available.", KT_DIR . '/presentation/lookAndFeel/knowledgeTree/administration/unitmanagement/unitManagement.php', null); +// disabled until it actually makes sense. //$oAdminRegistry->registerLocation("orgs",'KTOrgAdminDispatcher',"principals", "Control Organisations","Specify which organisations are available.", KT_DIR . '/presentation/lookAndFeel/knowledgeTree/administration/orgmanagement/orgManagement.php', null); +// security +$oAdminRegistry->registerLocation("permissions",'ManagePermissionsDispatcher',"security", "Permissions","Create or Delete permissions.", KT_DIR . '/presentation/lookAndFeel/knowledgeTree/administration/permissions/managePermissions.php', null); +$oAdminRegistry->registerLocation("roles",'RoleAdminDispatcher',"security", "Roles","Create or Delete roles (incomplete).", KT_DIR . '/presentation/lookAndFeel/knowledgeTree/administration/rolemanagement/roleManagement.php', null); + // documents $oAdminRegistry->registerLocation("typemanagement",'KTDocumentTypeDispatcher','documents', 'Document Types','Manage the different classes of document which can be added to the system.', KT_DIR . '/presentation/lookAndFeel/knowledgeTree/administration/doctypemanagement/documentTypes.php', null); $oAdminRegistry->registerLocation("fieldmanagement",'KTDocumentFieldDispatcher','documents', 'Document Fieldsets','Control which kinds of documents have which sets of information associated with them.', KT_DIR . '/presentation/lookAndFeel/knowledgeTree/administration/docfieldmanagement/documentFields.php', null); diff --git a/presentation/lookAndFeel/knowledgeTree/administration/permissions/managePermissions.php b/presentation/lookAndFeel/knowledgeTree/administration/permissions/managePermissions.php index 4fb4b07..e8d3a34 100644 --- a/presentation/lookAndFeel/knowledgeTree/administration/permissions/managePermissions.php +++ b/presentation/lookAndFeel/knowledgeTree/administration/permissions/managePermissions.php @@ -1,5 +1,5 @@ 'Administration', action => 'administration'), + ); + function do_main() { + + $this->oPage->setTitle('Manage Permissions'); + $this->aBreadcrumbs[] = array('action' => 'managePermissions', 'name' => 'Manage Permissions'); + + $add_fields = array(); + $add_fields[] = new KTStringWidget('System Name','The internal name used for the permission. This should never be changed.', 'name', null, $this->oPage, true); + $add_fields[] = new KTStringWidget('Human Name','A short name that is shown to users whenever permissions must be assigned.', 'human_name', null, $this->oPage, true); + $oTemplating = new KTTemplating; $aPermissions =& KTPermission::getList(); $oTemplate = $oTemplating->loadTemplate("ktcore/manage_permissions"); $aTemplateData = array( + 'context' => $this, "permissions" => $aPermissions, + 'add_fields' => $add_fields, ); return $oTemplate->render($aTemplateData); } @@ -30,7 +45,7 @@ class ManagePermissionsDispatcher extends KTAdminDispatcher { if (PEAR::isError($oPerm)) { return $this->errorRedirectToMain("Error creating permission"); } - return $this->errorRedirectToMain("Permission created"); + return $this->successRedirectToMain("Permission created"); } function do_deletePermission() { @@ -49,11 +64,11 @@ class ManagePermissionsDispatcher extends KTAdminDispatcher { if (PEAR::isError($res)) { return $this->errorRedirectToMain("Error deleting permission"); } - return $this->errorRedirectToMain("Permission deleted"); + return $this->successRedirectToMain("Permission deleted"); } } -$oDispatcher = new ManagePermissionsDispatcher(); -$oDispatcher->dispatch(); +//$oDispatcher = new ManagePermissionsDispatcher(); +//$oDispatcher->dispatch(); ?> diff --git a/presentation/lookAndFeel/knowledgeTree/administration/rolemanagement/addRoleBL.php b/presentation/lookAndFeel/knowledgeTree/administration/rolemanagement/addRoleBL.php deleted file mode 100644 index f1e18b4..0000000 --- a/presentation/lookAndFeel/knowledgeTree/administration/rolemanagement/addRoleBL.php +++ /dev/null @@ -1,47 +0,0 @@ -fileSystemRoot/lib/visualpatterns/PatternListBox.inc"); -require_once("$default->fileSystemRoot/lib/visualpatterns/PatternCreate.inc"); -require_once("$default->fileSystemRoot/lib/security/Permission.inc"); -require_once("$default->fileSystemRoot/lib/visualpatterns/PatternCustom.inc"); -require_once("$default->fileSystemRoot/lib/foldermanagement/Folder.inc"); -require_once("$default->fileSystemRoot/presentation/lookAndFeel/knowledgeTree/foldermanagement/folderUI.inc"); -require_once("$default->fileSystemRoot/presentation/Html.inc"); -require_once("$default->fileSystemRoot/presentation/lookAndFeel/knowledgeTree/administration/adminUI.inc"); -require_once("addRoleUI.inc"); - -if (checkSession()) { - require_once("$default->fileSystemRoot/presentation/webpageTemplate.inc"); - $oPatternCustom = & new PatternCustom(); - $oPatternCustom->setHtml(getPage()); - $main->setCentralPayload($oPatternCustom); - $main->setFormAction("$default->rootUrl/presentation/lookAndFeel/knowledgeTree/create.php?fRedirectURL=".urlencode("$default->rootUrl/control.php?action=editRole&fFromCreate=1&fRoleID=")); - $main->setHasRequiredFields(true); - $main->render(); -} -?> \ No newline at end of file diff --git a/presentation/lookAndFeel/knowledgeTree/administration/rolemanagement/addRoleUI.inc b/presentation/lookAndFeel/knowledgeTree/administration/rolemanagement/addRoleUI.inc deleted file mode 100644 index 87063b0..0000000 --- a/presentation/lookAndFeel/knowledgeTree/administration/rolemanagement/addRoleUI.inc +++ /dev/null @@ -1,57 +0,0 @@ -setUniqueName("role"); - - $sToRender .= renderHeading(_("Add Role")); - $sToRender .= "\n"; - $sToRender .= "\n"; - $sToRender .= "\n"; - $sToRender .= "\n"; - $sToRender .= "\n"; - $sToRender .= "\n"; - $sToRender .= "\n"; - $sToRender .= "\n"; - $sToRender .= "\n"; - $sToRender .= "\n"; - $sToRender .= "
" . $oPatternCreate->render() . "
"; - $sToRender .= getCancelButton("listRoles") . "
\n"; - - return $sToRender; -} -?> diff --git a/presentation/lookAndFeel/knowledgeTree/administration/rolemanagement/editRoleBL.php b/presentation/lookAndFeel/knowledgeTree/administration/rolemanagement/editRoleBL.php deleted file mode 100644 index 0698ecc..0000000 --- a/presentation/lookAndFeel/knowledgeTree/administration/rolemanagement/editRoleBL.php +++ /dev/null @@ -1,104 +0,0 @@ -fileSystemRoot/lib/visualpatterns/PatternListBox.inc"); - require_once("$default->fileSystemRoot/lib/visualpatterns/PatternEditableListFromQuery.inc"); - require_once("editRoleUI.inc"); - require_once("$default->fileSystemRoot/lib/security/Permission.inc"); - require_once("$default->fileSystemRoot/lib/roles/Role.inc"); - require_once("$default->fileSystemRoot/presentation/webpageTemplate.inc"); - require_once("$default->fileSystemRoot/lib/visualpatterns/PatternCustom.inc"); - require_once("$default->fileSystemRoot/lib/foldermanagement/Folder.inc"); - require_once("$default->fileSystemRoot/presentation/lookAndFeel/knowledgeTree/foldermanagement/folderUI.inc"); - require_once("$default->fileSystemRoot/presentation/Html.inc"); - - - $oPatternCustom = & new PatternCustom(); - - // if a new group has been added - if (isset($fFromCreate)) { - if($fRoleID == -1) { - $oPatternCustom->setHtml(getAddFailPage()); - } else { - controllerRedirect("listRoles"); - } - $_SESSION["pageAccess"][$default->rootUrl . '/presentation/lookAndFeel/knowledgeTree/store.php'] = true; - $main->setFormAction("$default->rootUrl/presentation/lookAndFeel/knowledgeTree/store.php?fReturnURL=" . urlencode("$default->rootUrl/control.php?action=listRoles")); - - // coming from manual edit page - } - else if (isset($fForStore)) { - $oRole = Role::get($fRoleID); - $oRole->setName($fRoleName); - - //check if checkbox checked - if (isset($fActive)) { - $oRole->setActive(true); - } else { - $oRole->setActive(false); - } - //check if checkbox checked - if (isset($fReadable)) { - $oRole->setReadable(true); - } else { - $oRole->setReadable(false); - } - //check if checkbox checked - if (isset($fWriteable)) { - $oRole->setWriteable(true); - } else { - $oRole->setWriteable(false); - } - if ($oRole->update()) { - // if successfull redirec to list page - controllerRedirect("listRoles"); - } else { - // if fail print out fail message - $oPatternCustom->setHtml(getEditPageFail()); - } - } else if (isset($fRoleID)) { - // post back on group select from manual edit page - $oPatternCustom->setHtml(getEditPage($fRoleID)); - $main->setFormAction($_SERVER["PHP_SELF"] . "?fForStore=1"); - - - } else { - // if nothing happens...just reload edit page - $oPatternCustom->setHtml(getEditPage(null)); - $main->setFormAction($_SERVER["PHP_SELF"]); - - } - //render the page - $main->setCentralPayload($oPatternCustom); - $main->setHasRequiredFields(true); - $main->render(); -} -?> diff --git a/presentation/lookAndFeel/knowledgeTree/administration/rolemanagement/editRoleSuccess.php b/presentation/lookAndFeel/knowledgeTree/administration/rolemanagement/editRoleSuccess.php deleted file mode 100644 index a7b5f0d..0000000 --- a/presentation/lookAndFeel/knowledgeTree/administration/rolemanagement/editRoleSuccess.php +++ /dev/null @@ -1,55 +0,0 @@ -fileSystemRoot/presentation/webpageTemplate.inc"); - - $Center .= renderHeading(_("Edit Role")); - $Center .= "\n"; - $Center .= "\n"; - $Center .= "\n"; - $Center .= "\n"; - $Center .= "\n"; - $Center .= "\n"; - $Center .= "\n"; - $Center .= "\n"; - $Center .= "\n"; - $Center .= "\n"; - $Center .= "\n"; - $Center .= "
" . _("Update Successful!") . "
rootUrl/control.php?action=listRoles\">
\n"; - - $oPatternCustom = & new PatternCustom(); - $oPatternCustom->setHtml($Center); - $main->setCentralPayload($oPatternCustom); - $main->render(); -} -?> diff --git a/presentation/lookAndFeel/knowledgeTree/administration/rolemanagement/editRoleUI.inc b/presentation/lookAndFeel/knowledgeTree/administration/rolemanagement/editRoleUI.inc deleted file mode 100644 index a26c638..0000000 --- a/presentation/lookAndFeel/knowledgeTree/administration/rolemanagement/editRoleUI.inc +++ /dev/null @@ -1,235 +0,0 @@ -roles_table WHERE id = ?" , $iRoleID); - $aDisplayColumns = array("name", "can_read", "can_write"); - $aStoreColumns = array("name", "can_read","can_write"); - $aColumnNames = array(_("Name"), _("Read"), _("Write")); - $aDisplayColumnTypes = array(1,2,2); - $aDatabaseColumnTypes = array(1,2,2); - - // get list of role properties...name...text field...is_Sys_admin and is_unit_admin..checkboxes - $oPattern = & new PatternEditableListFromQuery($sQuery, $default->roles_table, $aDisplayColumns, $aStoreColumns, $aColumnNames, $aDisplayColumnTypes, $aDatabaseColumnTypes) ; - $oPattern->setUniqueName("roleEdit"); - $oPattern->setColumnsRequired(array(1,0,0)); - - $sToRender .= renderHeading(_("Edit Role")); - $sToRender .= "\n"; - $sToRender .= "\n"; - $sToRender .= "\n"; - $sToRender .= "\n"; - $sToRender .= "\n"; - $sToRender .= "\n"; - $sToRender .= "\n"; - $sToRender .= "\n"; - $sToRender .= "\n"; - - $sToRender .= "\n"; - $sToRender .= "
" . $oPattern->render() . "
rootUrl/control.php?action=addRole\">
\n"; - - return $sToRender; -} - -// if fails .. -function getAddFailPage() { - - global $default; - - $sToRender .= renderHeading(_("Edit Role")); - $sToRender .= "\n"; - $sToRender .= "\n"; - $sToRender .= "\n"; - $sToRender .= "\n"; - $sToRender .= "\n"; - $sToRender .= "\n"; - $sToRender .= "\n"; - $sToRender .= "\n"; - $sToRender .= "\n"; - $sToRender .= "
" . _("Sorry, Role Already Exists!") . "
rootUrl/control.php?action=addRole\">
\n"; - - return $sToRender; -} - -// if its the manual edit page..then display normally -function getEditPage($iRoleID) { - global $default; - $oRole = null; - if (isset($iRoleID)) { - $oRole = Role::get($iRoleID); - } - - $sToRender .= renderHeading(_("Edit Role")); - $sToRender .= "\n"; - $sToRender .= "\n"; - $sToRender .= "\n"; - $sToRender .= "\n"; - $sToRender .= "\n"; - $sToRender .= "\n"; - $sToRender .= "\n"; - $sToRender .= "\n"; - - // if a Role selected...show checkboxes - if (isset($iRoleID)) { - $sToRender .= "\n"; - $sToRender .= "\n"; - $sToRender .= "\n"; - $sToRender .= "\n"; - $sToRender .= "\n"; - $sToRender .= "\n"; - $sToRender .= "\n"; - $sToRender .= "\n"; - $sToRender .= "\n"; - } - - $sToRender .= "\n"; - $sToRender .= "\n"; - $sToRender .= "" . getUpdateButton($oRole); - $sToRender .= getCancelButton($oRole); - $sToRender .= "
" . _("Role Name:") . " " . getRoleDisplay($oRole) . "
" . _("Readable:") . " " . getReadableCheckBox($oRole) . "
" . _("Writable:") . " " . getWriteableCheckBox($oRole) . "
\n"; - - $sToRender .= "\n\n\n\n"; - - return $sToRender; -} - -// if edition is successful print otu success page -function getEditPageSuccess() { - global $default; - - $sToRender .= renderHeading(_("Edit Role")); - $sToRender .= "" . _("Success") . "!\n"; - $sToRender .= "\n"; - $sToRender .= "

\n"; - $sToRender .= "\n"; - $sToRender .= "\n"; - $sToRender .= "\n"; - $sToRender .= "\n"; - $sToRender .= "\n"; - $sToRender .= "\n"; - $sToRender .= "\n"; - $sToRender .= "
" . _("The Role was successfully modified") . "
rootUrl/control.php?action=listRoles\">
\n"; - - - return $sToRender; -} - - -// gets the page if edition fails -function getEditPageFail() { - global $default; - - $sToRender .= renderHeading(_("Edit Role")); - $sToRender .= "" . _("Success") . "!\n"; - $sToRender .= "\n"; - $sToRender .= "

\n"; - $sToRender .= "\n"; - $sToRender .= "\n"; - $sToRender .= "\n"; - $sToRender .= "\n"; - $sToRender .= "\n"; - $sToRender .= "\n"; - $sToRender .= "\n"; - $sToRender .= "
" . _("The Role modification Failed!") . "
rootUrl/control.php?action=listRole\">
\n"; - - - return $sToRender; -} -// show the list box when no Role selected -// then shows a text box with the role's name -function getRoleDisplay($oRole) { - global $default; - if (!isset($oRole)) { - $oPatternListBox = & new PatternListBox($default->roles_table, "name", "id", "fRoleID"); - //$oPatternListBox->setIncludeDefaultValue(true); - $oPatternListBox->setPostBackOnChange(true); - return $oPatternListBox->render(); - } else { - return "iId . "\">\n" . - "getName() . "\">"; - } - -} - -// returns the checkbox ticked or unticked -function getActiveCheckBox($oRole) { - if (!isset($oRole)) { - return ""; - } else { - return "getActive() ? "CHECKED " : " ") . " />"; - } -} - - -// returns the checkbox ticked or unticked -function getReadableCheckBox($oRole) { - if (!isset($oRole)) { - return ""; - } else { - return "getReadable() ? "CHECKED " : " ") . " />"; - } -} - -// returns the checkbox ticked or unticked -function getWriteableCheckBox($oRole) { - if (!isset($oRole)) { - return ""; - } else { - return "getWriteable() ? "CHECKED " : " ") . " />"; - } - -} - -// gets the updatebutton when a group is selected -function getUpdateButton($oRole) { - global $default; - if (!isset($oRole)) { - return _("Please select a Role:") . " "; - } else { - return "\n"; - } -} - -// gets the cancel button when a group is selected -function getCancelButton($oRole) { - global $default; - if (!isset($oRole)) { - //return "rootUrl/control.php?action=groupManagement\">\n"; - } else { - return "rootUrl/control.php?action=listRoles\">\n"; - } -} -?> diff --git a/presentation/lookAndFeel/knowledgeTree/administration/rolemanagement/listRolesBL.php b/presentation/lookAndFeel/knowledgeTree/administration/rolemanagement/listRolesBL.php deleted file mode 100644 index d6f502e..0000000 --- a/presentation/lookAndFeel/knowledgeTree/administration/rolemanagement/listRolesBL.php +++ /dev/null @@ -1,49 +0,0 @@ -fileSystemRoot/lib/users/User.inc"); -require_once("$default->fileSystemRoot/lib/security/Permission.inc"); -require_once("$default->fileSystemRoot/lib/visualpatterns/PatternCustom.inc"); -require_once("$default->fileSystemRoot/lib/visualpatterns/PatternTableSqlQuery.inc"); -require_once("$default->fileSystemRoot/lib/visualpatterns/PatternListBox.inc"); -require_once("$default->fileSystemRoot/presentation/Html.inc"); -require_once("$default->fileSystemRoot/presentation/lookAndFeel/knowledgeTree/administration/adminUI.inc"); -require_once("listRolesUI.inc"); - -if (checkSession()) { - $oPatternCustom = & new PatternCustom(); - $oPatternCustom->setHtml(getPage($fGroupID)); - require_once("$default->fileSystemRoot/presentation/webpageTemplate.inc"); - $main->setCentralPayload($oPatternCustom); - $main->setFormAction($_SERVER['PHP_SELF']); - $main->render(); -} -?> diff --git a/presentation/lookAndFeel/knowledgeTree/administration/rolemanagement/listRolesUI.inc b/presentation/lookAndFeel/knowledgeTree/administration/rolemanagement/listRolesUI.inc deleted file mode 100644 index 41be0ef..0000000 --- a/presentation/lookAndFeel/knowledgeTree/administration/rolemanagement/listRolesUI.inc +++ /dev/null @@ -1,58 +0,0 @@ - "$default->rootUrl/control.php?action=editRole", - 4=> "$default->rootUrl/control.php?action=removeRole"); //"$default->rootUrl/control.php?action=removeUserFromGroup"); - - $oSearchResults = & new PatternTableSqlQuery($sQuery, $aColumns, $aColumnTypes, $aColumnNames, "100%", $aHyperLinkURL,$aDBColumnArray,$aQueryStringVariableNames); - $oSearchResults->setDisplayColumnHeadings(true); - - return $oSearchResults->render() ; -} - -function getPage() { - global $default; - $sToRender .= renderHeading(_("Role Management")); - - // add user link - $sToRender .= getAddLink("addRole", _("Add A Role")); - $sToRender .= getRoles(); - return $sToRender; -} -?> diff --git a/presentation/lookAndFeel/knowledgeTree/administration/rolemanagement/removeRoleBL.php b/presentation/lookAndFeel/knowledgeTree/administration/rolemanagement/removeRoleBL.php deleted file mode 100644 index c885570..0000000 --- a/presentation/lookAndFeel/knowledgeTree/administration/rolemanagement/removeRoleBL.php +++ /dev/null @@ -1,73 +0,0 @@ -fileSystemRoot/lib/visualpatterns/PatternListBox.inc"); - require_once("$default->fileSystemRoot/lib/visualpatterns/PatternEditableListFromQuery.inc"); - require_once("removeRoleUI.inc"); - require_once("$default->fileSystemRoot/lib/security/Permission.inc"); - require_once("$default->fileSystemRoot/lib/roles/Role.inc"); - require_once("$default->fileSystemRoot/presentation/webpageTemplate.inc"); - require_once("$default->fileSystemRoot/lib/visualpatterns/PatternCustom.inc"); - require_once("$default->fileSystemRoot/lib/foldermanagement/Folder.inc"); - require_once("$default->fileSystemRoot/presentation/lookAndFeel/knowledgeTree/foldermanagement/folderUI.inc"); - require_once("$default->fileSystemRoot/presentation/Html.inc"); - - $oPatternCustom = & new PatternCustom(); - - // get main page - if (isset($fRoleID)) { - - $oPatternCustom->setHtml(getDeletePage($fRoleID)); - $main->setFormAction($_SERVER["PHP_SELF"] . "?fForDelete=1"); - - // get delete page - } - else { - $oPatternCustom->setHtml(getDeletePage(null)); - $main->setFormAction($_SERVER["PHP_SELF"]); - } - - // if delete entry - if (isset($fForDelete)) { - $oRole = Role::get($fRoleID); - $oRole->setName($fRoleName); - - if ($oRole->delete()) { - controllerRedirect("listRoles"); - } else { - $oPatternCustom->setHtml(getDeleteFailPage()); - } - } - - $main->setCentralPayload($oPatternCustom); - $main->render(); -} -?> diff --git a/presentation/lookAndFeel/knowledgeTree/administration/rolemanagement/removeRoleUI.inc b/presentation/lookAndFeel/knowledgeTree/administration/rolemanagement/removeRoleUI.inc deleted file mode 100644 index 87410bb..0000000 --- a/presentation/lookAndFeel/knowledgeTree/administration/rolemanagement/removeRoleUI.inc +++ /dev/null @@ -1,157 +0,0 @@ -" . _("Are you sure you wish to Remove this Role?:") . "\n"; - } else { - $sHeading .= _("Please select a Role:"); - } - - $sToRender .= renderHeading(_("Remove Role")); - $sToRender .= "\n"; - $sToRender .= "\n"; - $sToRender .= "\n"; - $sToRender .= "\n"; - $sToRender .= "\n"; - $sToRender .= "\n"; - $sToRender .= "\n"; - $sToRender .= "\n"; - $sToRender .= getReadableCheckBox($oRole) . "\n"; - $sToRender .= "\n"; - $sToRender .= "\n"; - $sToRender .= getWriteableCheckBox($oRole) . "\n"; - $sToRender .= "\n"; - $sToRender .= "\n"; - $sToRender .= "\n"; - $sToRender .= "\n"; - $sToRender .= "\n"; - $sToRender .= getDeleteButton($oRole); - $sToRender .= "
$sHeading
" . _("Role Name:") . " " . getRoleDisplay($oRole) . "
\n"; - - return $sToRender; -} - -// get successfully deletion page -function getDeleteSuccessPage() { - - global $default; - - $sToRender .= renderHeading(_("Remove Role")); - $sToRender .= "\n"; - $sToRender .= "\n"; - $sToRender .= "\n"; - $sToRender .= "\n"; - $sToRender .= "\n"; - $sToRender .= "\n"; - $sToRender .= "\n"; - $sToRender .= "\n"; - $sToRender .= "\n"; - $sToRender .= "\n"; - $sToRender .= "\n"; - $sToRender .= "
" . _("Role SuccessFully Removed!") . "
rootUrl/control.php?action=listRoles\">
\n"; - - return $sToRender; -} - -// get deletion failed page -function getDeleteFailPage() { - - global $default; - - $sToRender .= renderHeading(_("Remove Role")); - $sToRender .= "\n"; - $sToRender .= "\n"; - $sToRender .= "\n"; - $sToRender .= "\n"; - $sToRender .= "\n"; - $sToRender .= "\n"; - $sToRender .= "\n"; - $sToRender .= "\n"; - $sToRender .= "\n"; - $sToRender .= "\n"; - $sToRender .= "\n"; - $sToRender .= "
" . _("Deletion Failed!") . "
" . _("Please Ensure that The Role has not been assigned to any Folder") . "
rootUrl/control.php?action=listRoles\">
\n"; - - return $sToRender; -} - -// show listbox...or the text name -function getRoleDisplay($oRole) { - global $default; - if (!isset($oRole)) { - $oPatternListBox = & new PatternListBox($default->roles_table, "name", "id", "fRoleID"); - $oPatternListBox->setIncludeDefaultValue(true); - $oPatternListBox->setPostBackOnChange(true); - return $oPatternListBox->render(); - } else { - return "iId . "\">\n" . - "" . $oRole->getName() . ""; - } - -} - -// show check box -function getActiveCheckBox($oRole) { - if (!isset($oRole)) { - return ""; - } else { - return "Active: getActive() ? "CHECKED " : " ") . " />"; - } -} - -// show check box -function getReadableCheckBox($oRole) { - if (!isset($oRole)) { - return ""; - } else { - return "Readable: getReadable() ? "CHECKED " : " ") . " />"; - } -} - -// show text box -function getWriteableCheckBox($oRole) { - if (!isset($oRole)) { - return ""; - } else { - return "Writable: getWriteable() ? "CHECKED " : " ") . " />"; - } - -} - -// show delete button -function getDeleteButton($oRole) { - global $default; - if (isset($oRole)) { - return "\n". - "rootUrl/control.php?action=listRoles\">\n"; - } -} -?> diff --git a/presentation/lookAndFeel/knowledgeTree/administration/rolemanagement/roleManagement.php b/presentation/lookAndFeel/knowledgeTree/administration/rolemanagement/roleManagement.php new file mode 100644 index 0000000..9adcfe6 --- /dev/null +++ b/presentation/lookAndFeel/knowledgeTree/administration/rolemanagement/roleManagement.php @@ -0,0 +1,135 @@ +, Jam Warehouse (Pty) Ltd, South Africa + * @package documentmanagement + */ + +/* boilerplate */ +//require_once('../../../../../config/dmsDefaults.php'); + +require_once(KT_LIB_DIR . '/dispatcher.inc.php'); +require_once(KT_LIB_DIR . '/templating/kt3template.inc.php'); + +require_once(KT_LIB_DIR . '/widgets/fieldWidgets.php'); +require_once(KT_LIB_DIR . "/roles/Role.inc"); + +class RoleAdminDispatcher extends KTAdminDispatcher { + + // Breadcrumbs base - added to in methods + var $aBreadcrumbs = array( + array('action' => 'administration', 'name' => 'Administration'), + ); + + function check() { + return true; + } + + function do_main() { + $this->aBreadcrumbs[] = array('action' => 'roleManagement', 'name' => 'Role Management'); + + $this->oPage->setTitle('Role Management'); + + $edit_fields = array(); + $role_id = KTUtil::arrayGet($_REQUEST, 'role_id', null); + $oRole = Role::get($role_id); + if (PEAR::isError($oRole) || ($oRole == false)) { $for_edit = false; } + else { + $for_edit = true; + $edit_fields[] = new KTStringWidget('Name','A short, human-readable name for the role.', 'name', $oRole->getName(), $this->oPage, true); + } + + $aRoles =& Role::getList('id > 0'); + + $add_fields = array(); + $add_fields[] = new KTStringWidget('Name','A short, human-readable name for the role.', 'name', null, $this->oPage, true); + + $oTemplating =& KTTemplating::getSingleton(); + $oTemplate = $oTemplating->loadTemplate('ktcore/principals/roleadmin'); + $oTemplate->setData(array( + "context" => $this, + "add_fields" => $add_fields, + "for_edit" => $for_edit, + 'edit_role' => $oRole, + 'edit_fields' => $edit_fields, + 'roles' => $aRoles, + )); + return $oTemplate; + } + + function do_createRole() { + $name = KTUtil::arrayGet($_REQUEST, 'name', null); + if ($name === null) { + $this->errorRedirectToMain('Please give the role a name.'); + } + + $this->startTransaction(); + $oRole = new Role($name); + $res = $oRole->create(); + if (PEAR::isError($res) || ($res == false)) { + $this->errorRedirectToMain('Unable to create role.'); + } + + $this->successRedirectToMain('Role "' . $name . '" created.'); + } + + function do_updateRole() { + $role_id = KTUtil::arrayGet($_REQUEST, 'role_id'); + $oRole = Role::get($role_id); + if (PEAR::isError($oRole) || ($oRole == false)) { + $this->errorRedirectToMain('Please select a valid role first.'); + } + + $name = KTUtil::arrayGet($_REQUEST, 'name', null); + if ($name === null) { + $this->errorRedirectToMain('Please give the role a name.'); + } + + $this->startTransaction(); + $oRole->setName($name); + $res = $oRole->update(); + if (PEAR::isError($res) || ($res == false)) { + $this->errorRedirectToMain('Unable to update role.'); + } + + $this->successRedirectToMain('Role "' . $name . '" updated.'); + } + + function do_deleteRole() { + $role_id = KTUtil::arrayGet($_REQUEST, 'role_id'); + $oRole = Role::get($role_id); + if (PEAR::isError($oRole) || ($oRole == false)) { + $this->errorRedirectToMain('Please select a valid role first.'); + } + $name = $oRole->getName(); + + $this->startTransaction(); + $res = $oRole->delete(); + if (PEAR::isError($res) || ($res == false)) { + $this->errorRedirectToMain('Unable to delete the role. Possible cause: ' . $_SESSION['errorMessage']); + } + + $this->successRedirectToMain('Role "' . $name . '" deleted. '); + } + +} + diff --git a/templates/ktcore/manage_permissions.smarty b/templates/ktcore/manage_permissions.smarty index e9a587b..7dbb7be 100644 --- a/templates/ktcore/manage_permissions.smarty +++ b/templates/ktcore/manage_permissions.smarty @@ -1,54 +1,55 @@

Existing permissions

- - - - - - - - -{ foreach item=oPerm from=$permissions } - - - -{ if $oPerm->bBuiltIn == true } - -{ else } - - -{ /if } - -{ /foreach } -
PermissionHuman NameManage
-{ $oPerm->sName } - -{ $oPerm->sHumanName } - -Built-in - -Edit - -Delete -
-

Create a new permission

+

FIXME add a useful explanation about permissions.

+
+Create a new permission - - - - - - - - - - - - -
Name:
Human name:
+ + + +{foreach item=oWidget from=$add_fields} + {$oWidget->render()} +{/foreach} + +
-
+ +
+
+ + + + + + + + + + + { foreach item=oPerm from=$permissions } + + + + { if $oPerm->bBuiltIn == true } + + { else } + + + { /if } + + { /foreach } +
PermissionHuman NameDelete
+ { $oPerm->sName } + + { $oPerm->sHumanName } + + Built-in + + Delete Permission +
+ diff --git a/templates/ktcore/principals/roleadmin.smarty b/templates/ktcore/principals/roleadmin.smarty new file mode 100644 index 0000000..08c3f3b --- /dev/null +++ b/templates/ktcore/principals/roleadmin.smarty @@ -0,0 +1,72 @@ +

Role Administration

+ +

FIXME Overview of roles.

+ +

Note: Roles are not yet fully functional within +KnowledgeTree™ 3.0

+ +{if ($for_edit === false)} + +
+
+ Add a Role + + + + {foreach item=oWidget from=$add_fields} + {$oWidget->render()} + {/foreach} + +
+ +
+
+
+ +{else} + +
+
+ Change a role's details + + + + + {foreach item=oWidget from=$edit_fields} + {$oWidget->render()} + {/foreach} + +
+ + Cancel + Cancel +
+
+
+ +{/if} + + + + + + + + + + + {if (count($roles) !== 0)} + {foreach item=oRole from=$roles} + + + + + + {/foreach} + {else} + + + + {/if} + +
Role NameEditDelete
{$oRole->getName()}EditDelete

There are currently no roles created within the system.

\ No newline at end of file -- libgit2 0.21.4