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 / 5
CRAP
0.00% covered (danger)
0.00%
0 / 38
UserForm
0.00% covered (danger)
0.00%
0 / 1
0.00% covered (danger)
0.00%
0 / 5
56.00
0.00% covered (danger)
0.00%
0 / 38
 rules
0.00% covered (danger)
0.00%
0 / 1
2.00
0.00% covered (danger)
0.00%
0 / 16
 getId
0.00% covered (danger)
0.00%
0 / 1
2.00
0.00% covered (danger)
0.00%
0 / 3
 getUsername
0.00% covered (danger)
0.00%
0 / 1
2.00
0.00% covered (danger)
0.00%
0 / 3
 getFullname
0.00% covered (danger)
0.00%
0 / 1
2.00
0.00% covered (danger)
0.00%
0 / 3
 save
0.00% covered (danger)
0.00%
0 / 1
12.00
0.00% covered (danger)
0.00%
0 / 13
<?php
namespace frontend\models;
use common\models\User;
use yii\base\Model;
use Yii;
use yii\db\QueryBuilder;
/**
 * User form
 */
class UserForm extends Model
{
    public $firstname;
    public $lastname;
    public $email;
    public $password;
    public $repeatPassword;
    /**
     * @inheritdoc
     */
    public function rules()
    {
        return [
            ['firstname', 'filter', 'filter' => 'trim'],
            ['firstname', 'required'],
            ['lastname', 'filter', 'filter' => 'trim'],
            ['lastname', 'required'],
            ['email', 'filter', 'filter' => 'trim'],
            ['email', 'required'],
            ['email', 'email'],
            ['email', 'unique', 'filter' => ['<>', 'id', $this->id], 'targetClass' => '\common\models\User', 'message' => 'This email address has already been taken.'],
            ['password', 'safe'],
            ['password', 'string', 'min' => 6],
            ['repeatPassword', 'safe'],
            ['repeatPassword', 'compare', 'compareAttribute' => 'password', 'skipOnEmpty' => false, 'message' => 'Repeat password should be exacly the same as password.'],
        ];
    }
    /**
     * User id.
     *
     * @return string|integer the currently logged user id
     */
    public function getId()
    {
        return Yii::$app->user->id;
    }
    /**
     * User username.
     *
     * @return string|null the currently logged user username
     */
    public function getUsername()
    {
        return Yii::$app->user->identity->username;
    }
    /**
     * User username.
     *
     * @return string|null the currently logged user fullname
     */
    public function getFullname()
    {
        return Yii::$app->user->identity->fullname;
    }
    /**
     * User.
     *
     * @return User|null the saved model or null if saving fails
     */
    public function save()
    {
        if ($this->validate()) {
            $user = User::findOne($this->id);
            $user->firstname = $this->firstname;
            $user->lastname = $this->lastname;
            $user->email = $this->email;
            if(!empty($this->password))
                $user->setPassword($this->password);
            $user->save();
            return $user;
        }
        return null;
    }
}