Source

cruge / README.md

CRUGE

Extensión para el Control de Usuarios y Roles.

Ir al repositorio de Cruge Bitbucket

visita mi blog

Comunidad de Yii Framework en Español

PROYECTO BASICO DE DEMOSTRACION

Descargar Documentación PDF

screenshots

Requisitos de Plataforma

  • PHP Version 5.2.6, 5.4.4, 5.4.5

  • Yii Framework 1.10, 1.11, 1.12, 1.13

Que es Cruge ?

Cruge te permite administrar y controlar de forma muy eficiente y segura a tus usuarios y los roles que ellos deban tener en tu aplicación.

DOCUMENTACION

Descargar Documentación PDF

Instalación

Primero voy a asumir que Cruge ha sido descargado a tu carpeta:

/protected/modules/cruge/

puedes descargar cruge directamente desde un ZIP, o mediante un comando GIT como: git clone [URL DE GIT].

En el archivo de configuración de tu aplicación (config/main.php) deberás colocar lo siguiente:

1.  dentro de 'import' agregar:
        'application.modules.cruge.components.*',
        'application.modules.cruge.extensions.crugemailer.*',

2.  dentro de 'modules' agregar:
        'cruge'=>array(
            'tableprefix'=>'cruge_',

            // para que utilice a protected.modules.cruge.models.auth.CrugeAuthDefault.php
            //
            // en vez de 'default' pon 'authdemo' para que utilice el demo de autenticacion alterna
            // para saber mas lee documentacion de la clase modules/cruge/models/auth/AlternateAuthDemo.php
            //
            'availableAuthMethods'=>array('default'),

            'availableAuthModes'=>array('username','email'),
            'baseUrl'=>'http://coco.com/',

             // NO OLVIDES PONER EN FALSE TRAS INSTALAR
             'debug'=>true,
             'rbacSetupEnabled'=>true,
             'allowUserAlways'=>true,

            // MIENTRAS INSTALAS..PONLO EN: false
            // lee mas abajo respecto a 'Encriptando las claves'
            //
            'useEncryptedPassword' => false,

            // Algoritmo de la función hash que deseas usar
            // Los valores admitidos están en: http://www.php.net/manual/en/function.hash-algos.php
            'hash' => 'md5',

            // a donde enviar al usuario tras iniciar sesion, cerrar sesion o al expirar la sesion.
            //
            // esto va a forzar a Yii::app()->user->returnUrl cambiando el comportamiento estandar de Yii
            // en los casos en que se usa CAccessControl como controlador
            //
            // ejemplo:
            //      'afterLoginUrl'=>array('/site/welcome'),  ( !!! no olvidar el slash inicial / )
            //      'afterLogoutUrl'=>array('/site/page','view'=>'about'),
            //
            'afterLoginUrl'=>null,
            'afterLogoutUrl'=>null,
            'afterSessionExpiredUrl'=>null,

            // manejo del layout con cruge.
            //
            'loginLayout'=>'//layouts/main',
            'registrationLayout'=>'//layouts/main',
            'activateAccountLayout'=>'//layouts/main',
            'editProfileLayout'=>'//layouts/main',
            // en la siguiente puedes especificar el valor "ui" o "column2" para que use el layout
            // de fabrica, es basico pero funcional.  si pones otro valor considera que cruge
            // requerirá de un portlet para desplegar un menu con las opciones de administrador.
            //
            'generalUserManagementLayout'=>'ui',
        ),

3.  dentro de 'components' agregar:
        //
        //  IMPORTANTE:  asegurate de que la entrada 'user' (y format) que por defecto trae Yii
        //               sea sustituida por estas a continuación:
        //
        'user'=>array(
            'allowAutoLogin'=>true,
            'class' => 'application.modules.cruge.components.CrugeWebUser',
            'loginUrl' => array('/cruge/ui/login'),
        ),
        'authManager' => array(
            'class' => 'application.modules.cruge.components.CrugeAuthManager',
        ),
        'crugemailer'=>array(
            'class' => 'application.modules.cruge.components.CrugeMailer',
            'mailfrom' => 'email-desde-donde-quieres-enviar-los-mensajes@xxxx.com',
            'subjectprefix' => 'Tu Encabezado del asunto - ',
            'debug' => true,
        ),
        'format' => array(
            'datetimeFormat'=>"d M, Y h:m:s a",
        ),

4.  crea las tablas requeridas en la base de datos de tu aplicacion, usa el script:

    <tuaplicacion>/protected/modules/cruge/data/cruge-data-model.sql

    aqui se va a crear automaticamente un usuario para que puedas comenzar, toma nota

        usuario=admin
        clave=admin

5.  Configura el menu de tu aplicacion para que incopore a Cruge, para ello
edita tu archivo:
    /protected/views/layouts/main.php
y sustituye el componente CMenu por el que te doy a continuacion.

    <?php $this->widget('zii.widgets.CMenu',array(
        'items'=>array(
            array('label'=>'Home', 'url'=>array('/site/index')),
            array('label'=>'About', 'url'=>array('/site/page', 'view'=>'about')),
            array('label'=>'Contact', 'url'=>array('/site/contact')),
            array('label'=>'Administrar Usuarios'
                , 'url'=>Yii::app()->user->ui->userManagementAdminUrl
                , 'visible'=>!Yii::app()->user->isGuest),
            array('label'=>'Login'
                , 'url'=>Yii::app()->user->ui->loginUrl
                , 'visible'=>Yii::app()->user->isGuest),
            array('label'=>'Logout ('.Yii::app()->user->name.')'
                , 'url'=>Yii::app()->user->ui->logoutUrl
                , 'visible'=>!Yii::app()->user->isGuest),
        ),
    )); ?>
Tip: Filter by directory path e.g. /media app.js to search for public/media/app.js.
Tip: Use camelCasing e.g. ProjME to search for ProjectModifiedEvent.java.
Tip: Filter by extension type e.g. /repo .js to search for all .js files in the /repo directory.
Tip: Separate your search with spaces e.g. /ssh pom.xml to search for src/ssh/pom.xml.
Tip: Use ↑ and ↓ arrow keys to navigate and return to view the file.
Tip: You can also navigate files with Ctrl+j (next) and Ctrl+k (previous) and view the file with Ctrl+o.
Tip: You can also navigate files with Alt+j (next) and Alt+k (previous) and view the file with Alt+o.