zii.widgets.grid.CGridView show certain fields if is an authenticated user and other are public

hi guy.

i have this in my view.php


<?php $this->widget('zii.widgets.CDetailView', array(

	'data'=>$model,

	'attributes'=>array(

		'id_internacional',

		'num_confirmacion',

		'pais',

		'cargo',

		'nombres',

		'apellidos',

		'nombreid',

		array(

			'label'=>'Sexo',

			'value'=>$model->sexoValor()

		),

		'no_pasaporte',

		'tipo_pasaporte',

		'fecha_nacimiento',

		array(   			

			'label'=>'Foto',

			'type'=>'image',

			'value'=>Yii::app()->baseUrl."/thumbs/".$model->foto,

    	),

		array(

			'label'=>'Carta',

			'type'=>'raw',

			'value'=>CHtml::link('Descargar Carta',$model->carta),

		),

		'email',

			array(

			'label'=>'Comitiva',

			'value'=>$model->comitivaValor()

		),

		'hotel',

		'arribo_fecha',

		'arribo_vuelo',

		'arribo_hora',

		'arribo_aerolinea',

		'partida_fecha',

		'partida_vuelo',

		'partida_hora',

		'partida_aerolinea',

		'llenado_por',

		'nombre_entrega',

		'entrega_id',

		'control',

		'control_i',

		'control_ip',

		'status',

		'observaciones',

	),

)); ?>

and in my controller I establish the the following accessRules




	public function accessRules()

	{

		return array(

			array('allow',  // allow all users to perform 'index' and 'view' actions

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

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

			),



but I want tha a cuple o fields in the view are visible only by an autenthenticated users.

e.g.




<?php $this->widget('zii.widgets.CDetailView', array(

	'data'=>$model,

	'attributes'=>array(

		'id_internacional',

		'num_confirmacion',

		'pais',

		'cargo',

		'nombres',

		'apellidos',

		'nombreid',

		array(

			'label'=>'Sexo',

			'value'=>$model->sexoValor()

		),

		'no_pasaporte',

		'tipo_pasaporte',

		'fecha_nacimiento',

		array(   			

			'label'=>'Foto',

			'type'=>'image',

			'value'=>Yii::app()->baseUrl."/thumbs/".$model->foto,

    	),

		array(

			'label'=>'Carta',

			'type'=>'raw',

			'value'=>CHtml::link('Descargar Carta',$model->carta),

		),                                                                                                    	<---------------------- hiden for no authenticated 

		'email',

			array(

			'label'=>'Comitiva',

			'value'=>$model->comitivaValor()

		),

		'hotel',

		'arribo_fecha',

		'arribo_vuelo',

		'arribo_hora',

		'arribo_aerolinea',

		'partida_fecha',

		'partida_vuelo',

		'partida_hora',

		'partida_aerolinea',

		'llenado_por',

		'nombre_entrega',

		'entrega_id',

		'control',

		'control_i',

		'control_ip',

		'status',

		'observaciones',                                                                                          	<---------------------- hiden for no authenticated users

	),

)); ?>



any help will be welcome. :slight_smile:

There is a ‘visible’ property in CGridColumn.

For example:




array(                          

    'label'=>'Foto',

    'type'=>'image',

    'value'=>Yii::app()->baseUrl."/thumbs/".$model->foto,

    'visible'=>Yii::app()->user->isGuest,

),



thanks that was very useful

I prefer to use the not simbol !




		array(

			'label'=>'Carta',

			'type'=>'raw',

			'value'=>CHtml::link('Descargar Carta',$model->carta),

			'visible'=>!(Yii::app()->user->isGuest),

		),