Пример #1
0
 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;
 }
Пример #2
0
 /**
  * 过滤用户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;
 }
Пример #3
0
 /** 
  * 批量激活用户
  *
  */
 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');
 }
Пример #4
0
 /**
  * 通过监测用户数据更新字段,自动更新用户组 (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;
 }
Пример #5
0
 /** 
  * 添加用户
  * 
  * @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');
 }
Пример #6
0
 /** 
  * 添加用户
  * 
  * @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');
 }
Пример #7
0
 /** 
  * 设置用户信息
  *
  * @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;
 }
Пример #8
0
 /**
  * 同步用户数据
  * 
  * 如果本地有用户数据
  * 如果本地没有用户数据,则将用户数据从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;
 }