There is a page with limited access. For each role - their data, which we form requests. It turns out about this design
if (Yii::$app->accessControl->isRoot()) { $dataProvider = new ActiveDataProvider([ 'query' => User::find(), ]); } elseif (Yii::$app->accessControl->isDirector()){ $dataProvider = new ActiveDataProvider([ 'query' => User::find() ->where(['NOT IN', 'id', [1]]), ]); } elseif (Yii::$app->accessControl->isManager()){ $dataProvider = new ActiveDataProvider([ 'query' => User::accessManager() ]); } else { $dataProvider = new ActiveDataProvider([ 'query' => User::accessAdministrator() ]); } Tell me, is it possible in some way to make this code more cultured?)