Yii Framework Forum: Configurar método accesRules con una variable en sesión - Yii Framework Forum

Jump to content

Page 1 of 1
  • You cannot start a new topic
  • You cannot reply to this topic

Configurar método accesRules con una variable en sesión Rate Topic: -----

#1 User is offline   Jeibi 

  • Newbie
  • Yii
  • Group: Members
  • Posts: 10
  • Joined: 29-September 10

Posted 15 October 2010 - 03:24 AM

Hola a todos,

Ya que es bastante cómodo el método accesRules del fichero Controler, mi pregunta es si se puede permitir acciones dependiendo de alguna variable que tengamos en sesión.
Por ejemplo, yo tengo varios tipos de usuarios y unos son administradores y otros gestores, se diferencian por un campo que tengo en la tabla Usuarios que la he llamado 'permissions'.
Y bueno, no se si se puede filtrar el accesRules por algún campo determinado, que esté en sesión o leyendo de base de datos.
No se si me expliqué bien. ¿Alguien me puede ayudar?

Gracias
0

#2 User is offline   gallego123 

  • Advanced Member
  • PipPipPip
  • Yii
  • Group: Members
  • Posts: 535
  • Joined: 11-August 09
  • Location:Argentina

Posted 15 October 2010 - 05:07 AM

View PostJeibi, on 15 October 2010 - 03:24 AM, said:

Hola a todos,

Ya que es bastante cómodo el método accesRules del fichero Controler, mi pregunta es si se puede permitir acciones dependiendo de alguna variable que tengamos en sesión.
Por ejemplo, yo tengo varios tipos de usuarios y unos son administradores y otros gestores, se diferencian por un campo que tengo en la tabla Usuarios que la he llamado 'permissions'.
Y bueno, no se si se puede filtrar el accesRules por algún campo determinado, que esté en sesión o leyendo de base de datos.
No se si me expliqué bien. ¿Alguien me puede ayudar?

Gracias


Si, por supuesto que se puede. Yo lo uso. te paso un ejemplo. tenes que usar "expression"
solo tenes que poner entre " " la llamada a un método que retorna true o false

	public function accessRules()
	{
		return array(
			array('allow', 
				'actions'=>array('index','view'),
				'expression'=>"Seguridad::tieneRol('CREDENCIAL_CONSULTA')",
			),
			array('allow', 
				'actions'=>array('admin','delete','create','update'),
				'expression'=>"Seguridad::tieneRol('CREDENCIAL_ADMIN')",
			),
			array('deny',  // deny all users
				'users'=>array('*'),
			),
		);
	}




saludos
KISS - Keep It Simple Stupid
ASAP-As Soon As Possible
http://www.yiiframew...oc/cookbook/71/
0

#3 User is offline   Jeibi 

  • Newbie
  • Yii
  • Group: Members
  • Posts: 10
  • Joined: 29-September 10

Posted 15 October 2010 - 05:54 AM

Gracias Horacio,

ya lo había solucionado de esta manera:

array('allow', 
    'actions'=>array('admin','delete'),
    'expression'=>'Usuario::model()->findByPk(Yii::app()->user->getId())->COD_GESTOR=="GES0001"',
),


Pero me gustó tu idea, lo voy a probar.

saludos
0

#4 User is offline   mauricioschneider 

  • Standard Member
  • PipPip
  • Yii
  • Group: Members
  • Posts: 152
  • Joined: 16-August 10
  • Location:Santiago, Chile

Posted 18 October 2010 - 11:29 PM

Puedes echar un vistazo a rbac o acceso basado en roles. Es una característica incluida en Yii que te permite organizar mejor el tema de los permisos para cada usuario basado en su rol dentro de la aplicación.

Claro que es una implementación más compleja, pero no está de más saber como funciona.
0

#5 User is offline   Jeibi 

  • Newbie
  • Yii
  • Group: Members
  • Posts: 10
  • Joined: 29-September 10

Posted 19 October 2010 - 01:14 AM

Gracias MRivera, le echaré un vistazo.

saludos
0

Share this topic:


Page 1 of 1
  • You cannot start a new topic
  • You cannot reply to this topic

1 User(s) are reading this topic
0 members, 1 guests, 0 anonymous users