Modulos Externos

Basandonos en el link

http://code.tutsplus.com/tutorials/how-to-program-with-yii2-integrating-user-registration--cms-22974

Estructura BD

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,
]);
Redmine Appliance - Powered by TurnKey Linux