Ho cercato su google, ho letto tutorial, blog e ho sperimentato molto. Quindi sono in grado di definire l'accesso basato sul ruolo alle azioni del controller. Tutto funziona bene. Quello che voglio chiedere è. Come posso scrivere una regola per visualizzare, modificare ed eliminare il post di un utente?Accesso basato su ruolo Yii, gestione dei propri messaggi
Per impostazione predefinita visualizza tutti i messaggi. Tuttavia, possiamo mettere i criteri del fornitore di dati per mostrare il proprio post. Ma come posso controllare il CRUD per quello ?? Gentilmente aiutami. Il mio codice è muggito.
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('*'),
),
);
}
per la visualizzazione del messaggio:
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,
));
}
È sufficiente aggiungere l'ID utente al quelle azioni come te sono doi ng per acitonIndex '$ this-> userId' – Orlymee
dove nel controller stai impostando il valore' $ this-> userId'? –