Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
19 changes: 12 additions & 7 deletions src/controllers/AdminController.php
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@

use Yii;
use faro\core\user\models\User;
use yii\filters\AccessControl;
use yii\web\Controller;
use yii\web\ForbiddenHttpException;
use yii\web\NotFoundHttpException;
Expand All @@ -27,12 +28,6 @@ class AdminController extends Controller
*/
public function init()
{
// check for admin permission (`tbl_role.can_admin`)
// note: check for Yii::$app->user first because it doesn't exist in console commands (throws exception)
if (!empty(Yii::$app->user) && !Yii::$app->user->can("admin")) {
throw new ForbiddenHttpException('You are not allowed to perform this action.');
}

$this->view->params["navbar_menu_selected"] = "administracion";
$this->view->params["ocultar_selector_fechas"] = true;
parent::init();
Expand All @@ -44,8 +39,18 @@ public function init()
public function behaviors()
{
return [
'access' => [
'class' => AccessControl::class,
'rules' => [
[
'actions' => ['index', 'view', 'create', 'update', 'delete'],
'allow' => true,
'roles' => ['admin']
]
],
],
'verbs' => [
'class' => VerbFilter::className(),
'class' => VerbFilter::class,
'actions' => [
'delete' => ['post'],
],
Expand Down
11 changes: 9 additions & 2 deletions src/controllers/DefaultController.php
Original file line number Diff line number Diff line change
Expand Up @@ -445,11 +445,17 @@ public function actionForgot()
/** @var \faro\core\user\models\forms\ForgotForm $model */

// load post data and send email
$this->layout = '@faro/core/themes/faro20221/layouts/login';
$model = $this->module->model("ForgotForm");
if ($model->load(Yii::$app->request->post()) && $model->sendForgotEmail()) {
if ($model->load(Yii::$app->request->post())) {

// set flash (which will show on the current page)
Yii::$app->session->setFlash("Forgot-success", Yii::t("user", "Instructions to reset your password have been sent"));
if ($model->sendForgotEmail()) {
Yii::$app->session->setFlash("success", Yii::t("user", "Instructions to reset your password have been sent"));
} else {
Yii::$app->session->setFlash("error", Yii::t("user", "No se pudo enviar el email"));
}

return $this->refresh();
}

Expand All @@ -465,6 +471,7 @@ public function actionReset($token)
/** @var \faro\core\user\models\UserToken $userToken */

// get user token and check expiration
$this->layout = '@faro/core/themes/faro20221/layouts/login';
$userToken = $this->module->model("UserToken");
$userToken = $userToken::findByToken($token, $userToken::TYPE_PASSWORD_RESET);
if (!$userToken) {
Expand Down
8 changes: 8 additions & 0 deletions src/models/forms/ForgotForm.php
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@

use Yii;
use yii\base\Model;
use yii\helpers\VarDumper;
use yii\swiftmailer\Mailer;
use yii\swiftmailer\Message;

Expand Down Expand Up @@ -117,9 +118,16 @@ public function sendForgotEmail()
// send email
$subject = Yii::$app->id . " - " . Yii::t("user", "Forgot password");
$result = $mailer->compose('forgotPassword', compact("subject", "user", "userToken"))
->setFrom(Yii::$app->params["senderEmail"])
->setTo($user->email)
->setSubject($subject)
->send();

if (!$result) {
VarDumper::dump("no se pudo");
VarDumper::dump($mailer->getErrors());
die();
}

// restore view path and return result
$mailer->viewPath = $oldViewPath;
Expand Down
73 changes: 57 additions & 16 deletions src/views/default/forgot.php
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
<?php

use faro\core\FaroCoreAsset;
use yii\helpers\Html;
use yii\widgets\ActiveForm;

Expand All @@ -9,32 +10,72 @@
* @var faro\core\user\models\forms\ForgotForm $model
*/

$this->title = Yii::t('user', 'Forgot password');
FaroCoreAsset::register($this);

$this->title = Yii::t('user', 'Olvidaste tu contraseña?');
$this->params['breadcrumbs'][] = $this->title;

$directoryFaroAsset = Yii::$app->assetManager->getPublishedUrl('@faro/core/assets');
$imagen = $directoryFaroAsset . "/img/logo_vertical.jpg";
?>
<div class="user-default-forgot">
<div class="container">

<h1><?= Html::encode($this->title) ?></h1>
<!-- Outer Row -->
<div class="row justify-content-center">

<?php if ($flash = Yii::$app->session->getFlash('Forgot-success')): ?>
<div class="col-xl-10 col-lg-12 col-md-9">

<div class="card o-hidden border-0 shadow-lg my-5">
<div class="card-body p-5">
<!-- Nested Row within Card Body -->
<div class="row">
<div class="col-lg-6 d-none d-lg-block bg-login-image"
style="background-image: url(<?= $imagen ?>);"></div>
<div class="col-lg-6">
<div class="">
<div class="text-left">
<h1 class="h4 text-gray-900 mb-4"><?= Html::encode($this->title) ?></h1>
</div>

<div class="user-default-reset">

<?php if ($flash = Yii::$app->session->getFlash('success')): ?>

<div class="alert alert-success">
<p><?= $flash ?></p>
</div>

<?php else: ?>

<div class="alert alert-success">
<p><?= $flash ?></p>
</div>

<?php else: ?>
<?php $form = ActiveForm::begin(['id' => 'forgot-form']); ?>

<p><b>No te preocupes,</b> ingresá tu email y te enviaremos un link para reiniciarla!</p>

<?= $form->field($model, 'email') ?>
<div class="form-group">
<?= Html::submitButton(Yii::t('user', 'Submit'),
['class' => 'btn btn-primary']) ?>
</div>
<?php ActiveForm::end(); ?>

<div class="row">
<div class="col-lg-5">
<?php $form = ActiveForm::begin(['id' => 'forgot-form']); ?>
<?= $form->field($model, 'email') ?>
<div class="form-group">
<?= Html::submitButton(Yii::t('user', 'Submit'), ['class' => 'btn btn-primary']) ?>

<?php endif; ?>


</div>


</div>
</div>
</div>
<?php ActiveForm::end(); ?>
</div>
</div>

</div>

<?php endif; ?>
</div>

</div>


15 changes: 7 additions & 8 deletions src/views/default/login.php
Original file line number Diff line number Diff line change
Expand Up @@ -28,13 +28,13 @@
<div class="col-xl-10 col-lg-12 col-md-9">

<div class="card o-hidden border-0 shadow-lg my-5">
<div class="card-body p-0">
<div class="card-body p-5">
<!-- Nested Row within Card Body -->
<div class="row">
<div class="col-lg-6 d-none d-lg-block bg-login-image" style="background-image: url(<?= $imagen ?>);"></div>
<div class="col-lg-6">
<div class="p-5">
<div class="text-center">
<div class="">
<div class="text-left">
<h1 class="h4 text-gray-900 mb-4">Bienvenido!</h1>
</div>
<?php $form = ActiveForm::begin([
Expand All @@ -53,18 +53,17 @@
<?= $form->field($model, 'password')->passwordInput(['placeholder' => 'Password', 'class' => 'form-control form-control-user'])->label(false) ?>

<?= $form->field($model, 'rememberMe')->checkbox([
'template' => "<div class=\"col-12\">{input} {label}</div>\n<div class=\"col-12\">{error}</div>",
'template' => "<div class=\"col-12 text-right\">{input} {label}</div>\n<div class=\"col-12\">{error}</div>",
]) ?>

<div class="form-group">
<div class="col-12">
<?= Html::submitButton('Login', ['class' => 'btn btn-primary btn-user btn-block', 'name' => 'login-button']) ?>
</div>

<div class="col-12">
<?= Html::a(Yii::t("user", "Register"), ["/user/register"]) ?> /
<?= Html::a(Yii::t("user", "Forgot password") . "?", ["/user/forgot"]) ?> /
<?= Html::a(Yii::t("user", "Resend confirmation email"), ["/user/resend"]) ?>
<div class="col-12 text-right mt-2">
<?= Html::a(Yii::t("user", "Olvidaste la contraseña") . "?", ["/user/forgot"]) ?>
<?php // echo Html::a(Yii::t("user", "Resend confirmation email"), ["/user/resend"]) ?>
</div>
</div>

Expand Down
87 changes: 61 additions & 26 deletions src/views/default/reset.php
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
<?php

use faro\core\FaroCoreAsset;
use yii\helpers\Html;
use yii\widgets\ActiveForm;

Expand All @@ -11,48 +12,82 @@
* @var bool $invalidToken
*/

$this->title = Yii::t('user', 'Reset');
FaroCoreAsset::register($this);

$this->title = Yii::t('user', 'Resetear contraseña');
$this->params['breadcrumbs'][] = $this->title;

$directoryFaroAsset = Yii::$app->assetManager->getPublishedUrl('@faro/core/assets');
$imagen = $directoryFaroAsset . "/img/logo_vertical.jpg";
?>
<div class="user-default-reset">
<div class="container">

<h1><?= Html::encode($this->title) ?></h1>
<!-- Outer Row -->
<div class="row justify-content-center">

<?php if (!empty($success)): ?>
<div class="col-xl-10 col-lg-12 col-md-9">

<div class="alert alert-success">
<div class="card o-hidden border-0 shadow-lg my-5">
<div class="card-body p-0">
<!-- Nested Row within Card Body -->
<div class="row">
<div class="col-lg-6 d-none d-lg-block bg-login-image"
style="background-image: url(<?= $imagen ?>);"></div>
<div class="col-lg-6">
<div class="p-5">
<div class="text-left">
<h1 class="h4 text-gray-900 mb-4"><?= Html::encode($this->title) ?></h1>
</div>

<p><?= Yii::t("user", "Password has been reset") ?></p>
<p><?= Html::a(Yii::t("user", "Log in here"), ["/user/login"]) ?></p>
<div class="user-default-reset">

<?php if (!empty($success)): ?>

</div>
<div class="alert alert-success">

<?php elseif (!empty($invalidToken)): ?>
<p><?= Yii::t("user", "Password has been reset") ?></p>
<p><?= Html::a(Yii::t("user", "Log in here"), ["/user/login"]) ?></p>

<div class="alert alert-danger">
<p><?= Yii::t("user", "Invalid token") ?></p>
</div>
</div>

<?php else: ?>
<?php elseif (!empty($invalidToken)): ?>

<div class="row">
<div class="col-lg-5">
<div class="alert alert-danger">
<p><?= Yii::t("user", "Invalid token") ?></p>
</div>

<div class="alert alert-warning">
<p><?= Yii::t("user", "Email") ?> [ <?= $user->email ?> ]</p>
</div>
<?php else: ?>


<div class="alert alert-warning">
<p><?= Yii::t("user", "Email") ?> [ <?= $user->email ?> ]</p>
</div>

<?php $form = ActiveForm::begin(['id' => 'reset-form']); ?>
<?php $form = ActiveForm::begin(['id' => 'reset-form']); ?>

<?= $form->field($user, 'newPassword')->passwordInput() ?>
<?= $form->field($user, 'newPasswordConfirm')->passwordInput() ?>
<div class="form-group">
<?= Html::submitButton(Yii::t("user", "Reset"), ['class' => 'btn btn-primary']) ?>
<?= $form->field($user, 'newPassword')->passwordInput() ?>
<?= $form->field($user, 'newPasswordConfirm')->passwordInput() ?>
<div class="form-group">
<?= Html::submitButton(Yii::t("user", "Reset"),
['class' => 'btn btn-primary']) ?>
</div>
<?php ActiveForm::end(); ?>


<?php endif; ?>

</div>

</div>
</div>
</div>
<?php ActiveForm::end(); ?>
</div>
</div>

</div>

<?php endif; ?>
</div>

</div>


</div>