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') . ' &mdash; ';        $sWarnStr .= implode(', ', $addWarnings);        $_SESSION['KTInfoMessage'][] = $sWarnStr;    }        if (!empty($removeWarnings)) {        $sWarnStr = _kt('Warning:  some users are still members of some subgroups') . ' &mdash; ';        $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 + -
显示快捷键?