<?php
namespace backend\models;

use Yii;
use common\models\User;

class UserCreate extends User{

	public $password_plain;
	public $password_repeat;
	public $selected_accounts = [];
	
	public $role;
	
	/**
	 * @inheritdoc
	 */
	public function rules()
	{
		return [
				[['username','email','password_plain','password_repeat'], 'required' ],
				['selected_accounts',function ($attribute, $params) {
					if (!is_array($this->$attribute)) {
						$this->addError($attribute, 'Invalid array');
					}
				}
				],
				['email' ,'email' ],
				['email' ,'unique' ],
				['username' ,'unique' ],
				[['password_plain' ,'password_repeat'] ,'string','min' =>6 ],
				[['password_repeat']   ,'validatePasswordRepeat' ],
				
				[['role'], 'required'],
				[['role'], 'string', 'max' => 20],
				['status', 'default', 'value' => self::STATUS_ACTIVE],
				['status', 'in', 'range' => [self::STATUS_ACTIVE, self::STATUS_DELETED]],
		];
	}
	
	public function validatePasswordRepeat($attribute,$params){
		
		if ( !$this->hasErrors()){
			if ( $this->password_plain != $this->password_repeat ){
				$this->addError($attribute, Yii::t('app', 'Jelszó és jelszó újra nem egyezik!') );
			}
		}
	}
	
	public function attributeLabels(){
		return [
				'status' => 'Státusz',
				'email' =>'E-mail',
				'username' =>'Felhasználónév',
				'created_at' =>'Létrehozás dátuma',
				'password_plain' => Yii::t('app','Jelszó'),
				'password_repeat' => Yii::t('app','Jelszó újra'),
				 
		];
	}
	
	public function beforeSave($insert){
		if ( parent::beforeSave($insert)){
			if ( $insert ){
				$this->setPassword($this->password_plain);
				$this->generateAuthKey();
				return true;
			}
		}else{
			return false;
		}
	}
	
	public function afterSave($insert, $changedAttributes){
	 	parent::afterSave($insert, $changedAttributes); 
		$am = Yii::$app->authManager;
    	$role = $am->getRole($this->role);
		Yii::$app->authManager->assign($role, $this->id);
	}
	
}