По форуму искал, но решения так и не нашел (не исключено, что плохо искал, ссылочке тоже буду рад).
Для ролей использую расширение rights.
Задача такая: показывать админу все записи, а пользователям только свои.
В таблице есть поле officer, в котором хранится id пользователя, который ответственный за запись. Собственно пользователи и должны видеть только те записи, где в поле officer их id.
Вот нашел топик с таким же вопросом (viewtopic.php?f=3&t=1095), но не понял, как там был решен этот вопрос.
В контролере есть метод
Код: Выделить всё
public function actionAdmin() {
$model = new Request('search');
$model->unsetAttributes(); // clear any default values
if (isset($_GET['Request'])) {
$model->attributes = $_GET['Request'];
}
$this->render('admin', array(
'model' => $model,
));
}
Собственно получается, что мне нужно только задать параметры запроса
Код: Выделить всё
if (superadmin) {
выбираем все записи;
} else {
выбираем записи, где officer=Yii::app()->user->id;
}
Код: Выделить всё
public function actionAdmin() {
if (Yii::app()->user->checkAccess('Request.Admin')) {
$model = new Request('search');
$model->unsetAttributes(); // clear any default values
if (isset($_GET['Request'])) {
$model->attributes = $_GET['Request'];
}
if (!Rights::getAuthorizer()->isSuperuser(Yii::app()->user->getId())) {
$model->officer = Yii::app()->user->getId();
}
$this->render('admin', array(
'model' => $model,
));
} else {
throw new CHttpException(403, Yii::t("yii", "You are not authorized to perform this action."));
}
}
Люди, подскажите, кто как реализовывает такие вещи?
Примеры кода очень приветствуются.