/** * 根据版主名单更新数据<1.pw_user_belong 2.pw_user中的groups字段> * * @param array $manager 所有的版主名单 */ public function updateManager($manager) { $newManager = Wekit::load('user.PwUser')->fetchUserByName($manager); $uids = array_keys(Wekit::load('user.PwUserBelong')->getUserByGid(5)); $oldManager = Wekit::load('user.PwUser')->fetchUserByUid($uids); if (!$newManager && !$oldManager) { return; } $newUids = array_keys($newManager); $oldUids = array_keys($oldManager); $add = array_diff($newUids, $oldUids); $del = array_diff($oldUids, $newUids); if (!$add && !$del) { return; } Wind::import('SRV:user.dm.PwUserInfoDm'); $belongs = $this->getBelongs(array_merge($add, $del)); foreach ($add as $uid) { $dm = new PwUserInfoDm($uid); $belong = isset($belongs[$uid]) ? $belongs[$uid] : array(); if ($newManager[$uid]['groupid']) { $belong[5] = 0; $dm->setGroupid($newManager[$uid]['groupid']); } else { $dm->setGroupid(5); } $dm->setGroups($belong); Wekit::load('user.PwUser')->editUser($dm, PwUser::FETCH_MAIN); } foreach ($del as $uid) { $dm = new PwUserInfoDm($uid); $belong = isset($belongs[$uid]) ? $belongs[$uid] : array(); unset($belong[5]); if ($oldManager[$uid]['groupid'] == 5) { $dm->setGroupid(0); } else { $dm->setGroupid($oldManager[$uid]['groupid']); } $dm->setGroups($belong); Wekit::load('user.PwUser')->editUser($dm, PwUser::FETCH_MAIN); } }
/** * 添加用户 * * @return void */ public function addAction() { if ($this->getInput('type', 'post') === 'do') { Wind::import('SRC:service.user.dm.PwUserInfoDm'); $dm = new PwUserInfoDm(); $dm->setUsername($this->getInput('username', 'post'))->setPassword($this->getInput('password', 'post'))->setEmail($this->getInput('email', 'post'))->setRegdate(Pw::getTime())->setRegip($this->getRequest()->getClientIp()); $groupid = $this->getInput('groupid', 'post'); $dm->setGroupid($groupid); if ($groupid != 0) { // 默认组不保存到groups /* @var $groupDs PwUserGroups */ $groupDs = Wekit::load('usergroup.PwUserGroups'); $groups = $groupDs->getGroupsByType('default'); if (!in_array($groupid, array_keys($groups))) { $dm->setGroups(array($groupid => 0)); } } /* @var $groupService PwUserGroupsService */ $groupService = Wekit::load('usergroup.srv.PwUserGroupsService'); $memberid = $groupService->calculateLevel(0); $dm->setMemberid($memberid); $result = Wekit::load('user.PwUser')->addUser($dm); if ($result instanceof PwError) { $this->showError($result->getError()); } //添加站点统计信息 Wind::import('SRV:site.dm.PwBbsinfoDm'); $bbsDm = new PwBbsinfoDm(); $bbsDm->setNewmember($dm->getField('username'))->addTotalmember(1); Wekit::load('site.PwBbsinfo')->updateInfo($bbsDm); //Wekit::load('user.srv.PwUserService')->restoreDefualtAvatar($result); $this->showMessage('USER:add.success'); } /* @var $groupDs PwUserGroups */ $groupDs = Wekit::load('usergroup.PwUserGroups'); $groups = $groupDs->getClassifiedGroups(); unset($groups['system'][5]); //排除“版主” $result = array_merge($groups['special'], $groups['system']); $this->setOutput($result, 'groups'); }
/** * 过滤用户DM同时设置用户的相关信息 * * @param PwUserInfoDm $userDm * @param array $hasCredit * @return PwUserInfoDm */ protected function filterUserDm(PwUserInfoDm $userDm, $hasCredit = array()) { //如果开启邮箱激活,则设置该状态为0,否则设置该状态为1 $_uncheckGid = false; if ($this->config['active.mail']) { $userDm->setUnactive(true); $_uncheckGid = true; } //如果开启审核,则设置该状态为0,否则设置该状态为1 if ($this->config['active.check']) { $userDm->setUncheck(true); $_uncheckGid = true; } //【用户注册】未验证用户组 if ($_uncheckGid) { $userDm->setGroupid(7); $userDm->setGroups(array()); } $_credit = $this->_getRegisterAddCredit($hasCredit); //【用户注册】计算memberid /* @var $groupService PwUserGroupsService */ $groupService = Wekit::load('usergroup.srv.PwUserGroupsService'); $credit = $groupService->calculateCredit(Wekit::C('site', 'upgradestrategy'), $_credit); $memberid = $groupService->calculateLevel($credit); $userDm->setMemberid($memberid); return $userDm; }
/** * 添加用户 * * @return void */ public function addAction() { if ($this->getInput('type', 'post') === 'do') { //check mobile $mobile = $this->getInput("mobile"); if (empty($mobile) || strlen($mobile) != 11) { $this->showError("手机号码必填"); } $pwUserMobile = Wekit::load('user.PwUserMobile'); $userMobile = $pwUserMobile->getByMobile($mobile); if (empty($userMobile) == false) { $this->showError("手机号码已被注册"); } Wind::import('SRC:service.user.dm.PwUserInfoDm'); $dm = new PwUserInfoDm(); $dm->setUsername($this->getInput('username', 'post'))->setPassword($this->getInput('password', 'post'))->setEmail($this->getInput('email', 'post'))->setRegdate(Pw::getTime())->setMobile($mobile)->setRegip($this->getRequest()->getClientIp()); $groupid = $this->getInput('groupid', 'post'); $dm->setGroupid($groupid); if ($groupid != 0) { // 默认组不保存到groups /* @var $groupDs PwUserGroups */ $groupDs = Wekit::load('usergroup.PwUserGroups'); $groups = $groupDs->getGroupsByType('default'); if (!in_array($groupid, array_keys($groups))) { $dm->setGroups(array($groupid => 0)); } } /* @var $groupService PwUserGroupsService */ $groupService = Wekit::load('usergroup.srv.PwUserGroupsService'); $memberid = $groupService->calculateLevel(0); $dm->setMemberid($memberid); $result = Wekit::load('user.PwUser')->addUser($dm); if ($result instanceof PwError) { $this->showError($result->getError()); } //add mapping $pwUserMobile->replaceMobile($result, $mobile); //Wekit::load('user.srv.PwUserService')->restoreDefualtAvatar($result); $this->showMessage('USER:add.success'); } /* @var $groupDs PwUserGroups */ $groupDs = Wekit::load('usergroup.PwUserGroups'); $groups = $groupDs->getClassifiedGroups(); unset($groups['system'][5]); //排除“版主” $result = array_merge($groups['special'], $groups['system']); $this->setOutput($result, 'groups'); }