Sistema de usuarios yii

INSTALACIÓN DE CRUGE

PASO 1 DESCARGA

Principalmente necesitas obtener cruge, puedes hacerlo por dos vías:

  • Via descarga directa desde Repositorio oficial de Cruge, busca el enlace “download” en la ventana de la derecha junto a “Size (1.5MB)…(Download)”. Simplemente descomprimirás el paquete cruge.zip obtenido dentro de tu proyecto asi:
 /home/tuWEBapp/protected/modules/cruge

si tu directorio modules no existe, deberás crearlo a mano anteriormente (obviamente).

PASO 2 ARCHIVO CONFIG/MAIN

Ahora, a configurar Cruge, editarás el siguiente archivo:

 /home/tuusuario/tuapp/protected/config/main.php

	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'),

                                // url base para los links de activacion de cuenta de usuario
				'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/column2',
				'registrationLayout'=>'//layouts/column2',
				'activateAccountLayout'=>'//layouts/column2',
				'editProfileLayout'=>'//layouts/column2',
				// 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',

				// permite indicar un array con los nombres de campos personalizados, 
				// incluyendo username y/o email para personalizar la respuesta de una consulta a: 
				// $usuario->getUserDescription(); 
				'userDescriptionFieldsArray'=>array('email'), 

			),

	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",
			),

PASO 3 SCRIPT DE BASE DE DATOS

Ahora, debes preparar la base de datos, crearás las tablas requeridas en la base de datos de tu aplicacion, usa el script de acuerdo a tu motor de datos: mysql o postgre. Por favor anota que tu usuario por defecto será admin y su clave admin.

Usa el script SQL que cruge provee, copia y pégalo en tu mysqladmin o simplemente importalo, usa la vía que mejor te funcione, a veces importar no funciona en cambio copiar y pegar si.

 /home/tuusuario/tuapp/protected/modules/cruge/data/cruge-data-model.sql   (script de mysql)

PASO 4 (HELPER) MENU POR DEFECTO

Configura el menu de tu aplicación para que incopore un acceso al item de “administración de usuarios” de Cruge, para ello editas tu archivo:

 /home/tuusuario/tuapp/protected/views/layouts/main.php

en el sustituyes 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),
			),
		)); ?>

Nota aqui: Es posible que puedas usar el formulario por defecto de Yii (views/login.php), pero para hacerlo funcionar con Cruge debes cambiar en models/FormLogin.php las dos lineas que dicen UserIdentity por CrugeUser. Ver mas detalles

PASO 5. VER CONSOLA DE ERROR

Casi terminado. Ahora Edita tu archivo “protected/views/layouts/main.php” y pon esta linea antes de la linea </body> es para que puedas visualizar que permisos se van requiriendo en tu aplicación a medida que el usuario las va usando (valga la redundancia):

 <?php echo Yii::app()->user->ui->displayErrorConsole(); ?>

http://b-cream.com/
Anuncios
Publicado en yii
3 comments on “Sistema de usuarios yii
  1. hola soy nueva en trabajar con yii y cruge, al realizar los pasos anteriores me arroja un error que es:
    The table “cruge_session” for active record class “CrugeSession” cannot be found in the database.
    Pero si tengo creadas todas las tablas en postgreSQL

    • almeis dice:

      Hola Cecilia,Dejame verificar con postgreSQL solo lo he configurado en mysql, me gustaria que amplairas un poco mas la informacion hacerca de tu error, colocando los logs de apache y alguna informacion extra que pudieras tener. Saludos !!! 🙂

      • Cecilia dice:

        Hola almeis, espero y si me puedas ayudar y disculpa no entiendo sobre lo de los logs de apache????
        Ahh y otra duda tambien estoy realizando la configuracion con mysql y no me da la conexion me manda el mensaje de usuario o correo invalido como sino realizara la conexion no se si se deba a este apartado:
        // url base para los links de activacion de cuenta de usuario
        ‘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,

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s

A %d blogueros les gusta esto: