[ 'class' => AccessControl::class, 'only' => ['logout'], 'rules' => [ [ 'actions' => ['logout'], 'allow' => true, 'roles' => ['@'], ], ], ], 'verbs' => [ 'class' => VerbFilter::class, 'actions' => [ 'logout' => ['get'], ], ], ]; } /** * {@inheritdoc} */ public function actions() { return [ 'error' => [ 'class' => 'yii\web\ErrorAction', ], 'captcha' => [ 'class' => 'yii\captcha\CaptchaAction', 'fixedVerifyCode' => YII_ENV_TEST ? 'testme' : null, ], ]; } public function beforeAction($action) { parent::beforeAction($action); if ($action->id == 'login') { return true; } if (Yii::$app->user->isGuest) { return $this->redirect('/login'); } return true; } /** * Displays homepage. * * @return string */ public function actionIndex() { $this->layout = 'main_index'; if (Yii::$app->user->isGuest) { return $this->redirect(['site/login']); } return $this->render('index'); } /** * Login action. * * @return Response|string */ public function actionLogin() { if (!Yii::$app->user->isGuest) { return $this->goHome(); } $model = new LoginForm(); if ($model->load(Yii::$app->request->post()) && $model->login()) { return $this->goBack(); } $model->password = ''; return $this->render('login', [ 'model' => $model, ]); } /** * Logout action. * * @return Response */ public function actionLogout() { Yii::$app->user->logout(); return $this->goHome(); } /** * Displays contact page. * * @return Response|string */ public function actionContact() { $model = new ContactForm(); if ($model->load(Yii::$app->request->post()) && $model->contact(Yii::$app->params['adminEmail'])) { Yii::$app->session->setFlash('contactFormSubmitted'); return $this->refresh(); } return $this->render('contact', [ 'model' => $model, ]); } /** * Displays about page. * * @return string */ public function actionAbout() { return $this->render('about'); } public function actionConsole() { $this->layout = 'main_index'; return $this->render('console'); } public function actionXiansuo() { $this->layout = 'main_index'; return $this->render('xiansuo'); } public function actionUsers() { $this->layout = 'main_index'; return $this->render('users'); } public function actionUsercreate() { $this->layout = 'main_index'; return $this->render('user/create'); } public function actionUseredit() { $id = Yii::$app->request->get('id'); $this->layout = 'main_index'; $advertiser = UserAdvertiser::find()->where([ 'user_id' => $id, 'is_delete' => 0 ])->indexBy('advertiser_id')->asArray()->all() ?: []; $allLocalAccount = OauthAccountLocal::find()->asArray()->all(); $advertiserList = []; foreach ($allLocalAccount as $item) { $advertiserList[] = [ 'name' => $item['advertiser_name'], 'value' => $item['id'], 'selected' => isset($advertiser[$item['advertiser_id']]) ]; } return $this->render('user/edit', [ 'advertiser' => $advertiserList, 'user_id' => $id ]); } public function actionUsereditpasswprd() { $id = Yii::$app->request->get('id'); $query = User::find()->where(['id' => $id])->asArray()->one(); $this->layout = 'main_index'; return $this->render('user/edit-password', [ 'query' => $query ]); } public function actionOauth() { // http://j56ff926.natappfree.cc/?app_id=1852484891502756&auth_code=e7eb2c40cc7ebe38e359b283701e9406c3f1a382&material_auth_status=1&scope=%5B10000000%2C200000032%2C2%2C3%2C4%2C5%2C300000006%2C300000040%2C300000041%2C130%2C14%2C112%2C300000052%2C110%2C120%2C122%2C123%2C124%2C300000029%2C300000000%2C100000005%5D&state=your_custom_params&uid=4121395460312552 $request = Yii::$app->request->get(); $appId = $request['app_id']; $authCode = $request['auth_code']; $materialAuthStatus = $request['material_auth_status']; $scope = $request['scope']; $uid = $request['uid']; $oauth = Oauth::find()->where(['uid' => $uid])->one(); if (!$oauth) { $oauth = new Oauth(); } $oauth->app_id = $appId; $oauth->auth_code = $authCode; $oauth->material_auth_status = $materialAuthStatus; $oauth->scope = $scope; $oauth->uid = $uid; $oauth->save(); $curl = new \app\common\CurlApp(); $curl->setMethod(); $curl->setUrl('https://ad.oceanengine.com/open_api/oauth2/access_token/'); $curl->setPostData([ "app_id" => Yii::$app->params['app_id'], "secret" => Yii::$app->params['secret'], "auth_code" => $authCode ]); $res = json_decode($curl->exec(), true); if ($res['code'] != '0') { throw new \Exception($res['message']); } $oauth->advertiser_ids = json_encode($res['data']['advertiser_ids']); $oauth->access_token = $res['data']['access_token']; $oauth->refresh_token = $res['data']['refresh_token']; $oauth->save(); echo '授权成功, 请关闭此页面';die; } /** * */ public function actionOauthmanage() { // TODO: 管理员验证 $this->layout = 'main_index'; return $this->render('oauth-manage'); } /** * * @url oauthmanageconfig * @return string */ public function actionOauthmanageconfig() { // TODO: 管理员验证 $this->layout = 'main_index'; $adminUid = Yii::$app->request->get('uid'); $arr = []; $accounts = OauthAccount::find()->where(['admin_uid' => $adminUid, 'is_delete' => 0])->all(); foreach ($accounts as $account) { $arr[$account['account_name']] = [ 'id' => $account['account_id'], 'items' => OauthAccountLocal::find()->where(['account_id' => $account['account_id'], 'is_delete' => 0])->asArray()->all() ]; } return $this->render('oauth-manage-config', [ 'arr' => $arr ]); } public function actionGenjin() { $clueId = Yii::$app->request->get('clue_id'); $note = Clue::find()->where(['clue_id' => $clueId])->one(); $this->layout = 'main_index'; return $this->render('genjin', [ 'clueId' => $clueId, 'note' => $note->note, 'name' => $note->name, 'covert_status' => $note->convert_status ]); } public function actionPrivate() { $this->layout = 'main_index'; return $this->render('xiansuo_private'); } }