Guest User

Untitled

a guest
Dec 21st, 2018
149
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.79 KB | None | 0 0
  1. public function actionSignup(){
  2. if(!Yii::$app->user->isGuest){
  3. return $this->goHome();
  4. }
  5. $model = new signupForm();
  6. if($model->load(Yii::$app->request->post()) && $model->validate()){
  7. $user = new User();
  8. $user->username = $model->username;
  9. $user->password = $user->setPassword($model->password);//Yii::$app->security->generatePasswordHash($model->password);//
  10. if($user->save() && Yii::$app->user->login($user->findByUsername($user->username), $this->rememberMe ? 3600*24*30 : 0)){
  11. return $this->goHome();
  12. } else {
  13. return $user->error;
  14. }
  15.  
  16. }
  17. return $this->render('signup', ['model' => $model] );
  18. }
  19.  
  20. public function actionLogin(){
  21. if (!Yii::$app->user->isGuest){
  22. return $this->goHome();
  23. }
  24.  
  25. $model = new LoginForm();
  26. if ($model->load(Yii::$app->request->post()) && $model->login()){
  27. return $this->goBack();
  28. }
  29.  
  30. $model->password = '';
  31. return $this->render('login', [
  32. 'model' => $model,
  33. ]);
  34. }
  35.  
  36. <?php
  37.  
  38. namespace appmodels;
  39.  
  40. use Yii;
  41. use yiibaseModel;
  42. use appmodelsUser;
  43.  
  44.  
  45. class LoginForm extends Model{
  46. public $username;
  47. public $password;
  48. public $rememberMe = true;
  49.  
  50. private $_user = false;
  51.  
  52.  
  53. public function rules(){
  54. return [
  55. // username and password are both required
  56. [['username', 'password'], 'required'],
  57. // rememberMe must be a boolean value
  58. ['rememberMe', 'boolean'],
  59. // password is validated by validatePassword()
  60. ['password', 'validatePassword'],
  61. ];
  62. }
  63.  
  64. public function attributeLabels() {
  65. return [
  66. 'username' => 'Имя',
  67. 'password' => 'Пароль',
  68. 'rememberMe' => 'Запомнить меня',
  69. ];
  70. }
  71.  
  72. public function validatePassword($attribute, $params){
  73.  
  74. if (!$this->hasErrors()) {
  75. $user = $this->username;
  76. if($lol = $this->getUser($user)){
  77. if(!$lol || !$lol->validatePassword($this->password, $lol->password_hash )){
  78. $this->addError($attribute, 'Неправильный пароль');
  79. } else {
  80. return true;
  81. }
  82. } else {
  83. $this->addError($attribute, 'Такого логина не существует.');
  84. }
  85. }
  86. }
  87.  
  88. public function login(){
  89. if ($this->validate()){
  90. return Yii::$app->user->login($this->getUser(), $this->rememberMe ? 3600*24*30 : 0);
  91. }
  92. return false;
  93. }
  94.  
  95.  
  96. public function getUser(){
  97. if ($this->_user === false) {
  98. $this->_user = User::findByUsername($this->username);
  99. }
  100.  
  101. return $this->_user;
  102. }
  103.  
  104. }
Add Comment
Please, Sign In to add comment