Скажем, у вас есть модель Active Record, которая содержит набор записей:
id | name
---------
1 | Record1
2 | Record2
3 | Record3
Пользователи, имеющие разрешение на просмотр каждой записи, хранятся в другой таблице, используя внешний ключ для представления записи, через запятую:
foreignId | users
-----------------
1 | joe, doe, zoe
2 | joe
3 | doe, zoe
Существует менеджер аутентификации bizRule, который проверяет, есть ли у текущего пользователя разрешение на просмотр записи. Вы даете ему идентификатор записи, и он проверяет таблицу разрешений, чтобы увидеть, находится ли пользователь в поле, разделенном запятыми.
Yii::app()->authManager->checkAccess('seeRecord', $id);
Есть ли простой способ с помощью CActiveRecord передать "запрос" PHP-выражения? Что-то вроде:
Record::model()->findByPHPExpression('Yii::app()->authManager->checkAccess('seeRecord', array('id' => 'id'));
Если выражение возвращает true для текущей записи, эта запись будет добавлена.
Спасибо