Если дело только в actionIndex, то вам придется как минимум отнаследоваться от ActiveController и использовать свой IndexAction:
class MyActiveController extends yii\rest\ActiveController {
public function actions(){
return ArrayHelper::merge(parent::actions(), [
'index' => [
'class' => 'common\components\IndexAction'
]
]);
}
}
class IndexAction extends yii\rest\IndexAction {
/**
* Prepares the data provider that should return the requested collection of the models.
* @return ActiveDataProvider
*/
protected function prepareDataProvider()
{
$requestParams = Yii::$app->getRequest()->getBodyParams();
if (empty($requestParams)) {
$requestParams = Yii::$app->getRequest()->getQueryParams();
}
$filter = null;
if ($this->dataFilter !== null) {
$this->dataFilter = Yii::createObject($this->dataFilter);
if ($this->dataFilter->load($requestParams)) {
$filter = $this->dataFilter->build();
if ($filter === false) {
return $this->dataFilter;
}
}
}
if ($this->prepareDataProvider !== null) {
return call_user_func($this->prepareDataProvider, $this, $filter);
}
/* @var $modelClass \yii\db\BaseActiveRecord */
$modelClass = $this->modelClass;
// чтобы переделать это
//$query = $modelClass::find();
$query = $modelClass::find()->where(['user_id' => Yii::$app->user->id]);
if (!empty($filter)) {
$query->andWhere($filter);
}
return Yii::createObject([
'class' => ActiveDataProvider::className(),
'query' => $query,
'pagination' => [
'params' => $requestParams,
],
'sort' => [
'params' => $requestParams,
],
]);
}
}
PS: и это при условии, что все модели, к которым идёт обращение через этот контроллер, имеют user_id.