Busqué en Google, leí tutoriales, blogs y experimenté mucho. Así que soy capaz de definir el acceso basado en roles a las acciones del controlador. Todo funciona bien. Lo que quiero preguntar es. ¿Cómo puedo escribir una regla para visualizar, editar y eliminar la publicación de un usuario?Acceso basado en funciones Yii, administrando publicaciones propias
Por defecto, muestra todas las publicaciones. Sin embargo, podemos poner los criterios del proveedor de datos para mostrar la publicación propia. ¿Pero cómo puedo controlar el CRUD para eso? Amablemente ayúdame. Mi código está abajo.
public function accessRules() {
return array(
array('allow', // allow all users to perform 'index' and 'view' actions
'actions' => array('index', 'view'),
'users' => array('*'),
),
array('allow', // allow authenticated user to perform 'create' and 'update' actions
'actions' => array('create', 'update'),
'expression' => 'Yii::app()->controller->HaveAccess()',
//'users' => array('@'),
),
array('allow', // allow admin user to perform 'admin' and 'delete' actions
'actions' => array('admin', 'delete'),
'expression' => 'Yii::app()->controller->HaveAccess()',
),
array('deny', // deny all users
'users' => array('*'),
),
);
}
para la pantalla mensaje:
public function actionIndex() {
$dataProvider = new CActiveDataProvider('Advertisment');
if (!$this->IsAdmin()) {
$dataProvider = new CActiveDataProvider('Advertisment', array(
'criteria' => array(
'condition' => 'added_by='.$this->userId,
'order' => 'id DESC',
),
'pagination' => array(
'pageSize' => 20,
),
));
}
$this->render('index', array(
'dataProvider' => $dataProvider,
));
}
sólo tiene que añadir el identificador de usuario a la esas acciones como tú eres doi ng para acitonIndex '$ this-> userId' – Orlymee
donde en el controlador está configurando el valor' $ this-> userId'? –