Yii2 RBAC Rol tabanlı giriş

Bu yapının kullanılması için gerekli veritabanı sql dosyasını vendor/yiisoft/yii2/rbac/migrations klasöründe farklı veritabanları için bulabilirsiniz. Buradan tablolar oluşturulabilir.

daha sonra cakend/config/main.php içerisine aşağıdaki kod bloğu eklenerek veritabanındaki tablolara erişim sağlanır.

‘authManager’=>[
‘class’=>’yii\rbac\DbManager’,
‘defaultRoles’=>[‘guest’],
]

veritabanında ise resimlerdeki gibi gerekli yetkilendirilmeler yapıldığında ccontroller dosyasında yetki verilecek işlem actionın başına

if (Yii::$app->user->can(‘create-randevu-birim’)) {

kontrolü getirilir.

 

create işlemini create-randevu-birim e yetkisi olan kişiler görebilecek.

 

 

 

Örnek kullanım aşağıdaki gibidir;

use yii\web\ForbiddenHttpException;

public function actionCreate()
{
if (Yii::$app->user->can(‘create-randevu-birim’)) {
 

$model = new RandevuBirimler();

if ($model->load(Yii::$app->request->post())) {

$dosyaadi=$model->birim_adi;
$model->file =UploadedFile::getInstance($model,’file’);

//veritabanındaki alana yükleme
$model->resmi_yazi=’birimresmiyazilar/’.$dosyaadi.’.’.$model->file->extension;
$model->save();

$model->file->saveAs(‘birimresmiyazilar/’.$dosyaadi.’.’.$model->file->extension);

return $this->redirect([‘view’, ‘id’ => $model->id]);

} else {

return $this->render(‘create’, [
‘model’ => $model,
]);

}

}else
{
throw new ForbiddenHttpException;

}
}