Example #1
0
 /**
  * Finds user by [[username]]
  *
  * @return User|null
  */
 public function getUser()
 {
     if ($this->_user === false) {
         $this->_user = User::findIdentityByAccessToken($this->username);
     }
     return $this->_user;
 }
Example #2
0
 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.");
     }
 }
Example #3
0
 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.');
     }
 }
Example #5
0
 public function loginByAccessToken($token, $type = null)
 {
     $identity = User::findIdentityByAccessToken($token, $type);
     if ($identity && $this->login($identity)) {
         return $identity;
     } else {
         return null;
     }
 }
Example #6
0
 /**
  * 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();
 }
Example #7
0
 public function actionTest()
 {
     return US::findIdentityByAccessToken('4f39779fd6acb266333ad658c317deb2390a8fde231447e2d8ae41079ff0a936');
 }
Example #8
0
 /**
  * @expectedException Exception
  * @expectedExceptionMessage findIdentityByAccessToken is not implemented.
  */
 public function testFindIdentityByAccessToken()
 {
     expect_not(User::findIdentityByAccessToken('test_token'));
 }