ich baue soeben mein erstes RBAC und stolpere bei den bizRules.
$oAuth = Yii::app()->authManager;
$oAuth->createOperation('createFlashcard', 'Erstellen');
$oAuth->createOperation('readFlashcard', 'Lesen');
$oAuth->createOperation('updateFlashcard', 'Bearbeiten');
$oAuth->createOperation('deleteFlashcard', 'DELETE');
$oRole = $oAuth->createRole('loggedUser');
$oRole->addChild('createFlashcard');
$oRole->addChild('readFlashcard');
$oRole->addChild('updateFlashcard');
$bizRule = 'return Yii::app()->user->id==$params["flashcard"]->user_id;';
$oTask = $oAuth->createTask('updateOwnFlashcard','Eigene bearbeiten',$bizRule);
$oTask->addChild('updateFlashcard');
$oAuth->assign('loggedUser','1');
$params = array('flashcard'=>$oFlashcard);
//if( Yii::app()->user->checkAccess('updateOwnFlashcard',$params))
if( Yii::app()->user->checkAccess('updateFlashcard',$params))
{
echo "IS OK";
}
else
{
echo "DARFST DAS NICHT";
}
exit();
Wenn ich den Code wie oben lasse, dann erhalte ich folgendes:
echo Yii::app()->user->id; ==> 1
echo $params['flashcard']->user_id; ==> 2
Return: "IS OK";
echo Yii::app()->user->id; ==> 1
echo $params['flashcard']->user_id; ==> 1
Return: "IS OK";
Wenn ich
if( Yii::app()->user->checkAccess('updateOwnFlashcard',$params))
Dann funktioniert es garnicht.
Kann sich das jemand erklären?

Help












