使用Yii2的基本安装构建轻量级应用程序。 我需要为用户分配角色,但不想将用户和用户角色存储在数据库中。 如何为User-> users类中定义的用户设置角色?
默认用户模型和默认用户定义如下:
class User extends \yii\base\BaseObject implements \yii\web\IdentityInterface
{
public $id;
public $username;
public $password;
public $authKey;
public $accessToken;
private static $users = [
'100' => [
'id' => '100',
'username' => 'admin',
'password' => 'admin',
'authKey' => 'test100key',
'accessToken' => '100-token',
],
答案 0 :(得分:2)
您可以使用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,
],
现在剩下的就像在Authorization Guide中一样。
console.php
)。 / li>
现在您可以使用direct check or behavior configuration控制访问了。