Modulos Externos¶
Basandonos en el link
http://code.tutsplus.com/tutorials/how-to-program-with-yii2-integrating-user-registration--cms-22974
en el archivo composer.json del raiz se agrego
"dektrium/yii2-user": ""*
"require": { "php": ">=5.4.0", "yiisoft/yii2": ">=2.0.5", "yiisoft/yii2-bootstrap": "*", "yiisoft/yii2-swiftmailer": "*", "dektrium/yii2-user": "*" },
y se corrio la sentencia
./composer.phar update
para bajar paquetes de gestion de usuarios
en /config/web.php
cambiamos
'user' => [ 'identityClass' => 'app\models\User', 'enableAutoLogin' => true, ],
por
'user' => [ 'class' => 'dektrium\user\Module', 'enableUnconfirmedLogin' => true, 'confirmWithin' => 21600, 'cost' => 12, 'admins' => ['admin'] ],
Y para gestion de email
'mailer' => [ 'class' => 'yii\swiftmailer\Mailer', // send all mails to a file by default. You have to set // 'useFileTransport' to false and configure a transport // for the mailer to send real emails. 'useFileTransport' => true, ],
por
'mailer' => [ 'class' => 'yii\swiftmailer\Mailer', 'viewPath' => '@app/mailer', 'useFileTransport' => false, 'transport' => [ 'class' => 'Swift_SmtpTransport', 'host' => 'your-host-domain e.g. smtp.gmail.com', 'username' => 'informatica@ucu.edu.ar', 'password' => 'xxxxxxx', 'port' => '587', 'encryption' => 'tls', ], ],
en /views/layouts/main.php
reemplazar
echo Nav::widget([ 'options' => ['class' => 'navbar-nav navbar-right'], 'items' => [ ['label' => 'Home', 'url' => ['/site/index']], ['label' => 'Proveedores', 'url' => ['/proveedores']], ['label' => 'Compras', 'url' => ['/compras']], ['label' => 'Pagos', 'url' => ['/pagos']], Yii::$app->user->isGuest ? ( ['label' => 'Login', 'url' => ['/site/login']] ) : ( '<li>' . Html::beginForm(['/site/logout'], 'post') . Html::submitButton( 'Logout (' . Yii::$app->user->identity->username . ')', ['class' => 'btn btn-link'] ) . Html::endForm() . '</li>' ) ], ]);
por
$navItems=[ ['label' => 'Home', 'url' => ['/site/index']], ['label' => 'Status', 'url' => ['/status/index']], ['label' => 'About', 'url' => ['/site/about']], ['label' => 'Contact', 'url' => ['/site/contact']] ]; if (Yii::$app->user->isGuest) { array_push($navItems,['label' => 'Sign In', 'url' => ['/user/login']],['label' => 'Sign Up', 'url' => ['/user/register']]); } else { array_push($navItems,['label' => 'Logout (' . Yii::$app->user->identity->username . ')', 'url' => ['/site/logout'], 'linkOptions' => ['data-method' => 'post']] ); } echo Nav::widget([ 'options' => ['class' => 'navbar-nav navbar-right'], 'items' => $navItems, ]);