Behavior for change and create password of user account.
The preferred way to install this extension is through composer.
Either run
php composer.phar require --prefer-dist bupy7/yii2-password-behavior "*"
or add
"bupy7/yii2-password-behavior": "*"
to the require section of your composer.json
file.
Implement your user identity model with
bupy7\password\PasswordInterface
and add following code:
use Yii;
/**
* @inheritdoc
*/
public function validatePassword($password)
{
return Yii::$app->security->validatePassword($password, $this->password);
}
/**
* @inheritdoc
*/
public function setPassword($password)
{
$this->password = Yii::$app->security->generatePasswordHash($password);
}
Added following properties to your model:
public $old_password;
public $new_password;
public $confirmed_password;
Attach behavior to model in your controller:
use bupy7\password\PasswordBehavior;
$model->attachBehavior('passwordBehavior', [
'class' => PasswordBehavior::className(),
// other configurations
]);
In your controller:
use bupy7\password\PasswordBehavior;
$model->attachBehavior('passwordBehavior', [
'class' => PasswordBehavior::className(),
'skipOnEmpty' => true,
'checkPassword' => true,
'scenarios' => [$model->scenario],
]);
In your controller:
use bupy7\password\PasswordBehavior;
$model->attachBehavior('passwordBehavior', [
'class' => PasswordBehavior::className(),
'skipOnEmpty' => true,
'checkPassword' => false,
'scenarios' => [$model->scenario],
]);
use bupy7\password\PasswordBehavior;
$model->attachBehavior('passwordBehavior', [
'class' => PasswordBehavior::className(),
'skipOnEmpty' => false,
'checkPassword' => false,
'scenarios' => [$model->scenario],
]);
yii2-password-behavior is released under the BSD 3-Clause License.
Comments