public function actionIndex()
{
$this->View->title = 'Mi cuenta';
$modelAccount = new FormAccount();
$contact = Users::find()->one(Gbox::$components->user->id);
$modelAccount->firstname = $contact->firstname;
$modelAccount->lastname = $contact->lastname;
$modelAccount->email = $contact->email;
$modelAccount->username = $contact->username;
if (Gbox::getRequest()->isPost() && $modelAccount->load(Gbox::getRequest()->post())) {
if (!empty($modelAccount->password) && $modelAccount->password != $modelAccount->password_confirm) {
$modelAccount->addError('password_confirm', 'La contraseña debe coincidir con la confirmación.');
}
if ($modelAccount->validate()) {
$table = new Users();
$table->firstname = $modelAccount->firstname;
$table->lastname = $modelAccount->lastname;
$table->email = $modelAccount->email;
if (!empty($modelAccount->password) && $modelAccount->password == $modelAccount->password_confirm) {
$table->password = crypt($modelAccount->password, '$2y$10$' . Gbox::getConfig()->params['salt']);
}
if ($table->update(Gbox::$components->user->id)) {
$msg = 'Se ha editado su cuenta con éxito.';
Session::set('response', ['msg' => $msg, 'type' => 'success']);
} else {
Session::set('response', ['msg' => 'Ha ocurrido un error al editar su cuenta.', 'type' => 'danger']);
}
} else {
Session::set('response', ['msg' => 'Ocurrió un error, revise los campos y vuelva a intentarlo.', 'type' => 'warning']);
}
}
return $this->render('index', ['modelAccount' => $modelAccount]);
}