在Yii2中具有基本用户模型时如何向用户添加角色

在Yii2中具有基本用户模型时如何向用户添加角色,yii2,Yii2,使用Yii2的基本安装构建轻量级应用程序。 我需要为用户分配角色,但不希望将用户和用户角色存储在数据库中。 如何为用户->用户类中定义的用户设置角色 默认用户模型和默认用户定义如下所示: 类用户扩展\yii\base\BaseObject实现\yii\web\IdentityInterface { 公费$id; 公共$username; 公共密码; 公钥; 公共$accessToken; 私有静态$users=[ '100' => [ 'id'=>'100', “用户名”=>“管理员”, “密码

使用Yii2的基本安装构建轻量级应用程序。 我需要为用户分配角色,但不希望将用户和用户角色存储在数据库中。 如何为用户->用户类中定义的用户设置角色

默认用户模型和默认用户定义如下所示:

类用户扩展\yii\base\BaseObject实现\yii\web\IdentityInterface
{
公费$id;
公共$username;
公共密码;
公钥;
公共$accessToken;
私有静态$users=[
'100' => [
'id'=>'100',
“用户名”=>“管理员”,
“密码”=>“管理员”,
'authKey'=>'test100key',
'accessToken'=>'100 token',
],

您可以使用RBAC PhpManager,将所有角色信息存储在文件中

首先在
config/web.php
中配置AuthManager组件:

// ...
'components' => [
    // ...
    'authManager' => [
        'class' => 'yii\rbac\PhpManager',
    ],
    // ...
],
默认情况下,它使用3个文件来保存数据:

  • @app/rbac/items.php
  • @app/rbac/assignments.php
  • @app/rbac/rules.php
因此,请确保应用程序的根目录中有文件夹
rbac
,并且该文件夹可由www进程写入。如果要将文件放置在其他位置(或重命名),可以在配置中提供新路径,如:

'authManager' => [
    'class' => 'yii\rbac\PhpManager',
    'itemFile' => // new path here for items,
    'assignmentFile' => // new path here for assignments,
    'ruleFile' => // new path here for rules,
],
现在剩下的就跟过去一样

  • 准备角色和权限(-在设置所有角色后运行此命令;请记住,如果要在console中运行它,还需要使用相同的组件配置
    console.php
  • 将角色分配给用户(-此处是在注册期间完成的,但您也可以在上面的命令中完成)

  • 现在,您可以使用来控制访问。

    过了一段时间,我想说声谢谢。很抱歉我的回复出现了很大的延迟。我被迫推迟了应用程序的编程。您的消息对我帮助很大!