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?
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'=>'login-form',
'action'=>$this->createUrl("site/login"),
'htmlOptions'=>array("style"=>"text-align: center"),
'enableClientValidation'=>true,
'clientOptions'=>array(
'validateOnSubmit'=>true,
),
));
if (Yii::app()->user->name=="" or Yii::app()->user->name=="Guest")
{
?>
<div class="row">
<?php echo $form->labelEx($model,'Username'); ?>
<br>
<?php echo $form->textField($model,'username'); ?>
<?php echo $form->error($model,'username'); ?>
</div>
<div class="row">
<?php echo $form->labelEx($model,'password'); ?>
<br>
<?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>*/?>
<br>
<div class="row buttons">
<?php echo CHtml::submitButton('Login',array("class"=>"btn btn-primary btn-large")); ?>
</div>
<?php
//aqui redireciono
}
else {
$this->redirect(array(’/site/wellcome’));
}
$this->endWidget();
?>
Luego puede poner a que el menu se muestr solo si estas logeado o dependiendo de quien este logeado
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.