/** * Finds user by [[username]] * * @return User|null */ public function getUser() { if ($this->_user === false) { $this->_user = User::findIdentityByAccessToken($this->username); } return $this->_user; }
public function checkAccess($action, $model = null, $params = []) { if (User::findIdentityByAccessToken($_GET['access_token'])->id == 1) { $isAdmin = true; } else { $isAdmin = false; } if (!$isAdmin || Yii::$app->user->isGuest) { throw new \yii\web\ForbiddenHttpException("You can't access this page."); } }
public function testFindUserByAccessToken() { expect_that($user = User::findIdentityByAccessToken('neo')); expect($user->username)->equals('neo'); expect_not(User::findIdentityByAccessToken('non-existing')); }
/** * Let user to change password authentication by given access token * @param string $token Access Token * @return type mixed */ public function actionChangesecurity($token) { //if user exists if ($model = User::findIdentityByAccessToken(base64_decode($token))) { if ($model->load(Yii::$app->request->post()) && $model->validate()) { $model->access_token = Yii::$app->security->generateRandomString(64); $model->save(); Yii::$app->session->setFlash('success', 'Please login with updated password!'); $this->redirect('login'); } unset($model->password); return $this->render('changepassword', ['model' => $model]); } else { throw new ForbiddenHttpException('You are not allowed to perform this action.'); } }
public function loginByAccessToken($token, $type = null) { $identity = User::findIdentityByAccessToken($token, $type); if ($identity && $this->login($identity)) { return $identity; } else { return null; } }
/** * generate doc * @var array $params */ public function generateDoc($params) { Yii::$app->user->identity = \app\models\User::findIdentityByAccessToken($params['template']['key']); header("Content-Description: File Transfer"); header('Content-Transfer-Encoding: binary'); header('Cache-Control: must-revalidate, post-check=0, pre-check=0'); header('Expires: 0'); switch ($params['template']['format']) { case 'PDF': $file = Yii::$app->user->id . '_temp.pdf'; $writeFormat = 'PDF'; PhpWordSettings::setPdfRendererPath(dirname(__DIR__) . '/../../../vendor/tecnickcom/tcpdf'); PhpWordSettings::setPdfRendererName('TCPDF'); header('Content-Type: application/pdf'); break; case 'Word2013': $file = Yii::$app->user->id . '_temp.docx'; $writeFormat = 'Word2013'; header('Content-Type: application/vnd.openxmlformats-officedocument.wordprocessingml.document'); break; default: $file = Yii::$app->user->id . '_temp.doc'; $writeFormat = 'Word2007'; header('Content-Type: application/vnd.openxmlformats-officedocument.wordprocessingml.document'); break; } header('Content-Disposition: attachment; filename="' . $file . '"'); $document = new TemplateProcessor(dirname(__DIR__) . '/../../../files/' . $this->id . '/' . $this->template_file); /** * process the fields, that have been send through the rest interface */ foreach ($params['template']['fields'] as $field) { foreach ($field as $key => $value) { $document->setValue($key, UTF8encoding::fixUTF8($value)); } } /** * process the tables, that have been send through the rest interface */ foreach ($params['template']['tables'] as $tables) { foreach ($tables as $name => $rows) { //first we create a clone for the master row $document->cloneRow($name, count($rows)); //our walking variable for the table $ii = 1; foreach ($rows as $row) { foreach ($row as $cell) { $document->setValue(key($cell) . '#' . $ii, current($cell)); } $ii++; } } } // save as a random file in temp file $temp_file = tempnam(sys_get_temp_dir(), $file); $document->saveAs($temp_file); switch ($params['template']['format']) { case 'PDF': $phpWord = IOFactory::load($temp_file); $xmlWriter = IOFactory::createWriter($phpWord, $writeFormat); $xmlWriter->save("php://output"); break; case 'Word2007': $phpWord = IOFactory::load($temp_file); $xmlWriter = IOFactory::createWriter($phpWord, $writeFormat); $xmlWriter->save("php://output"); break; default: readfile($temp_file); break; } unlink($temp_file); $LogEvent = new TemplateEvent(); $LogEvent->aTemplateCreated(Yii::$app->user->identity->username, $this->id); \Yii::$app->end(); }
public function actionTest() { return US::findIdentityByAccessToken('4f39779fd6acb266333ad658c317deb2390a8fde231447e2d8ae41079ff0a936'); }
/** * @expectedException Exception * @expectedExceptionMessage findIdentityByAccessToken is not implemented. */ public function testFindIdentityByAccessToken() { expect_not(User::findIdentityByAccessToken('test_token')); }