. * * You can contact The Jam Warehouse Software (Pty) Limited, Unit 1, Tramber Place, * Blake Street, Observatory, 7925 South Africa. or email info@knowledgetree.com. * * The interactive user interfaces in modified source and object code versions * of this program must display Appropriate Legal Notices, as required under * Section 5 of the GNU General Public License version 3. * * In accordance with Section 7(b) of the GNU General Public License version 3, * these Appropriate Legal Notices must retain the display of the "Powered by * KnowledgeTree" logo and retain the original copyright notice. If the display of the * logo is not reasonably feasible for technical reasons, the Appropriate Legal Notices * must display the words "Powered by KnowledgeTree" and retain the original * copyright notice. * Contributor( s): ______________________________________ * */ require_once(KT_LIB_DIR . "/templating/templating.inc.php"); require_once(KT_LIB_DIR . "/permissions/permission.inc.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"); class ManagePermissionsDispatcher extends KTAdminDispatcher { var $sHelpPage = 'ktcore/admin/manage permissions.html'; function do_main() { $this->oPage->setTitle(_kt('Manage Permissions')); $this->aBreadcrumbs[] = array('url' => $_SERVER['PHP_SELF'], 'name' => _kt('Manage Permissions')); $add_fields = array(); $add_fields[] = new KTStringWidget(_kt('System Name'), _kt('The internal name used for the permission. This should never be changed.'), 'name', null, $this->oPage, true); $add_fields[] = new KTStringWidget(_kt('Display Name'), _kt('A short name that is shown to users whenever permissions must be assigned.'), 'human_name', null, $this->oPage, true); $oTemplating =& KTTemplating::getSingleton(); $aPermissions =& KTPermission::getList(); $oTemplate = $oTemplating->loadTemplate("ktcore/manage_permissions"); $aTemplateData = array( 'context' => $this, "permissions" => $aPermissions, 'add_fields' => $add_fields, ); return $oTemplate->render($aTemplateData); } function do_newPermission() { $name = KTUtil::arrayGet($_REQUEST, 'name'); $human_name = KTUtil::arrayGet($_REQUEST, 'human_name'); if (empty($name) || empty($human_name)) { return $this->errorRedirectToMain(_kt("Both names not given")); } $oPerm = KTPermission::createFromArray(array( 'name' => $name, 'humanname' => $human_name, )); if (PEAR::isError($oPerm)) { return $this->errorRedirectToMain(_kt("Error creating permission")); } return $this->successRedirectToMain(_kt("Permission created")); } function do_deletePermission() { $id = KTUtil::arrayGet($_REQUEST, 'id'); if (empty($id)) { return $this->errorRedirectToMain(_kt("Both names not given")); } $oPerm = KTPermission::get($id); if (PEAR::isError($oPerm)) { return $this->errorRedirectToMain(_kt("Error finding permission")); } if ($oPerm->getBuiltIn() === true) { return $this->errorRedirectToMain(_kt("Can't delete built-in permission")); } $res = $oPerm->delete(); if (PEAR::isError($res)) { return $this->errorRedirectToMain(_kt("Error deleting permission")); } return $this->successRedirectToMain(_kt("Permission deleted")); } } ?>