Login Antes De Ir Al Index

Hola

Soy nuevo en yii

Necesito hacer q por defecto cuando se habra mi aplicacion aparezca el formulario de login antes de ir al index. Quien me puede ayudar?

Bienvenido a Yii!

Trata lo siguiente:

En SiteController añade las funciones filters() y accessRules() como a continuación:




/**

 * @return array action filters

 */

public function filters()

{

	return array(

		'accessControl', // perform access control for CRUD operations

	);

}

/**

 * Specifies the access control rules.

 * method is used by the 'accessControl' filter.

 * @return array access control rules

 */

public function accessRules()

{

        return array(

		array('allow', // allow authenticated user to perform 'index','view','create' and 'update' actions

			'actions'=>array('index','view','create','update'),

			'users'=>array('@'),

		),

		array('allow', // allow admin user to perform 'admin' and 'delete' actions

			'actions'=>array('admin','delete'),

			'users'=>array('admin'),

		),

		array('deny',  // deny all users

			'users'=>array('*'),

		),

	);

}



Haz los cambios específicos a tu aplicación. Chequea la guía Access Control Filter para más información y buena suerte.

Tengo el mismo problema y nose como solucionarlo :(

puedes poner el login en tu index y luego redirecionarlo

ejemplo de index :

<?php $form=$this->beginWidget(‘CActiveForm’, array(

'id'=&gt;'login-form',


'action'=&gt;&#036;this-&gt;createUrl(&quot;site/login&quot;),


'htmlOptions'=&gt;array(&quot;style&quot;=&gt;&quot;text-align: center&quot;),


'enableClientValidation'=&gt;true,


'clientOptions'=&gt;array(


	'validateOnSubmit'=&gt;true,


),

));

if (Yii::app()->user->name=="" or Yii::app()->user->name=="Guest")

{

?>

&lt;div class=&quot;row&quot;&gt;


	&lt;?php echo &#036;form-&gt;labelEx(&#036;model,'Username'); ?&gt;


	&lt;br&gt;


	&lt;?php echo &#036;form-&gt;textField(&#036;model,'username'); ?&gt;


	&lt;?php echo &#036;form-&gt;error(&#036;model,'username'); ?&gt;


&lt;/div&gt;





&lt;div class=&quot;row&quot;&gt;


	&lt;?php echo &#036;form-&gt;labelEx(&#036;model,'password'); ?&gt;


	&lt;br&gt;


	&lt;?php echo &#036;form-&gt;passwordField(&#036;model,'password'); ?&gt;


	&lt;?php echo &#036;form-&gt;error(&#036;model,'password'); ?&gt;


&lt;/div&gt;





&lt;?/*&lt;div class=&quot;row rememberMe&quot;&gt;


	&lt;?php echo &#036;form-&gt;checkBox(&#036;model,'rememberMe'); ?&gt;


	&lt;?php echo &#036;form-&gt;label(&#036;model,'rememberMe'); ?&gt;


	&lt;?php echo &#036;form-&gt;error(&#036;model,'rememberMe'); ?&gt;


&lt;/div&gt;*/?&gt;

<br>

&lt;div class=&quot;row buttons&quot;&gt;


	&lt;?php echo CHtml::submitButton('Login',array(&quot;class&quot;=&gt;&quot;btn btn-primary btn-large&quot;)); ?&gt;


&lt;/div&gt;

<?php

//aqui redireciono :D

}

else {

$this->redirect(array(’/site/wellcome’));

}

$this->endWidget();

?>

Luego puede poner a que el menu se muestr solo si estas logeado :D o dependiendo de quien este logeado :D

Buenos días.

Es más sencillo q todo eso. En tu config/main.php cambias el controlador de inicio:




...

'defaultController'=>'site/login',

...



Un saludo.