Права доступа делаются с использованием RBAC, который есть в Yii2. Можете реализовать свою логику. Чтобы можно было изменять данные их лучше хранить в базе. RBAC Yii2 это позволяет.
Отображением колонок предусмотрено свойство «visible» в GridViev. Ему нужно передавать булево значение (false, true)
“visible” => true // или ваше условие
[
'label' => 'Executive Name',
'attribute' => 'cs.first_name',
'visible' => function ($data) {
if ($data->hc_customersupport->is_supervisor) {
return '1'; // or return true;
} else {
return '0'; // or return false;
}
},
],
use Yii;
...
'visible' => Yii::$app->user->can('supervisor'),