Commits

christiansalazar committed a1b8d66

agregando opcion de sistema registrationonlogin

Comments (0)

Files changed (6)

 			}
 		?>
 
+##El menu Variables del Sistema
+
+Este menu te permite controlar algunos aspectos fundamentales basicamente acerca del modo en como se registran los usuarios en el sistema, por ejemplo:
+
+	1. Detener Sistema
+		si esta activada no se permitira iniciar sesion o usar el sistema en general.
+
+	2. No Admitir Nuevas Sesiones
+		solo bloquea el login, es decir nuevas sesiones de usuario.
+
+	3. Minutos de Duracion de la Sesion *
+		el tiempo en minutos en que una sesion expira.
+
+	4. Registrarse usando captcha
+		si esta activada presenta un captcha al momento de registrar a un nuevo usuario.
+
+	5. Activacion del usuario registrado
+		opciones para aplicar al nuevo usuario registrado, puedes activarlo inmediatamente, o mediante
+		activacion manual por parte de un administrador, o mediante un correo de verificacion.
+
+	6. Asignar Rol a usuarios registrados
+		es el rol que tu quieres que se le asigne por defecto al usuario recien registrado.
+
+	7. Ofrecer opci�n de Registrarse en pantalla de Login
+		habilita el link de "registrarse" en la pantalla de login.
+		para que esta opcion funcione necesitas actualizar tu base de datos con el siguiente script sql:
+			"alter table cruge_system add registrationonlogin integer default 1;"
+
+	8. Registrarse usando terminos
+		si lo activas, el usuario que se va a registrar debe aceptar los terminos que tu indiques.
+
+	9. Etiqueta
+		si la opcion anterior esta activa se le hara una pregunta, aqui puedes escribir esa pregunta,
+		por ejemplo: "Por favor lea los terminos y condiciones y aceptelos para proceder con su registro"
+
+	10. Terminos y Condiciones de Registro
+		El texto de las condiciones para registrarse, solo aplica si la opcion de "registrarse usando terminos" esta activada.
+
 ##Acceder a las variables del sistema:
 
 		<?php

data/cruge-data-model-postgres.sql

   PRIMARY KEY (idsystem) )
 ;
 delete from cruge_system;
-INSERT INTO cruge_system (idsystem,name,largename,sessionmaxdurationmins,sessionmaxsameipconnections,sessionreusesessions,sessionmaxsessionsperday,sessionmaxsessionsperuser,systemnonewsessions,systemdown,registerusingcaptcha,registerusingterms,terms,registerusingactivation,defaultroleforregistration,registerusingtermslabel) VALUES
- (1,'default',NULL,30,10,1,-1,-1,0,0,0,0,'',0,'','');
+INSERT INTO cruge_system (idsystem,name,largename,sessionmaxdurationmins,sessionmaxsameipconnections,sessionreusesessions,sessionmaxsessionsperday,sessionmaxsessionsperuser,systemnonewsessions,systemdown,registerusingcaptcha,registerusingterms,terms,registerusingactivation,defaultroleforregistration,registerusingtermslabel,registrationonlogin) VALUES
+ (1,'default',NULL,30,10,1,-1,-1,0,0,0,0,'',0,'','',1);
 
 CREATE TABLE cruge_session (
   idsession serial,

data/cruge-data-model.sql

 	----------------
 
 	lista de tablas de Cruge.
-	
+
 	aqui van dos grupos:
-	
+
 		1. aquellas propias de Cruge.
-		
+
 		2. aquellas del paquete de autenticacion oficial del Yii, pero con una modificacion minima.
-		
-	tablas: 
+
+	tablas:
 		cruge_system, cruge_user, cruge_session, cruge_field, cruge_fieldvalue
 			@author: Christian Salazar H. <christiansalazarh@gmail.com> @bluyell
-	
+
 		cruge_authitem, cruge_authitemchild, cruge_authassignment
 			paquete original de Yii, pero con modificaciones en cruge_authassignment
 			para relacionarla con cruge_user (foregin key on delete cascade), ademas
 ;
 ALTER TABLE `cruge_user` AUTO_INCREMENT = 10;
 delete from `cruge_system`;
-INSERT INTO `cruge_system` (`idsystem`,`name`,`largename`,`sessionmaxdurationmins`,`sessionmaxsameipconnections`,`sessionreusesessions`,`sessionmaxsessionsperday`,`sessionmaxsessionsperuser`,`systemnonewsessions`,`systemdown`,`registerusingcaptcha`,`registerusingterms`,`terms`,`registerusingactivation`,`defaultroleforregistration`,`registerusingtermslabel`) VALUES 
- (1,'default',NULL,30,10,1,-1,-1,0,0,0,0,'',0,'','');
+INSERT INTO `cruge_system` (`idsystem`,`name`,`largename`,`sessionmaxdurationmins`,`sessionmaxsameipconnections`,`sessionreusesessions`,`sessionmaxsessionsperday`,`sessionmaxsessionsperuser`,`systemnonewsessions`,`systemdown`,`registerusingcaptcha`,`registerusingterms`,`terms`,`registerusingactivation`,`defaultroleforregistration`,`registerusingtermslabel`,`registrationonlogin`) VALUES
+ (1,'default',NULL,30,10,1,-1,-1,0,0,0,0,'',0,'','',1);
 
 
 

models/data/CrugeSystem.php

 <?php
 /**
 	CrugeSystem
-	
+
 	Es una division del sistema que incopora reglas, grupos, metodos de autenticacion etc.
 
 	parametros de configuracion:
-	
+
 	$sessionmaxdurationmins			marca el tiempo de expiracion del objeto CrugeSession
 	$sessionmaxsameipconnections	umbral de sesiones activas de misma IP, si supera no crea sesion
 	$sessionreusesessions			si es 1, reutiliza la sesion si esta no ha expirado
 	$sessionmaxsessionsperuser		limitador de sesiones diarias por usuario. -1 = cualquiera.
 	$systemnonewsessions			si es 1, no admite sesiones nuevas
 	$systemdown						si es 1, no admite el uso de ninguna sesion
-	
+
 	$registerusingcaptcha			1 si quiere usar captcha para registro de usuarios
 	$registerusingactivation		0 activa de inmediato, 1 envia mail, 2 activa manualmente
 	$registerusingterms				1 muestra los $terms como requisito para activar boton submit
 	$registerusingtermslabel		etiqueta del checkbox
 	$terms							los terminos para registrarse
 	$defaultroleforregistration		el rol que se aplicara por defecto a los usuarios registrados
-	
+	$registrationonlogin			1 o 0, para que aparezca el link de "registration" en el form login
+
  	@author: Christian Salazar H. <christiansalazarh@gmail.com> @bluyell
 	@copyright Copyright &copy; 2008-2012 Yii Software LLC
 	@license http://www.yiiframework.com/license/
 	public static function listModels(){
 		return self::model()->findAll();
 	}
-	
+
 	public function getShortName(){
 		return $this->name;
 	}
 	public function getLargeName(){
 		return $this->largename;
 	}
-	/*	
+	/*
 		@returns boolean true si el sistema esta disponible para iniciar sesion
 	*/
 	public function isAvailableForLogin(){
 	public function getPrimaryKey(){
 		return $this->idsystem;
 	}
-	
+
 
 	/**
 	 * Returns the static model of the specified AR class.
 	{
 		return parent::model($className);
 	}
-	
+
 	/**
 	 * @return array validation rules for model attributes.
 	 */
 		return array(
 			array('name', 'required'),
 			array('name', 'length', 'max'=>45),
-			
+
 			array('systemdown','safe',),
 			array('systemnonewsessions','safe',),
-			
+
 			array('sessionmaxdurationmins','required',),
 			array('sessionmaxdurationmins','numerical','min'=>0,'max'=>'9999'
 				,'message'=>CrugeTranslator::t('Use un valor entre 0 y 9999')),
-				
+
 			array('registerusingactivation','safe',),
 			array('registerusingterms','safe',),
 			array('registerusingtermslabel','safe',),
 			array('registerusingcaptcha','safe',),
 			array('defaultroleforregistration','safe',),
 			array('terms','safe',),
-			
+			array('registrationonlogin','safe',),
 		);
 	}
 
 		return array(
 			'idsystem' => 'Idsystem',
 			'name' => 'Name',
-			
+
 			'systemdown' => CrugeTranslator::t("Detener Sistema"),
 			'systemnonewsessions' => CrugeTranslator::t("No Admitir Nuevas Sesiones"),
 			'sessionmaxdurationmins' => CrugeTranslator::t("Minutos de Duracion de la Sesion"),
-			
+
 			'registerusingactivation' => CrugeTranslator::t("Activacion del usuario registrado"),
 			'defaultroleforregistration' => CrugeTranslator::t("Asignar Rol a usuarios registrados"),
 			'registerusingterms' => CrugeTranslator::t("Registrarse usando terminos"),
 			'registerusingtermslabel' => CrugeTranslator::t("Etiqueta"),
-			
+			'registrationonlogin'=> CrugeTranslator::t("Ofrecer opción de Registrarse en pantalla de Login"),
+
 			'registerusingcaptcha' => CrugeTranslator::t("Registrarse usando captcha"),
 			'terms' => CrugeTranslator::t("Terminos y Condiciones de Registro"),
 		);

views/ui/login.php

 		<?php echo $form->textField($model,'username'); ?>
 		<?php echo $form->error($model,'username'); ?>
 	</div>
-	
+
 	<div class="row">
 		<?php echo $form->labelEx($model,'password'); ?>
 		<?php echo $form->passwordField($model,'password'); ?>
 		<?php echo $form->error($model,'password'); ?>
 	</div>
-	
+
 	<div class="row rememberMe">
 		<?php echo $form->checkBox($model,'rememberMe'); ?>
 		<?php echo $form->label($model,'rememberMe'); ?>
 		<?php echo $form->error($model,'rememberMe'); ?>
-	</div>	
-	
+	</div>
+
 	<div class="row buttons">
 		<?php Yii::app()->user->ui->tbutton("Iniciar Sesion"); ?>
 		<?php echo Yii::app()->user->ui->passwordRecoveryLink; ?>
-		<?php echo Yii::app()->user->ui->registrationLink; ?>
+		<?php
+			if(Yii::app()->user->um->getDefaultSystem()->getn('registrationonlogin')===1)
+				echo Yii::app()->user->ui->registrationLink;
+		?>
 	</div>
-	
+
 <?php $this->endWidget(); ?>
 </div>
 <?php endif; ?>

views/ui/systemupdate.php

-<?php 
+<?php
 	/* formulario de edicion de CrugeSystem
-	
+
 		argumento:
-		
+
 		$model: instancia de ICrugeSession
 	*/
 ?>
 
-<?php 
+<?php
 	if(Yii::app()->user->hasFlash('systemFormFlash'))  {
 		echo "<div class='flash-success'>";
 		echo Yii::app()->user->getFlash('systemFormFlash');
 		<?php echo $form->error($model,'sessionmaxdurationmins'); ?>
 	</div>
 </div>
-<div class="row form-group">	
+<div class="row form-group">
 	<h6><?php echo ucwords(CrugeTranslator::t("opciones de registro de usuarios"));?></h6>
 	<div class='col'>
 		<?php echo $form->labelEx($model,'registerusingcaptcha'); ?>
 	</div>
 	<div class='col'>
 		<?php echo $form->labelEx($model,'registerusingactivation'); ?>
-		<?php echo $form->dropDownList($model,'registerusingactivation'	
+		<?php echo $form->dropDownList($model,'registerusingactivation'
 			,Yii::app()->user->um->getUserActivationOptions()); ?>
 		<?php echo $form->error($model,'registerusingactivation'); ?>
 	</div>
 				"--no asignar ningun rol--"))); ?>
 		<?php echo $form->error($model,'defaultroleforregistration'); ?>
 	</div>
+	<div class='col'>
+		<?php echo $form->labelEx($model,'registrationonlogin'); ?>
+		<?php echo $form->checkBox($model,'registrationonlogin'); ?>
+		<?php echo $form->error($model,'registrationonloginn'); ?>
+	</div>
 </div>
 
-<div class="row form-group">	
+<div class="row form-group">
 	<h6><?php echo ucwords(CrugeTranslator::t("terminos y condiciones de registro"));?></h6>
 	<div class='row'>
 		<div class='col'>