Code Coverage
 
Classes and Traits
Functions and Methods
Lines
Total
0.00% covered (danger)
0.00%
0 / 1
0.00% covered (danger)
0.00%
0 / 4
CRAP
0.00% covered (danger)
0.00%
0 / 42
CreateUserForm
0.00% covered (danger)
0.00%
0 / 1
0.00% covered (danger)
0.00%
0 / 4
30.00
0.00% covered (danger)
0.00%
0 / 42
 rules
0.00% covered (danger)
0.00%
0 / 1
2.00
0.00% covered (danger)
0.00%
0 / 21
 getIsNewRecord
0.00% covered (danger)
0.00%
0 / 1
2.00
0.00% covered (danger)
0.00%
0 / 2
 getId
0.00% covered (danger)
0.00%
0 / 1
2.00
0.00% covered (danger)
0.00%
0 / 2
 create
0.00% covered (danger)
0.00%
0 / 1
6.00
0.00% covered (danger)
0.00%
0 / 17
<?php
namespace backend\models;
use Yii;
use common\models\User;
use yii\base\Model;
/**
 * Signup form
 */
class CreateUserForm extends Model
{
    private $id;
    public $firstname;
    public $lastname;
    public $username;
    public $email;
    public $password;
    public $repeatPassword;
    public $status = User::STATUS_ACTIVE;
    /**
     * @inheritdoc
     */
    public function rules()
    {
        return [
            ['firstname', 'filter', 'filter' => 'trim'],
            ['firstname', 'required'],
            ['lastname', 'filter', 'filter' => 'trim'],
            ['lastname', 'required'],
            ['username', 'filter', 'filter' => 'trim'],
            ['username', 'unique', 'targetClass' => User::classname(), 'message' => 'This username has already been taken.'],
            ['username', 'string', 'min' => 2, 'max' => 255],
            ['password', 'required'],
            ['password', 'string', 'min' => 6],
            ['repeatPassword', 'required'],
            ['repeatPassword', 'compare', 'compareAttribute' => 'password', 'skipOnEmpty' => false, 'message' => 'Repeat password should be exacly the same as password.'],
            ['email', 'filter', 'filter' => 'trim'],
            ['email', 'required'],
            ['email', 'email'],
            ['email', 'unique', 'targetClass' => User::classname(), 'message' => 'This email address has already been taken.'],
            ['status', 'default', 'value' => User::STATUS_ACTIVE],
            ['status', 'in', 'range' => [User::STATUS_ACTIVE, User::STATUS_DELETED]],
        ];
    }
    public function getIsNewRecord(){
        return true;
    }
    public function getId(){
        return $this->id;
    }
    /**
     * Signs user up.
     *
     * @return User|null the saved model or null if saving fails
     */
    public function create()
    {
        if ($this->validate()) {
            $user = new User();
            $user->firstname = $this->firstname;
            $user->lastname = $this->lastname;
            $user->username = $this->username;
            $user->email = $this->email;
            $user->status = $this->status;
            $user->setPassword($this->password);
            $user->generateAuthKey();
            $user->generateAccessToken();
            $user->save();
            $this->id = $user->id;
            return $user;
        }
        return null;
    }
}