Php 基本yii2模板的RBAC
我想创建一个应用程序,其中只有管理员可以执行所有crud操作,但其他用户只能创建和更新帖子。我确实找到了基于rbac的教程,但只针对高级模板,但我使用的是基本模板。我也遵循了yii2指南,但我不太理解它,比如执行./yii rbac/init console命令。如何操作?首先在模型文件夹中创建一个名为PermissionHelpers的助手类:Php 基本yii2模板的RBAC,php,yii2,rbac,Php,Yii2,Rbac,我想创建一个应用程序,其中只有管理员可以执行所有crud操作,但其他用户只能创建和更新帖子。我确实找到了基于rbac的教程,但只针对高级模板,但我使用的是基本模板。我也遵循了yii2指南,但我不太理解它,比如执行./yii rbac/init console命令。如何操作?首先在模型文件夹中创建一个名为PermissionHelpers的助手类: namespace app\models; use Yii; class PermissionHelpers { public stati
namespace app\models;
use Yii;
class PermissionHelpers {
public static function requireAdmin() {
if(Yii::$app->user->identity->role == 100)
{
return true;
}
else return false;
}
}
然后使用以下命令更新控制器:
// at top with your other use
use yii\filters\AccessControl;
use app\models\PermissionHelpers;
// first function inside the class
public function behaviors()
{
return [
'access' => [
'class' => AccessControl::className(),
'only' => ['privateaction1', 'privateaction2'],
'rules' => [
[
'actions' => ['privateaction1', 'privateaction2'],
'allow' => true,
'roles' => ['@'],
'matchCallback' => function($rule, $action) {
return PermissionHelpers::requireAdmin();
}
],
],
],
}
现在,您需要在DB中使用role=100更新您自己,并且您已经设置好了
我自己也在使用高级模板,所以可能会对名称空间等进行一些小的更改。但这应该很容易理解。祝你好运 你好,乔根。然后我们可以在yii2基本版本中使用RBAC。它是?因为,在阅读Yi2 rbac教程时,我发现rbac是针对Yi2高级版本的。我也有同样的问题。我必须在哪里声明角色为100的DB?在config/db.php?@NanaPartykar抱歉,我不再使用yii2.Ok@Raj编写代码。NP谢谢。此链接肯定会帮助您详细了解并在Yii2中实现RBAC