Completed
Push — master ( 342ffa...2ca792 )
by Andrii
05:25
created

SignupForm   A

Complexity

Total Complexity 3

Size/Duplication

Total Lines 47
Duplicated Lines 0 %

Coupling/Cohesion

Components 1
Dependencies 2

Importance

Changes 1
Bugs 0 Features 0
Metric Value
c 1
b 0
f 0
dl 0
loc 47
rs 10
wmc 3
lcom 1
cbo 2

2 Methods

Rating   Name   Duplication   Size   Complexity  
A rules() 0 17 1
A signup() 0 14 2
1
<?php
2
3
/*
4
 * HiPanel core package
5
 *
6
 * @link      https://hipanel.com/
7
 * @package   hipanel-core
8
 * @license   BSD-3-Clause
9
 * @copyright Copyright (c) 2014-2016, HiQDev (http://hiqdev.com/)
10
 */
11
12
namespace hipanel\models;
13
14
use hipanel\models\User;
15
use yii\base\Model;
16
17
/**
18
 * Signup form.
19
 */
20
class SignupForm extends Model
21
{
22
    public $username;
23
    public $email;
24
    public $password;
25
26
    /**
27
     * {@inheritdoc}
28
     */
29
    public function rules()
30
    {
31
        return [
32
            ['username', 'filter', 'filter' => 'trim'],
33
            ['username', 'required'],
34
            ['username', 'unique', 'targetClass' => '\hipanel\models\User', 'message' => 'This username has already been taken.'],
35
            ['username', 'string', 'min' => 2, 'max' => 255],
36
37
            ['email', 'filter', 'filter' => 'trim'],
38
            ['email', 'required'],
39
            ['email', 'email'],
40
            ['email', 'unique', 'targetClass' => '\hipanel\models\User', 'message' => 'This email address has already been taken.'],
41
42
            ['password', 'required'],
43
            ['password', 'string', 'min' => 6],
44
        ];
45
    }
46
47
    /**
48
     * Signs user up.
49
     *
50
     * @return User|null the saved model or null if saving fails
51
     */
52
    public function signup()
53
    {
54
        if ($this->validate()) {
55
            $user = new User();
56
            $user->username = $this->username;
57
            $user->email = $this->email;
58
            $user->setPassword($this->password);
59
            $user->generateAuthKey();
60
            $user->save();
61
            return $user;
62
        }
63
64
        return null;
65
    }
66
}
67