public function run() { require_once Yii::getPathOfAlias('ext') . "/OAuth/sinawb/saetv2.ex.class.php"; $config = OAuth::getConf('sinawb'); $sinawb = new SaeTOAuthV2($config['wb_akey'], $config['wb_skey']); if (isset($_REQUEST['code'])) { $keys = array(); $keys['code'] = $_REQUEST['code']; $keys['redirect_uri'] = $config['callback']; try { $token = $sinawb->getAccessToken('code', $keys); } catch (OAuthException $e) { throw new CHttpException(500, 'Error:' . $e->getMessage()); } } if ($token) { $access_token = Yii::app()->session['access_token'] = $token['access_token']; $openid = $token['uid']; //设置cookie $cookie_name = 'weibojs_' . $openid; $cookie = new CHttpCookie($cookie_name, http_build_query($token)); $cookie->expire = time() + 60 * 60 * 24 * 30; //有限期30天 Yii::app()->request->cookies[$cookie_name] = $cookie; //获取用户信息 $c = new SaeTClientV2(WB_AKEY, WB_SKEY, $access_token); $user_info = $c->show_user_by_id($openid); //根据ID获取用户等基本信息 if ($user_info['error']) { throw new CHttpException('500', Yii::t('common', 'Login Failed') . '(' . $user_info['error_code'] . ')'); } //查看是否已绑定 $bind = OAuthSinawb::model()->findByPk($openid); //数据 $data = array('type' => 'sinawb', 'access_token' => $access_token, 'openid' => $openid, 'uid' => $bind ? $bind->uid : 0, 'username' => $user_info['screen_name'], 'avatar' => $user_info['avatar_large']); //绑定注册 $this->controller->bind_register($bind, $data); } else { $this->controller->message('error', Yii::t('common', 'Login Failed') . '(sinawb_x_0000)', $this->createUrl('user/login')); } }
/** * 批量操作 * */ public function actionBatch() { if ($this->method() == 'GET') { $command = trim($this->_request->getParam('command')); $ids = intval($this->_request->getParam('id')); } elseif ($this->method() == 'POST') { $command = $this->_request->getPost('command'); $ids = $this->_request->getPost('id'); } else { throw new CHttpException(404, Yii::t('admin', 'Only POST Or GET')); } empty($ids) && $this->message('error', Yii::t('admin', 'No Select')); switch ($command) { case 'userLock': foreach ((array) $ids as $id) { $userModel = User::model()->findByPk($id); if ($userModel) { $userModel->status = 0; $userModel->save(); } } break; case 'userunLock': foreach ((array) $ids as $id) { $userModel = User::model()->findByPk($id); if ($userModel) { $userModel->status = 1; $userModel->save(); } } break; case 'userUnpass': foreach ((array) $ids as $id) { $userModel = User::model()->findByPk($id); if ($userModel) { $userModel->status = -1; $userModel->save(); } } break; case 'userDelete': foreach ((array) $ids as $id) { $userModel = User::model()->findByPk($id); if ($userModel) { $userModel->delete(); //删除绑定用户 OAuthQQ::model()->deleteAllByAttributes(array('uid' => $id)); OAuthSinawb::model()->deleteAllByAttributes(array('uid' => $id)); OAuthRenren::model()->deleteAllByAttributes(array('uid' => $id)); OAuthWeixin::model()->deleteAllByAttributes(array('uid' => $id)); //删除头像 Uploader::deleteFile($userModel->avatar); } } break; case 'groupDelete': foreach ((array) $ids as $id) { $groupModel = UserGroup::model()->findByPk($id); if ($groupModel) { $groupModel->delete(); } } default: throw new CHttpException(404, Yii::t('admin', 'Error Operation')); break; } $this->message('success', Yii::t('admin', 'Batch Operate Success'), $this->createUrl('index')); }