Как запретить пользователю редактировать не свои записи

Есть две таблицы

users и orders

между ними связь через поле user_id

В контроллере есть правила, как сделать так, чтобы пользователь мог редактировать только свои записи?




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','delete'),

				'users'=>array('@'),

			),

			array('allow', // allow admin user to perform 'admin' and 'delete' actions

				'actions'=>array('admin','delete'),

				'users'=>array('admin'),

			),

			array('deny',  // deny all users

				'users'=>array('*'),

			),

		);



через RBAC и бизнес-правила

Вот ещё нашёл менее оригинальный способ

но его надо прописавать в каждой акции в контроллере


if($model->user_id!==Yii::app()->user->id) throw new CHttpException('404', 'Acess denied');

Например




public function actionUpdate()

	{

		$model=$this->loadModel();


		if($model->user_id!==Yii::app()->user->id) throw new CHttpException('404', 'Acess denied');

... дальнейший код


public function actionDelete()

	{

          $model = $this->loadModel();

          if($model->user_id!==Yii::app()->user->id) throw new CHttpException('404', 'Acess denied');

          $model->delete();



Сделайте как фильтр.

Списибо, тоже искал решение :)