/**
  * 根据版主名单更新数据<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;
 }
Exemple #4
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');
 }