SiteController.php 2.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102
  1. <?php
  2. namespace backend\controllers;
  3. use common\models\User;
  4. use Yii;
  5. use yii\helpers\Json;
  6. use yii\web\Controller;
  7. use yii\filters\VerbFilter;
  8. use yii\filters\AccessControl;
  9. use common\models\LoginForm;
  10. /**
  11. * Site controller
  12. */
  13. class SiteController extends Controller
  14. {
  15. /**
  16. * {@inheritdoc}
  17. */
  18. public function behaviors()
  19. {
  20. return [
  21. 'access' => [
  22. 'class' => AccessControl::className(),
  23. 'rules' => [
  24. [
  25. 'actions' => ['login', 'error', 'add-dec-test'],
  26. 'allow' => true,
  27. ],
  28. [
  29. 'actions' => ['logout', 'index'],
  30. 'allow' => true,
  31. 'roles' => ['@'],
  32. ],
  33. ],
  34. ],
  35. 'verbs' => [
  36. 'class' => VerbFilter::className(),
  37. 'actions' => [
  38. 'logout' => ['post'],
  39. ],
  40. ],
  41. ];
  42. }
  43. /**
  44. * {@inheritdoc}
  45. */
  46. public function actions()
  47. {
  48. return [
  49. 'error' => [
  50. 'class' => 'yii\web\ErrorAction',
  51. ],
  52. ];
  53. }
  54. /**
  55. * Displays homepage.
  56. *
  57. * @return string
  58. */
  59. public function actionIndex()
  60. {
  61. return $this->render('index');
  62. }
  63. /**
  64. * Login action.
  65. *
  66. * @return string
  67. */
  68. public function actionLogin()
  69. {
  70. if (!Yii::$app->user->isGuest) {
  71. return $this->goHome();
  72. }
  73. $model = new LoginForm();
  74. if ($model->load(Yii::$app->request->post()) && $model->login()) {
  75. return $this->goBack();
  76. } else {
  77. $model->password = '';
  78. return $this->render('login', [
  79. 'model' => $model,
  80. ]);
  81. }
  82. }
  83. /**
  84. * Logout action.
  85. *
  86. * @return string
  87. */
  88. public function actionLogout()
  89. {
  90. Yii::$app->user->logout();
  91. return $this->goHome();
  92. }
  93. }