diff --git a/CHANGELOG.md b/CHANGELOG.md index 6969a17..e23b38e 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,6 +2,7 @@ ## 1.1.1 - Work in progress - Bug #115: Convert client_id to string because pgsql fail with type convertion (Dezinger) +- Bug #119: Security fix: add AccessControl to RuleController (Dezinger) - Enh #120: 2FA i18n russian translation (Dezinger) - Bug #111: Fix migration for PostgreSQL DBMS (MKiselev) - Bug #106: Correct exception value returned in `MailEvent::getException` (kartik-v) diff --git a/src/User/Controller/RuleController.php b/src/User/Controller/RuleController.php index dbce6c2..ccd6134 100644 --- a/src/User/Controller/RuleController.php +++ b/src/User/Controller/RuleController.php @@ -17,10 +17,12 @@ use Da\User\Service\AuthRuleEditionService; use Da\User\Traits\AuthManagerAwareTrait; use Da\User\Traits\ContainerAwareTrait; use Da\User\Validator\AjaxRequestModelValidator; +use Da\User\Filter\AccessRuleFilter; use Yii; use yii\filters\VerbFilter; use yii\web\Controller; use yii\web\NotFoundHttpException; +use yii\filters\AccessControl; class RuleController extends Controller { @@ -33,12 +35,24 @@ class RuleController extends Controller public function behaviors() { return [ - [ + 'verbs' => [ 'class' => VerbFilter::className(), 'actions' => [ 'delete' => ['POST'], ], - ] + ], + 'access' => [ + 'class' => AccessControl::className(), + 'ruleConfig' => [ + 'class' => AccessRuleFilter::className(), + ], + 'rules' => [ + [ + 'allow' => true, + 'roles' => ['admin'], + ], + ], + ], ]; }