function do_main() { $this->aBreadcrumbs[] = array('url' => $_SERVER['PHP_SELF'], 'name' => _kt('Role Management')); $this->oPage->setTitle(_kt('Role Management')); $edit_fields = array(); $role_id = KTUtil::arrayGet($_REQUEST, 'role_id', null); if (is_null($role_id)) { $oRole = null; // handle broken case of role == -1 } else { $oRole = Role::get($role_id); } if (PEAR::isError($oRole) || $oRole == false) { $for_edit = false; } else { $for_edit = true; $edit_fields[] = new KTStringWidget(_kt('Name'), _kt('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(_kt('Name'), _kt('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 displayConfiguration($args) { // permissions $aKeyedRoles = array(); $aRoles = Role::getList(); foreach ($aRoles as $oRole) { $aKeyedRoles[$oRole->getId()] = $oRole->getName(); } $oTemplating =& KTTemplating::getSingleton(); $oTemplate = $oTemplating->loadTemplate('ktcore/workflowtriggers/roles'); $aTemplateData = array('context' => $this, 'roles' => $aKeyedRoles, 'current_role' => KTUtil::arrayGet($this->aConfig, 'role_id'), 'args' => $args); return $oTemplate->render($aTemplateData); }
/** * Returns a list of roles matching the filter criteria. * * @author KnowledgeTree Team * @access public * @static * @param string $filter * @param array $options * @return array of KTAPI_Role */ public static function getList($filter = null, $options = array()) { $roles = Role::getList($filter, $options); if (PEAR::isError($roles)) { return $roles; } $list = array(); foreach ($roles as $role) { $list[] = new KTAPI_Role($role); } return $list; }
function json_notificationusers() { $sFilter = KTUtil::arrayGet($_REQUEST, 'filter', false); if ($sFilter == false) { $values = array('off' => _kt('-- Please filter --')); // default } $sFilter = trim($sFilter); $values = array('off' => _kt('-- Please filter --')); // default if (!empty($sFilter)) { $allowed = array(); // Modified Jarrett Jordaan Only notify enabled users $q = sprintf('name like "%%%s%%" AND disabled = 0', DBUtil::escapeSimple($sFilter)); $aUsers = User::getList($q); $q = sprintf('name like "%%%s%%"', DBUtil::escapeSimple($sFilter)); $aGroups = Group::getList($q); $aRoles = Role::getList($q); $empty = true; if (!PEAR::isError($aUsers)) { $allowed['user'] = $aUsers; if (!empty($aUsers)) { $empty = false; } } if (!PEAR::isError($aGroups)) { $allowed['group'] = $aGroups; if (!empty($aGroups)) { $empty = false; } } if (!PEAR::isError($aRole)) { $allowed['role'] = $aRoles; if (!empty($aRoles)) { $empty = false; } } if ($empty) { $values = array('off' => '-- No results --'); // default } else { $values = $this->descriptorToJSON($allowed); } } return $values; }
function json_getEntities($optFilter = null) { $sFilter = KTUtil::arrayGet($_REQUEST, 'filter', false); if ($sFilter == false && $optFilter != null) { $sFilter = $optFilter; } $bSelected = KTUtil::arrayGet($_REQUEST, 'selected', false); $aEntityList = array('off' => _kt('-- Please filter --')); // check permissions $oPO = KTPermissionObject::get($this->oFolder->getPermissionObjectId()); $aOptions = array('redirect_to' => array('json', 'json_action=permission_error&fFolderId=' . $this->oFolder->getId())); if (!KTBrowseUtil::inAdminMode($this->oUser, $this->oFolder)) { $this->oValidator->userHasPermissionOnItem($this->oUser, $this->_sEditShowPermission, $this->oFolder, $aOptions); } // get permissions map $aPermissionsMap =& $this->_getPermissionsMap(); if ($bSelected || $sFilter && trim($sFilter)) { if (!$bSelected) { $aEntityList = array(); } $aGroups = Group::getList(sprintf('name like \'%%%s%%\'', $sFilter)); foreach ($aGroups as $oGroup) { $aPerm = @array_keys($aPermissionsMap['group'][$oGroup->getId()]); if (!is_array($aPerm)) { $aPerm = array(); } if ($bSelected) { if (count($aPerm)) { $aEntityList['g' . $oGroup->getId()] = array('type' => 'group', 'display' => _kt('Group') . ': ' . $oGroup->getName(), 'name' => $oGroup->getName(), 'permissions' => $aPerm, 'id' => $oGroup->getId(), 'selected' => true); } } else { $aEntityList['g' . $oGroup->getId()] = array('type' => 'group', 'display' => _kt('Group') . ': ' . $oGroup->getName(), 'name' => $oGroup->getName(), 'permissions' => $aPerm, 'id' => $oGroup->getId()); } } $aRoles = Role::getList(sprintf('name like \'%%%s%%\'', $sFilter)); foreach ($aRoles as $oRole) { $aPerm = @array_keys($aPermissionsMap['role'][$oRole->getId()]); if (!is_array($aPerm)) { $aPerm = array(); } if ($bSelected) { if (count($aPerm)) { $aEntityList['r' . $oRole->getId()] = array('type' => 'role', 'display' => _kt('Role') . ': ' . $oRole->getName(), 'name' => $oRole->getName(), 'permissions' => $aPerm, 'id' => $oRole->getId(), 'selected' => true); } } else { $aEntityList['r' . $oRole->getId()] = array('type' => 'role', 'display' => _kt('Role') . ': ' . $oRole->getName(), 'name' => $oRole->getName(), 'permissions' => $aPerm, 'id' => $oRole->getId()); } } } return $aEntityList; }
function do_main() { $this->oPage->setTitle(_kt("View Roles")); $this->oPage->setBreadcrumbDetails(_kt("View Roles")); $oTemplating = new KTTemplating(); $oTemplate = $oTemplating->loadTemplate("ktcore/action/view_roles"); // we need to have: // - a list of roles // - with their users / groups // - and that allocation id $aRoles = array(); // stores data for display. $aRoleList = Role::getList(); foreach ($aRoleList as $oRole) { $iRoleId = $oRole->getId(); $aRoles[$iRoleId] = array("name" => $oRole->getName()); $oRoleAllocation = DocumentRoleAllocation::getAllocationsForDocumentAndRole($this->oDocument->getId(), $iRoleId); if (is_null($oRoleAllocation)) { $oRoleAllocation = RoleAllocation::getAllocationsForFolderAndRole($this->oDocument->getFolderID(), $iRoleId); } $u = array(); $g = array(); $aid = null; $raid = null; if (is_null($oRoleAllocation)) { // nothing. } else { //var_dump($oRoleAllocation); $raid = $oRoleAllocation->getId(); // real_alloc_id $aAllowed = $oRoleAllocation->getAllowed(); if (!empty($aAllowed['user'])) { $u = $aAllowed['user']; } if (!empty($aAllowed['group'])) { $g = $aAllowed['group']; } } $aRoles[$iRoleId]['users'] = $u; $aRoles[$iRoleId]['groups'] = $g; $aRoles[$iRoleId]['real_allocation_id'] = $raid; } // final step. // map to users, groups. foreach ($aRoles as $key => $role) { $_users = array(); foreach ($aRoles[$key]['users'] as $iUserId) { $oUser = User::get($iUserId); if (!(PEAR::isError($oUser) || $oUser == false)) { $_users[] = $oUser->getName(); } } if (empty($_users)) { $aRoles[$key]['users'] = '<span class="descriptiveText"> ' . _kt('no users') . '</span>'; } else { $aRoles[$key]['users'] = implode(', ', $_users); } $_groups = array(); foreach ($aRoles[$key]['groups'] as $iGroupId) { $oGroup = Group::get($iGroupId); if (!(PEAR::isError($oGroup) || $oGroup == false)) { $_groups[] = $oGroup->getName(); } } if (empty($_groups)) { $aRoles[$key]['groups'] = '<span class="descriptiveText"> ' . _kt('no groups') . '</span>'; } else { $aRoles[$key]['groups'] = implode(', ', $_groups); } } $aTemplateData = array('context' => &$this, 'roles' => $aRoles); return $oTemplate->render($aTemplateData); }