Para verificar si el usuario es admin, crea un método de instancia en el modelo Usuario:
public function getEsAdmin() {
return $this->admin ? true : false;
}
Luego en la acción [font="Courier New"]view[/font] del controlador [font="Courier New"]UsuarioController[/font] (o el nombre del controlador que usas para mostrar el perfil) haces algo así:
public funtion actionView($id) {
$model = $this->loadModel($id) (donde imagino que $model es una instancia de usuario
$avisos = new Avisos();
$usuario = Usuario::model()->findByPk(Yii::app()->user->id);
if(!$usuario->esAdmin)
$avisos->id_usuario = $usuario->id; // en la vista se utilizará el método search() del modelo avisos. Al definir la id de usuario, restringimos los avisos que se verán.
$this->render('view', array(
'model' => $model,
'avisos' => $avisos,
'usuario' => $usuario,
));
}
Posteriormente en el tu vista haces algo así (prefiero incluir el widget en vez de hacer un renderPartial de /aviso/admin.php):
$this->widget('zii.widgets.grid.CGridView', array(
'id' => 'avisos-grid',
'dataProvider' => $avisos->search(),
'filter' => null, // si quieres agregas filtros dándole el valor $avisos en vez de null
'columns' => array(
// [...] los campos que se muestran siempre
array( // columna de admin
'name' => 'aprobado',
'value' => "$data->aprobado ? 'aprobado' : 'pendiente'",
// 'filter' => CHtml::activeDropDownList($model, 'aprobado', array(
0 => 'pendiente',
1 => 'aprobado',
), array(
'empty' => 'todos', // muestra todos los avisos independiente el estado
)), // si quieres un dropdown para filtrar estado de aprobación. Esto es asumiendo que aprobado es un boolean con valores 0 y 1.
'visible' => $usuario->esAdmin,
),
array(
'class' => 'CButtonColumn',
'template' => '{delete}',// puedes cambiar el valor para que se muestren más botones. Las opciones son {view}{update}{delete}
'deleteButtonUrl' => 'array("avisos/delete", "id" => "$data->id")', // acá tienes que arreglarlo para que haga el request al actionDelete que solo puede ir por $_POST. No recuerdo en estos momentos la modificación exacta que hay que hacerle.
),
),
));