网上很多说用composer安装,但是其实国内的环境和网速大家懂的,所以还是下载安装比较快
1.下载地址:
https://github.com/mdmsoft/yii2-admin/releases
2.解压这个下载的包到vendor/mdm/目录下,如果没有mdm目录就新建一个
3.配置backend/config/main.php
<?php
$params = array_merge(
require __DIR__ . '/../../common/config/params.php',
require __DIR__ . '/../../common/config/params-local.php',
require __DIR__ . '/params.php',
require __DIR__ . '/params-local.php'
);
return [
'aliases' => [
'@mdm/admin' => '@vendor/mdm/yii2-admin-2.11',
'layout' => 'left-menu',
// for example: '@mdm/admin' => '@app/extensions/mdm/yii2-admin-2.0.0',
//...
],
'id' => 'app-backend',
'basePath' => dirname(__DIR__),
'controllerNamespace' => 'backend\controllers',
'bootstrap' => ['log'],
'modules' => [],
'modules' => [
'admin' => [
'class' => 'mdm\admin\Module',
'layout' => 'left-menu',//yii2-admin的导航菜单
]
],
'components' => [
/*'authManager' => [
'class' => 'yii\rbac\DbManager',//'yii\rbac\PhpManager', // or use
],*/
'authManager' => [
'class' => 'yii\rbac\DbManager', // 使用数据库管理配置文件
],
'request' => [
'csrfParam' => '_csrf-backend',
],
'user' => [
'identityClass' => 'backend\models\Adminuser',
'enableAutoLogin' => true,
'identityCookie' => ['name' => '_identity-backend', 'httpOnly' => true],
],
'session' => [
// this is the name of the session cookie used for login on the backend
'name' => 'advanced-backend',
],
'log' => [
'traceLevel' => YII_DEBUG ? 3 : 0,
'targets' => [
[
'class' => 'yii\log\FileTarget',
'levels' => ['error', 'warning'],
],
],
],
'errorHandler' => [
'errorAction' => 'site/error',
],
/*
'urlManager' => [
'enablePrettyUrl' => true,
'showScriptName' => false,
'rules' => [
],
],
*/
],
'as access' => [
'class' => 'mdm\admin\components\AccessControl',
'allowActions' => [
'site/*',
'admin/*',
'some-controller/some-action',
// The actions listed here will be allowed to everyone including guests.
// So, 'admin/*' should not appear here in the production, of course.
// But in the earlier stages of your development, you may probably want to
// add a lot of actions here until you finally completed setting up rbac,
// otherwise you may not even take a first step.
]
],
'params' => $params,
];
4.配置common/config/main.php
<?php
return [
'aliases' => [
'@bower' => '@vendor/bower-asset',
'@npm' => '@vendor/npm-asset',
],
'vendorPath' => dirname(dirname(__DIR__)) . '/vendor',
'components' => [
'cache' => [
'class' => 'yii\caching\FileCache',
],
'authManager' => [
'class' => 'yii\rbac\DbManager', // 使用数据库管理配置文件
],
],
];
5.创建相应的数据库表
在控制台中输入以下命令:
yii migrate --migrationPath=migrations
yii migrate --migrationPath=@yii/rbac/migrations
安装到此完成。
访问http#//localhost/path/to/index.php?r=admin可以看到yii2-admin的管理界面
6.配置访问权限示例
以节点terms(一个自定义的节点)为例,节点terms下共有index,view,create,update,delete五个子节点。
配置目标:
未登录用户仅能访问index节点
一般登录用户能访问index,view,create三个节点
管理员能访问所有节点
步骤一:添加可分配列表
打开yii2-admin路由列表页,点击可用输入框后面的刷新图标将列出当前网站所有可用的路由列表,选中terms各节点路由表添加至右侧可分配路由列表中。
步骤二:添加权限
权限列表=>新增权限,填好名称提交后,添加对应的路由规则即可。
可用列表中除了路由列表还有已经添加了的权限列表,一个权限可以包含另一个权限。
步骤三:添加角色
角色列表=》新增角色,分别添加管理员、一般用户、未登录用户,将对应的权限分配给角色。
步骤四:分配角色
分配界面列出来的用户名是当前系统中已注册的用户。现注册了admin和user账号用于演示。
点击账号后边的眼睛图案,进行权限分配。
按需要,给予相应的权限。
步骤五:配置网站默认访问权限
上面四步配置完成后,我们访问terms各节点测试结果:
以一般用户身份登录时,可以浏览、添加信息,要更新、删除信息时会提示无权操作。符合预期。
以管理员身份登录时,可进行所有操作。符合预期。
但是如果不登录,在访问terms首页时会跳转到登录页面。预期结果是未登录时能访问terms首页。
就是说当前系统默认不认可我们配置给未登录用户的权限。
只需要在配置文件中加一行指定默认规则的代码即可:
'authManager'=> [
'class' => 'yii\rbac\DbManager',
'defaultRoles' => ['未登录用户'],//添加此行代码,指定默认规则为 '未登录用户'
],
未登录时再访问terms/index节点就能正常显示了,点别的操作时会跳到登录页面,因为未登录时仅有访问首页的权限。
除了在authManager中配置默认权限,在as access中也可以配置允许所有人访问的节点。
'as access' => [
'allowActions' => [//下面列出的节点,所有人都可以访问,针对未登录用户的配置也可以移至这里
'admin/*',
'site/*',
]
]
参考链接:
https://www.kancloud.cn/curder/yii/247759
https://www.yiichina.com/tutorial/571