sábado, 1 de junio de 2013

YII – Mostrar elementos si el está usuario logeado

Lo más probable, es que queramos mostrar diferentes elementos según si el usuario está o no logeado, y más aún, quizás queremos mostrar elementos a usuarios específicos, por ejemplo, un usuario administrador tiene más permisos de visualización que los otros usuarios.

En YII, mucho de esto, lo podemos hacer a través de la función rules(), a pesar de esto, hay más que hacer, por ejemplo, que nuestr menú nos muestre o no elementos, según el usuario. Por ejemplo, en la ruta /protected/views/layouts/main.php veremos el menú que viene por defecto, algo similar a esto:


 

Aquí ya nos podemos fijar en 2 cosas, y son los array de Login y Logout, que son los que están trabajando como queremos nosotros. Ya que si el usuario está logeado, muestra uno, si no está logeado, muestra otro. 

Mostrar u ocultar elementos, lo comparamos con que si el usuario es invitado o no (isGuest). Por ejemplo, si queremos qe el menú “Contact” sólo se muestre cuando el usuario esté logeado, hacemos lo siguiente:

array('label'=>'Contacto', 'url'=>array('/site/contact')), 'visible'=>!Yii::app()->user->isGuest),
Lo que aquí estamos indicando, es que sea visibile siempre y cuando el usuario NO sea invitado. Esta negación la hacemos con el signo de exclamación (!).

0 comentarios:

Publicar un comentario