issue 87 userlist in vitual site manager view

git-svn-id: http://xe-core.googlecode.com/svn/branches/1.5.0@8800 201d5d3c-b55e-5fd7-737f-ddc643e51545
This commit is contained in:
devjin 2011-08-18 02:59:51 +00:00
parent 5d415ec3c3
commit eeb849c836
10 changed files with 384 additions and 3 deletions

View file

@ -566,5 +566,89 @@
return new Object();
}
function _checkGrantSiteAdmin(){
$oMemberModel = &getModel('member');
$logged_info = $oMemberModel->getLoggedInfo();
$site_module_info = Context::get('site_module_info');
$oModuleModel = &getModel('module');
$grant = $oModuleModel->getGrant($site_module_info, $logged_info);
if(!$grant->is_site_admin) return $this->stop("msg_is_not_administrator");
$output->grant = $grant;
$output->site_srl = $site_module_info->site_srl;
return $output;
}
/**
*
**/
function procMemberAdminSiteMemberManage(){
// check siteadmin grant
$check_info = $this->_checkGrantSiteAdmin();
$oMemberController = &getController('member');
$var = Context::getRequestVars();
$groups = $var->groups;
$members = $var->member_srls;
$oDB = &DB::getInstance();
$oDB->begin();
// site_srl set
$args->site_srl = $check_info->site_srl;
if ($var->type == 'modify'){
if (count($groups) > 1){
$args->member_srl = $var->member_srls;
// delete origin group
$output = executeQuery('member.deleteMembersGroup', $args);
if (!$output->toBool()){
$oDB->rollback();
return $output;
}
foreach($groups as $group_srl){
foreach($members as $member_srl){
$output = $oMemberController->addMemberToGroup($member_srl, $group_srl, $check_info->site_srl);
if (!$output->toBool()){
$oDB->rollback();
return $output;
}
}
}
}
else {
$args->group_srl = $groups[0];
$args->member_srl = $var->member_srls;
$oMemberController->replaceMemberGroup($args);
}
}else if ($var->type == 'delete'){
$args->member_srl = $members;
$output = executeQuery('member.deleteMembersGroup', $args);
if(!$output->toBool()){
$oDB->rollback();
return $output;
}
}
$oDB->commit(true);
$message = $var->message;
// Send a message
if($message) {
$oCommunicationController = &getController('communication');
$logged_info = Context::get('logged_info');
$title = cut_str($message,10,'...');
$sender_member_srl = $logged_info->member_srl;
foreach($members as $member_srl){
$oCommunicationController->sendMessage($sender_member_srl, $member_srl, $title, $message, false);
}
}
$this->setRedirectUrl(Context::get('return_url'));
}
}
?>