Ciao a tutti
sto provando a capire come funzione le rule base access control ho creato il file controller in questo modo
<?php
/**
* Controller
*/
class SiteController extends CController
{
/**
* Index action is the default action in a controller.
*/
public function filters()
{
return array(
'accessControl', // perform access control for CRUD operations
);
}
public function accessRules()
{
return array(
array('allow',
'actions'=>array('index','view'),
'users'=>array('*'),
),
array('allow',
'actions'=>array('create'),
'users'=>array('admin'),
),
array('deny',
'users'=>array('*'),
),
);
$d=new Dati();
}
public function actionCreate()
{ .......
}
public function actionIndex()
{
static $scelta=array(
'show data user',
'create data utente',
);
if(isset($_POST['scelta']))
{
$s=$_POST['scelta'];
if($s==0)
{
header("location: index.php?r=contact/View");
}
else
{
header("location: index.php?r=contact/create");
}
}
else
{ $params=array(
'scelta'=>$scelta,
'error'=>Yii::app()->request->isPostRequest,
);
$this->render('index', $params);
}
}
function actionView()
{
.....
...
}
}
ed poi ho creato un nuovo file con dentro tutte le rules operation e task ma adesso non so come usare queste regole.
devo importare questo file dentro il control oppure richiamare la funzione rules in controller, altrimenti mi potete spiegare dove posizionare queste regole.
Ho già fatto la parte di login con utente ha id username e password "Yii::app()->user->login($this->_identity,$duration);"
<?php
class Rules
{
function rules()
{
$auth=Yii::app()->authManager;
$auth->createOperation('View','show data user');
$auth->createOperation('create','create data user');
$role=$auth->createRole('Admin');
$role->addChild('View');
$role->addChild('create');
$role=$auth->createRole('User');
$role->addChild('View');
$auth->assign('Admin','adminA');
$auth->assign('User','UserB');
}
}
?>
quando cerco di creare l’utente mi dice “You are not authorized to perform this action” (il file rules.php non l’ho usato da nessuna parte).
Come posso procedere?