Size: a a a

2019 November 13

KK

Kanat Kayir in PHP DevConf
весь?
источник

SR

Serik RAKHMETOV in PHP DevConf
ну да
источник

KK

Kanat Kayir in PHP DevConf
<?php
namespace frontend\modules\rest\controllers;

use frontend\modules\calendar\classes\response\Response;
use frontend\modules\projects\models\StructureEl;
use frontend\modules\rest\forms\AssignTokenForm;
use frontend\modules\rest\forms\LoginForm;
use frontend\modules\rest\forms\ResetPasswordFrom;
use yii\filters\auth\HttpBearerAuth;
use yii\rest\Controller;
use yii;
use frontend\models\SignupForm;
use yii\web\UploadedFile;

class AuthController extends Controller
{
   public function behaviors()
   {
       $behaviors['corsFilter'] = [
           'class' => \yii\filters\Cors::className()
       ];

       $behaviors['authenticator'] = [
           'class' => HttpBearerAuth::className(),
           'except'=>['login','OPTIONS']
       ];

       return $behaviors;
   }

   public function beforeAction($action)
   {
       Yii::$app->response->format = yii\web\Response::FORMAT_JSON;
       return parent::beforeAction($action);
   }

   public function actionLogin()
   {
       Yii::$app->response->format = yii\web\Response::FORMAT_JSON;
       $model = new LoginForm();
       $model->username = Yii::$app->request->post('username');
       $model->password = Yii::$app->request->post('password');

       if ( $model->login() ) {
           return Yii::$app->user->identity->auth_key;
       }

       return $model->getErrors();
   }

   public function actionGetUserInfo(){
       Yii::$app->response->format = yii\web\Response::FORMAT_JSON;
       $profile = Yii::$app->user->identity->profile;

       Yii::$app->response->statusCode = 200;
       return [
           'firstName' => $profile->second_name,
           'surName' => $profile->first_name,
           'fatherName' => $profile->family,
           'fio' => $profile->fioinic
       ];
   }

   public function actionLogout()
   {
       $user = Yii::$app->user->identity;
       $user->hash_create_time = NULL;
       $user->auth_key = '';
       $user->save();
       return true;
   }

   public function actionChangePassword(){
       $form = new ResetPasswordFrom();
       $form->load(Yii::$app->request->post(),'');

       if($form->validate()){
           $form->reset();
           return [
               'status'=>1
           ];
       }

       return [
           'status'=>0,
           'errors'=>$form->getErrorSummary(true)
       ];
   }

   public function actionAssignToken(){
       $form = new AssignTokenForm();

       $form->load(Yii::$app->request->post(),'');
       if($form->validate()){
           $form->assign();
           return [
               'status'=>1
           ];
       }

       return [
           'status'=>0,
           'errors'=>$form->getErrorSummary(true)
       ];
   }

   /**
    * @return array
    */
   public function actionUpdateUserprofile() {
       Yii::$app->response->format = yii\web\Response::FORMAT_JSON;
       $model = SignupForm::createSignFormByUserId(Yii::$app->user->identity->id);
       if ($model->load(Yii::$app->request->post())){
           $model->imageFiles = UploadedFile::getInstances($model, 'imageFiles');
           if($model->updateUserprofile(false) !== null) {

               return [
                   'status' => 1
               ];
           } else {
               return [
                   'status'=>0,
                   'errors'=>'Ошибка при сохранении данных!'
               ];
           };
       }
   }
}
источник

SR

Serik RAKHMETOV in PHP DevConf
return $this->asJson(['status' => 1]);
источник

VK

Vlad Kim in PHP DevConf
Loot.jpg
думаешь в yii есть composer?
есть
источник

L

Loot.jpg in PHP DevConf
Vlad Kim
есть
</sarcasm>
источник

KK

Kanat Kayir in PHP DevConf
Короч
источник

KK

Kanat Kayir in PHP DevConf
Все хуйня
источник

KK

Kanat Kayir in PHP DevConf
Решил лучше с фронта два поста сделать
источник

KK

Kanat Kayir in PHP DevConf
чем тут голову ломать
источник

D

DK in PHP DevConf
Kanat Kayir
Решил лучше с фронта два поста сделать
а ты ведь осознаешь,что это не гарантия отправки?
источник

D

DK in PHP DevConf
я тебе хотел с самого начала предложить,но это стрёмно
источник

D

DK in PHP DevConf
Kanat Kayir
Решил лучше с фронта два поста сделать
если он успеет сделать 1 запрос к тебе на бэк и захлопнет вкладку?
источник

D

DK in PHP DevConf
маловероятно коненчо,но рисковать я бы не стал..
источник

KK

Kanat Kayir in PHP DevConf
да это же вообще минимум какой то
источник

KK

Kanat Kayir in PHP DevConf
0,001 процент
источник

D

DK in PHP DevConf
но мне бы спалось спокойнее)
источник

D

DK in PHP DevConf
хорошо другой момент,если чужое API вернуло ошибку?
источник

D

DK in PHP DevConf
кто об этом узнает? когда тебе по шапке настучат?
источник

KK

Kanat Kayir in PHP DevConf
Нет, на фронте ошибку выкинуть что ошибка
источник