groupmanagement.php.svn-base
来自「PHP 知识管理系统(基于树结构的知识管理系统), 英文原版的PHP源码。」· SVN-BASE 代码 · 共 772 行 · 第 1/3 页
SVN-BASE
772 行
} foreach ($aAllUsers as $oUser) { if (!array_key_exists($oUser->getId(), $aGroupUsers)) { $aFreeUsers[$oUser->getId()] = $oUser; } } $oJSONWidget = new KTJSONLookupWidget(_kt('Users'), _kt('Select the users which should be part of this group from the left-hand list and then click the <strong>right pointing arrows</strong>. Once you have added all the users that you require, press <strong>save changes</strong>.'), 'users', '', $this->oPage, false, null, null, array('action'=>'getUsers', 'assigned' => $aGroupUsers, 'multi'=>'true', 'size'=>'8')); $oTemplating =& KTTemplating::getSingleton(); $oTemplate = $oTemplating->loadTemplate("ktcore/principals/groups_manageusers"); $aTemplateData = array( "context" => $this, "edit_group" => $oGroup, 'widget' => $oJSONWidget, "old_search" => $old_search, ); return $oTemplate->render($aTemplateData); } // }}} function json_getUsers() { $sFilter = KTUtil::arrayGet($_REQUEST, 'filter', false); $aUserList = array('off' => _kt('-- Please filter --')); if($sFilter && trim($sFilter)) { $aUsers = User::getList(sprintf('name like "%%%s%%"', $sFilter)); $aUserList = array(); foreach($aUsers as $oUser) { $aUserList[$oUser->getId()] = $oUser->getName(); } } return $aUserList; } // {{{ do_updateUserMembers function do_updateUserMembers() { $old_search = KTUtil::arrayGet($_REQUEST, 'old_search'); $group_id = KTUtil::arrayGet($_REQUEST, 'group_id'); $oGroup = Group::get($group_id); if ((PEAR::isError($oGroup)) || ($oGroup === false)) { $this->errorRedirectToMain(_kt('No such group.')); } $userAdded = KTUtil::arrayGet($_REQUEST, 'users_items_added',''); $userRemoved = KTUtil::arrayGet($_REQUEST, 'users_items_removed',''); $aUserToAddIDs = explode(",", $userAdded); $aUserToRemoveIDs = explode(",", $userRemoved); $this->startTransaction(); $usersAdded = array(); $usersRemoved = array(); $addWarnings = array(); $removeWarnings = array(); foreach ($aUserToAddIDs as $iUserId ) { if ($iUserId > 0) { $oUser= User::Get($iUserId); $memberReason = GroupUtil::getMembershipReason($oUser, $oGroup); //var_dump($memberReason); if (!(PEAR::isError($memberReason) || is_null($memberReason))) { $addWarnings[] = $memberReason; } $res = $oGroup->addMember($oUser); if (PEAR::isError($res) || $res == false) { $this->errorRedirectToMain(sprintf(_kt('Unable to add user "%s" to group "%s"'), $oUser->getName(), $oGroup->getName()), sprintf("old_search=%s&do_search=1", $old_search)); } else { $usersAdded[] = $oUser->getName(); } } } // Remove groups foreach ($aUserToRemoveIDs as $iUserId ) { if ($iUserId > 0) { $oUser = User::get($iUserId); $res = $oGroup->removeMember($oUser); if (PEAR::isError($res) || $res == false) { $this->errorRedirectToMain(sprintf(_kt('Unable to remove user "%s" from group "%s"'), $oUser->getName(), $oGroup->getName()), sprintf("old_search=%s&do_search=1", $old_search)); } else { $usersRemoved[] = $oUser->getName(); $memberReason = GroupUtil::getMembershipReason($oUser, $oGroup); //var_dump($memberReason); if (!(PEAR::isError($memberReason) || is_null($memberReason))) { $removeWarnings[] = $memberReason; } } } } if (!empty($addWarnings)) { $sWarnStr = _kt('Warning: some users were already members of some subgroups') . ' — '; $sWarnStr .= implode(', ', $addWarnings); $_SESSION['KTInfoMessage'][] = $sWarnStr; } if (!empty($removeWarnings)) { $sWarnStr = _kt('Warning: some users are still members of some subgroups') . ' — '; $sWarnStr .= implode(', ', $removeWarnings); $_SESSION['KTInfoMessage'][] = $sWarnStr; } $msg = ''; if (!empty($usersAdded)) { $msg .= ' ' . _kt('Added') . ': ' . implode(', ', $usersAdded) . '. '; } if (!empty($usersRemoved)) { $msg .= ' ' . _kt('Removed') . ': ' . implode(', ',$usersRemoved) . '.'; } if (!Permission::userIsSystemAdministrator($_SESSION['userID'])) { $this->rollbackTransaction(); $this->errorRedirectTo('manageUsers', _kt('For security purposes, you cannot remove your own administration priviledges.'), sprintf('group_id=%d', $oGroup->getId()), sprintf("old_search=%s&do_search=1", $old_search)); exit(0); } $this->commitTransaction(); $this->successRedirectToMain($msg, sprintf("old_search=%s&do_search=1", $old_search)); } // }}} // FIXME copy-paste ... // {{{ do_manageSubgroups function do_manageSubgroups() { $old_search = KTUtil::arrayGet($_REQUEST, 'old_search'); $group_id = KTUtil::arrayGet($_REQUEST, 'group_id'); $oGroup = Group::get($group_id); if ((PEAR::isError($oGroup)) || ($oGroup === false)) { $this->errorRedirectToMain(_kt('No such group.'), sprintf("old_search=%s&do_search=1", $old_search)); } $this->aBreadcrumbs[] = array('name' => $oGroup->getName()); $this->oPage->setBreadcrumbDetails(_kt('manage members')); $this->oPage->setTitle(sprintf(_kt('Manage members of %s'), $oGroup->getName())); $aMemberGroupsUnkeyed = $oGroup->getMemberGroups(); $aMemberGroups = array(); $aMemberIDs = array(); foreach ($aMemberGroupsUnkeyed as $oMemberGroup) { $aMemberIDs[] = $oMemberGroup->getID(); $aMemberGroups[$oMemberGroup->getID()] = $oMemberGroup; } $oJSONWidget = new KTJSONLookupWidget(_kt('Groups'), _kt('Select the groups from the left-hand list that you would like to add to this group and then click the <b>right pointing arrows</b>. Once you have added all the groups that you require, press <b>save changes</b>. Only groups that are logically capable of being included in this group will be available to be added.'), 'groups', '', $this->oPage, false, null, null, array('action' => sprintf('getSubGroups&group_id=%d', $oGroup->getID()), 'assigned' => $aMemberGroups, 'multi' => 'true', 'size' => '8')); $oTemplating =& KTTemplating::getSingleton(); $oTemplate = $oTemplating->loadTemplate("ktcore/principals/groups_managesubgroups"); $aTemplateData = array("context" => $this, "edit_group" => $oGroup, 'widget'=>$oJSONWidget, "old_search" => $old_search, ); return $oTemplate->render($aTemplateData); } // }}} function json_getSubGroups() { $sFilter = KTUtil::arrayGet($_REQUEST, 'filter', false); $aAllowedGroups = array('off' => _kt('-- Please filter --')); if($sFilter && trim($sFilter)) { $iGroupID = KTUtil::arrayGet($_REQUEST, 'group_id', false); if(!$iGroupID) { return array('error'=>true, 'type'=>'kt.invalid_entity', 'message'=>_kt('An invalid group was selected')); } $oGroup = Group::get($iGroupID); $aMemberGroupsUnkeyed = $oGroup->getMemberGroups(); $aMemberGroups = array(); $aMemberIDs = array(); foreach ($aMemberGroupsUnkeyed as $oMemberGroup) { $aMemberIDs[] = $oMemberGroup->getID(); $aMemberGroups[$oMemberGroup->getID()] = $oMemberGroup; } $aGroupArray = GroupUtil::buildGroupArray(); $aAllowedGroupIDs = GroupUtil::filterCyclicalGroups($oGroup->getID(), $aGroupArray); $aAllowedGroupIDs = array_diff($aAllowedGroupIDs, $aMemberIDs); $aAllowedGroups = array(); foreach ($aAllowedGroupIDs as $iAllowedGroupID) { $g = Group::get($iAllowedGroupID); if (!PEAR::isError($g) && ($g != false)) { $aAllowedGroups[$iAllowedGroupID] = $g->getName(); } } } return $aAllowedGroups; } // {{{ _getUnitName function _getUnitName($oGroup) { $iUnitId = $oGroup->getUnitId(); if (empty($iUnitId)) { return null; } $u = Unit::get($iUnitId); if (PEAR::isError($u)) { return null; // XXX: prevent failure if the $u is a PEAR::error } return $u->getName(); } // }}} // FIXME copy-paste ... // {{{ do_updateGroupMembers function do_updateGroupMembers() { $old_search = KTUtil::arrayGet($_REQUEST, 'old_search'); $group_id = KTUtil::arrayGet($_REQUEST, 'group_id'); $oGroup = Group::get($group_id); if ((PEAR::isError($oGroup)) || ($oGroup === false)) { $this->errorRedirectToMain('No such group.', sprintf("old_search=%s&do_search=1", $old_search)); } $groupAdded = KTUtil::arrayGet($_REQUEST, 'groups_items_added',''); $groupRemoved = KTUtil::arrayGet($_REQUEST, 'groups_items_removed',''); $aGroupToAddIDs = explode(",", $groupAdded); $aGroupToRemoveIDs = explode(",", $groupRemoved); $this->startTransaction(); $groupsAdded = array(); $groupsRemoved = array(); foreach ($aGroupToAddIDs as $iMemberGroupID ) { if ($iMemberGroupID > 0) { $oMemberGroup = Group::get($iMemberGroupID); $res = $oGroup->addMemberGroup($oMemberGroup); if (PEAR::isError($res)) { $this->errorRedirectToMain(sprintf(_kt("Failed to add %s to %s"), $oMemberGroup->getName(), $oGroup->getName()), sprintf("old_search=%s&do_search=1", $old_search)); exit(0); } else { $groupsAdded[] = $oMemberGroup->getName(); } } } foreach ($aGroupToRemoveIDs as $iMemberGroupID ) { if ($iMemberGroupID > 0) {
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?