la accion XXXXX seria mi reporte, que es solo una consulta
public function actionXXXXXXXXX()
{
$_GET['auditoria_habilitada']='N';
....
y en el model
public function behaviors()
{
if (isset($_GET['auditoria_habilitada']) and $_GET['auditoria_habilitada']=='N')
return array();
else
return array(
// Classname => path to Class
'ActiveRecordLogableBehavior'=>
'application.behaviors.ActiveRecordLogableBehavior',
);
}
Hay podrias setear eso para ciertos usuarios (admin por ejemplo)
Que se yo es una idea.
Otra es tener alguna variable del controlador que almacene ese valor y pedir el valor de esa variable en el behavior (supongo que con $this->controller->tu_variable) o algo asi
La variable si el local al request… lo que no se muy bien es como accederla desdel el behavior (ya que no me meti mucho con eso), pero es cuestion de investigar un poco…
public function behaviors()
{
if (isset($_GET['auditoria_habilitada']) and $_GET['auditoria_habilitada']=='N')
return array();
else
return array(
// Classname => path to Class
'ActiveRecordLogablebehavior'=>
'application.behaviors.ActiveRecordLogablebehavior',
);
}
si hago $this->variable, accedo al controller del model que estoy modificando
no al controller de la accion que estoy ejecutando
(en mi caso estoy modificando varios models desde un solo controller)
sigo investigando
por ahora le pongo a cada acción el seteo
[edit]
agregue el siguiente codigo en la clase UserIdentity
public function behaviors()
{
if (isset($_GET[Yii::app()->user->getState('nombre_variable_habililita_auditoria')]) and $_GET[Yii::app()->user->getState('nombre_variable_habililita_auditoria')]!="S")
return array();
else
return array(
// Classname => path to Class
'ActiveRecordLogableBehavior'=>
'application.behaviors.ActiveRecordLogableBehavior',
);
}