会社に所属するユーザーが会社に属するアイテムを表示できるかどうかを検証しようとしています...つまり、従業員であれば、会社のアイテムを表示できるはずです。
ここで提供されている例に従おうとしています: http://www.yiiframework.com/doc/guide/1.1/en/topics.auth
これは私が生成したコードです(一度実行します):
$auth=Yii::app()->authManager;
$auth->createOperation('viewItem','view an item');
$bizRule = 'return User::model()->findByPk(Yii::app()->user->getId())->company->id==$params["item"]->company->id';
$task=$auth->createTask('companyOwnedItem','view a company-owned item',$bizRule);
$task->addChild('viewItem');
これは main.php のコードです:
'authManager'=>array(
'class'=>'CDbAuthManager',
'connectionID'=>'db',
これは私のコントローラーで使用される認証ピースです:
if (Yii::app()->user->checkAccess('companyOwnedItem',array('item'=>$item))) {
echo 'YES';
} else echo 'NO';
画面にはいつも「NO」が表示されます。
ただし、このコードを使用すると:
if (User::model()->findByPk(Yii::app()->user->getId())->company->id==$item->company->id)
次に、画面に「はい」と表示されます。Yii のビルトイン authManager を使用して機能させるにはどうすればよいですか?