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";
-
- 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 .= "" . _("Update Successful!") . " \n";
- $Center .= " \n";
- $Center .= " \n";
- $Center .= " \n";
- $Center .= " \n";
- $Center .= " \n";
- $Center .= "\n";
- $Center .= "rootUrl/control.php?action=listRoles\"> \n";
- $Center .= " \n";
- $Center .= "
\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";
-
- return $sToRender;
-}
-
-// if fails ..
-function getAddFailPage() {
-
- global $default;
-
- $sToRender .= renderHeading(_("Edit Role"));
- $sToRender .= "\n";
- $sToRender .= "\n";
- $sToRender .= "" . _("Sorry, Role Already Exists!") . " \n";
- $sToRender .= " \n";
- $sToRender .= "\n";
- $sToRender .= " \n";
- $sToRender .= "\n";
- $sToRender .= "rootUrl/control.php?action=addRole\"> \n";
- $sToRender .= " \n";
- $sToRender .= "
\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 .= "" . _("Role Name:") . " " . getRoleDisplay($oRole) . " \n";
- $sToRender .= " \n";
- $sToRender .= "\n";
- $sToRender .= " \n";
- $sToRender .= "\n";
-
- // if a Role selected...show checkboxes
- if (isset($iRoleID)) {
- $sToRender .= " \n";
- $sToRender .= "\n";
- $sToRender .= "" . _("Readable:") . " " . getReadableCheckBox($oRole) . " \n";
- $sToRender .= " \n";
- $sToRender .= "\n";
- $sToRender .= "" . _("Writable:") . " " . getWriteableCheckBox($oRole) . " \n";
- $sToRender .= " \n";
- $sToRender .= "\n";
- $sToRender .= " \n";
- }
-
- $sToRender .= "\n";
- $sToRender .= " \n";
- $sToRender .= " " . getUpdateButton($oRole);
- $sToRender .= getCancelButton($oRole);
- $sToRender .= "
\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 .= "" . _("The Role was successfully modified") . " \n";
- $sToRender .= " \n";
- $sToRender .= " \n";
- $sToRender .= "\n";
- $sToRender .= "rootUrl/control.php?action=listRoles\"> \n";
- $sToRender .= " \n";
- $sToRender .= "
\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 .= "" . _("The Role modification Failed!") . " \n";
- $sToRender .= " \n";
- $sToRender .= " \n";
- $sToRender .= "\n";
- $sToRender .= "rootUrl/control.php?action=listRole\"> \n";
- $sToRender .= " \n";
- $sToRender .= "
\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 .= "$sHeading \n";
- $sToRender .= "\n";
- $sToRender .= "" . _("Role Name:") . " " . getRoleDisplay($oRole) . " \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 .= "
\n";
-
- return $sToRender;
-}
-
-// get successfully deletion page
-function getDeleteSuccessPage() {
-
- global $default;
-
- $sToRender .= renderHeading(_("Remove Role"));
- $sToRender .= "\n";
- $sToRender .= "\n";
- $sToRender .= "" . _("Role SuccessFully Removed!") . " \n";
- $sToRender .= " \n";
- $sToRender .= " \n";
- $sToRender .= " \n";
- $sToRender .= " \n";
- $sToRender .= " \n";
- $sToRender .= "\n";
- $sToRender .= "rootUrl/control.php?action=listRoles\"> \n";
- $sToRender .= " \n";
- $sToRender .= "
\n";
-
- return $sToRender;
-}
-
-// get deletion failed page
-function getDeleteFailPage() {
-
- global $default;
-
- $sToRender .= renderHeading(_("Remove Role"));
- $sToRender .= "\n";
- $sToRender .= "\n";
- $sToRender .= "" . _("Deletion Failed!") . " \n";
- $sToRender .= " \n";
- $sToRender .= " \n";
- $sToRender .= " \n";
- $sToRender .= "" . _("Please Ensure that The Role has not been assigned to any Folder") . " \n";
- $sToRender .= " \n";
- $sToRender .= " \n";
- $sToRender .= "\n";
- $sToRender .= "rootUrl/control.php?action=listRoles\"> \n";
- $sToRender .= "
\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
-
-
-
-Permission
-Human Name
-Manage
-
-
-{ foreach item=oPerm from=$permissions }
-
-
-{ $oPerm->sName }
-
-
-{ $oPerm->sHumanName }
-
-{ if $oPerm->bBuiltIn == true }
-
-Built-in
-
-{ else }
-
-Edit
-
-
-getId()}">Delete
-
-{ /if }
-
-{ /foreach }
-
-Create a new permission
+FIXME add a useful explanation about permissions.
+
+
+
+
+
+ Permission
+ Human Name
+ Delete
+
+
+ { foreach item=oPerm from=$permissions }
+
+
+ { $oPerm->sName }
+
+
+ { $oPerm->sHumanName }
+
+ { if $oPerm->bBuiltIn == true }
+
+ Built-in
+
+ { else }
+
+
+ Delete Permission
+
+ { /if }
+
+ { /foreach }
+
+
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)}
+
+
+
+{else}
+
+
+
+{/if}
+
+
+
+
+ Role Name
+ Edit
+ Delete
+
+
+
+ {if (count($roles) !== 0)}
+ {foreach item=oRole from=$roles}
+
+ {$oRole->getName()}
+ Edit
+ Delete
+
+ {/foreach}
+ {else}
+
+ There are currently no roles created within the system.
+
+ {/if}
+
+
\ No newline at end of file