fitness-web/backend/models/UserCreate.php

79 lines
1.8 KiB
PHP

<?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],
];
}
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 [
'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);
}
}