Commit 2098c624 by vova07

Сheck if user is authenticated in RBAC UserGroupRule.

parent 0880656b
...@@ -181,7 +181,7 @@ more special *tree* hierarchy. While a role can contain a permission, it is not ...@@ -181,7 +181,7 @@ more special *tree* hierarchy. While a role can contain a permission, it is not
### Configuring RBAC Manager ### Configuring RBAC Manager
Before we set off to define authorization data and perform access checking, we need to configure the Before we set off to define authorization data and perform access checking, we need to configure the
[[yii\base\Application::authManager|authManager]] application component. Yii provides two types of authorization managers: [[yii\base\Application::authManager|authManager]] application component. Yii provides two types of authorization managers:
[[yii\rbac\PhpManager]] and [[yii\rbac\DbManager]]. The former uses a PHP script file to store authorization [[yii\rbac\PhpManager]] and [[yii\rbac\DbManager]]. The former uses a PHP script file to store authorization
data, while the latter stores authorization data in database. You may consider using the former if your application data, while the latter stores authorization data in database. You may consider using the former if your application
does not require very dynamic role and permission management. does not require very dynamic role and permission management.
...@@ -416,6 +416,7 @@ You can create set up the RBAC data as follows, ...@@ -416,6 +416,7 @@ You can create set up the RBAC data as follows,
```php ```php
namespace app\rbac; namespace app\rbac;
use Yii;
use yii\rbac\Rule; use yii\rbac\Rule;
/** /**
...@@ -427,14 +428,15 @@ class UserGroupRule extends Rule ...@@ -427,14 +428,15 @@ class UserGroupRule extends Rule
public function execute($user, $item, $params) public function execute($user, $item, $params)
{ {
$group = \Yii::$app->user->identity->group; if (!Yii::$app->user->isGuest) {
if ($item->name === 'admin') { $group = Yii::$app->user->identity->group;
return $group == 1; if ($item->name === 'admin') {
} elseif ($item->name === 'author') { return $group == 1;
return $group == 1 || $group == 2; } elseif ($item->name === 'author') {
} else { return $group == 1 || $group == 2;
return false; }
} }
return false;
} }
} }
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment