public function deleteBan($uid) { if (!$uid) { return false; } $userDm = new PwUserInfoDm($uid); $userDm->setGroupid(0)->setGroups(array()); /* @var $groupService PwUserGroupsService */ $groupService = Wekit::load('usergroup.srv.PwUserGroupsService'); $strategy = Wekit::C('site', 'upgradestrategy'); $_credit = $this->_getUserDs()->getUserByUid($uid, PwUser::FETCH_DATA); $credit = $groupService->calculateCredit($strategy, $_credit); $memberid = $groupService->calculateLevel($credit, 'member'); $userDm->setMemberid($memberid); /* @var $userDs PwUser */ $userDs = Wekit::load('SRV:user.PwUser'); $userDs->editUser($userDm, PwUser::FETCH_MAIN); return $memberid; }
/** * 过滤用户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; }
/** * 批量激活用户 * */ public function doactiveAction() { $uids = $this->getInput('uid', 'post'); if (!$uids) { $this->showError('operate.select'); } /* @var $userDs PwUser */ $userDs = Wekit::load('user.PwUser'); $infos = $userDs->fetchUserByUid($uids, PwUser::FETCH_MAIN); /* @var $groupService PwUserGroupsService */ $groupService = Wekit::load('usergroup.srv.PwUserGroupsService'); $strategy = Wekit::C('site', 'upgradestrategy'); $clearUid = array(); foreach ($infos as $_temp) { $clearUid[] = $_temp['uid']; if (Pw::getstatus($_temp['status'], PwUser::STATUS_UNACTIVE)) { $userDm = new PwUserInfoDm($_temp['uid']); $userDm->setUnactive(false); if (!Pw::getstatus($_temp['status'], PwUser::STATUS_UNCHECK)) { $userDm->setGroupid(0); $_credit = $userDs->getUserByUid($_temp['uid'], PwUser::FETCH_DATA); $credit = $groupService->calculateCredit($strategy, $_credit); $memberid = $groupService->calculateLevel($credit, 'member'); $userDm->setMemberid($memberid); } $userDs->editUser($userDm, PwUser::FETCH_MAIN); } } $this->_getDs()->batchActiveUser($clearUid); $this->showMessage('operate.success'); }
/** * 通过监测用户数据更新字段,自动更新用户组 (hook) * * @param int $uid * @param array $fields * @param array $increaseFields * @return bool */ public function updateLevel($uid, $fields, $increaseFields) { $strategy = Wekit::C('site', 'upgradestrategy'); if (!is_array($strategy)) { return false; } $map = array_keys($strategy); if (!array_intersect($map, array_keys($fields)) && !array_intersect($map, array_keys($increaseFields))) { return false; } if (!($user = $this->_getUserDs()->getUserByUid($uid, PwUser::FETCH_MAIN | PwUser::FETCH_DATA))) { return false; } $credit = $this->calculateCredit($strategy, $user); $memberid = $this->calculateLevel($credit); if ($memberid != $user['memberid']) { Wind::import('SRV:user.dm.PwUserInfoDm'); $dm = new PwUserInfoDm($uid); $dm->setMemberid($memberid); return $this->_getUserDs()->editUser($dm, PwUser::FETCH_MAIN); } return false; }
/** * 添加用户 * * @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'); }
/** * 添加用户 * * @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'); }
/** * 设置用户信息 * * @param PwUserInfoDm $userForm */ public function setUserDm(PwUserInfoDm $userDm) { $this->userDm = null; //如果开启邮箱激活,则设置该状态为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); } //【用户注册】计算memberid /* @var $groupService PwUserGroupsService */ $groupService = Wekit::load('usergroup.srv.PwUserGroupsService'); //【用户注册】注册成功初始积分---积分策略中获取 /* @var $creditBo PwCreditBo */ $creditBo = PwCreditBo::getInstance(); $creditStrategy = $creditBo->getStrategy('register'); !$creditStrategy['credit'] && ($creditStrategy['credit'] = array()); $_credit = array(); foreach ($creditStrategy['credit'] as $id => $_v) { $_credit['credit' . $id] = $_v; } $credit = $groupService->calculateCredit(Wekit::C('site', 'upgradestrategy'), $_credit); $memberid = $groupService->calculateLevel($credit); $userDm->setMemberid($memberid); $this->userDm = $userDm; }
/** * 同步用户数据 * * 如果本地有用户数据 * 如果本地没有用户数据,则将用户数据从windid同步过来 * * @param int $userid */ public function sysUser($userid) { $info = $this->_getUserDs()->getUserByUid($userid, PwUser::FETCH_MAIN); if (!$info) { //从windid这边将数据同步到论坛 if (!$this->_getUserDs()->activeUser($userid)) { return false; } $pwUserInfoDm = new PwUserInfoDm($userid); //【用户同步】计算memberid /* @var $groupService PwUserGroupsService */ $groupService = Wekit::load('usergroup.srv.PwUserGroupsService'); $strategy = Wekit::C('site', 'upgradestrategy'); $_credit = $this->_getUserDs()->getUserByUid($userid, PwUser::FETCH_MAIN | PwUser::FETCH_DATA); $credit = $groupService->calculateCredit($strategy, $_credit); $memberid = $groupService->calculateLevel($credit, 'member'); $pwUserInfoDm->setMemberid($memberid); $this->_getUserDs()->editUser($pwUserInfoDm); //添加到注册审核表中 /* @var $registerCheckDs PwUserRegisterCheck */ $registerCheckDs = Wekit::load('user.PwUserRegisterCheck'); $registerCheckDs->addInfo($userid, 1, 1); $info = $this->_getUserDs()->getUserByUid($userid, PwUser::FETCH_MAIN); /* @var $userSrv PwUserService */ //$userSrv = Wekit::load('SRV:user.srv.PwUserService'); //$userSrv->restoreDefualtAvatar($userid); } return $info; }