1. 程式人生 > >Yii 2.0 搭建基於RBAC許可權的後臺管理系統 (二)

Yii 2.0 搭建基於RBAC許可權的後臺管理系統 (二)

三、RBAC整合AdminLTE後臺主題對選單進行控制

1.  配置APACHE虛擬主機

在 <XAMPP安裝路徑>\apache\conf\extra\httpd-vhosts.conf檔案末尾追加

<VirtualHost *:80>
    ServerName frontend.test
    DocumentRoot "project_path/advanced/frontend/web/"
    
    <Directory "project_path/advanced/frontend/web/">
        # use mod_rewrite for pretty URL support
        RewriteEngine on
        # If a directory or a file exists, use the request directly
        RewriteCond %{REQUEST_FILENAME} !-f
        RewriteCond %{REQUEST_FILENAME} !-d
        # Otherwise forward the request to index.php
        RewriteRule . index.php


        # use index.php as index file


        DirectoryIndex index.php


        # ...other settings...
    </Directory>
</VirtualHost>


<VirtualHost *:80>
    ServerName backend.test
    DocumentRoot "project_path/advanced/backend/web/"
    
    <Directory "project_path/advanced/backend/web/">
        # use mod_rewrite for pretty URL support
        RewriteEngine on
        # If a directory or a file exists, use the request directly
        RewriteCond %{REQUEST_FILENAME} !-f
        RewriteCond %{REQUEST_FILENAME} !-d
        # Otherwise forward the request to index.php
        RewriteRule . index.php


        # use index.php as index file
        DirectoryIndex index.php


        # ...other settings...
    </Directory>
</VirtualHost>

2. 配置本地HOST:

在C:\WINDOWS\System32\drivers\etc\HOSTS檔案裡追加

127.0.0.1   backend.test
127.0.0.1   frontend.test

3. 建立資料庫並配置資料庫連結

create database yii2_advanced default charset utf8;

修改本地配置檔案<專案根目錄>/common/config/main-local.php內容,這裡使用的mysql資料庫,配置如下:

'db' => [
    'class' => 'yii\db\Connection',
    'dsn' => 'mysql:host=localhost;dbname=yii2_advanced',
    'username' => 'yii2_advanced_username',
    'password' => 'yii2_advanced_password',
    'charset' => 'utf8',
],

 

4. 配置yii2-admin執行環境

安裝yii2.0-admin

composer require mdmsoft/yii2-admin "~2.0"

因為僅將許可權控制應用於後臺backend模組,所以這裡將配置寫到<專案根目錄>/backend/config/main.php檔案裡,依次小心新增如下內容。

return [
    'modules' => [
        'admin' => [
            'class' => 'mdm\admin\Module',
        ]
    ],
    'components' => [
        'authManager' => [
            'class' => 'yii\rbac\DbManager', // 使用資料庫管理配置檔案
        ]
    ],
    'as access' => [
        'class' => 'mdm\admin\components\AccessControl',
        'allowActions' => [
            'site/*',//允許訪問的節點,可自行新增
            'admin/*',//允許所有人訪問admin節點及其子節點
        ]
    ],
];

建立資料庫表
建立使用者表和選單表
這裡通過命令列執行命令的方式,使用遷移檔案進行資料庫表的建立。

> 執行以下命令前請保證資料庫中不存在相關表。

php yii migrate [email protected]/admin/migrations


上面的命令會在資料庫建立user表和menu表。

建立RBAC相關表

建表語句存放在<專案根目錄>/vendor/yiisoft/yii2/rbac/migrations/schema-mysql.sql檔案中,在MySQL資料庫中執行分別得到auth_assignment、auth_item_child、auth_item、auth_rule四個表。



配置簡短路由

<專案根目錄>/backend/config/main.php檔案的compontents數組裡加上下面的配置:

"urlManager" => [
    "enablePrettyUrl" => true,
    "enableStrictParsing" => false,
    "showScriptName" => false,
    "suffix" => "",
    "rules" => [        
        "<controller:\w+>/<id:\d+>"=>"<controller>/view",  
        "<controller:\w+>/<action:\w+>"=>"<controller>/<action>"    
    ],
],

然後在 <專案根目錄>/backend/web下面建立.htaccess檔案並新增如下內容

Options +FollowSymLinks
IndexIgnore  */*
RewriteEngine on
RewriteCond  %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . index.php
Windows建立.htaccess檔案
cd  D:\Development\Environment\xampp\htdocs\advanced\backend\web
輸入copy con .htaccess 回車 (不會看到變化),然後再按ctrl+Z鍵,再回車,然後就建立了
通過訪問位址列http://backend.test/admin檢視效果,如下:

到這裡準備工作基本就緒,開始整合Yii的第三方資源外掛。

四、Yii2整合AdminLTE後臺主題

安裝AdminLTE

在專案根目錄(advanced)下執行    

composer require dmstr/yii2-adminlte-asset "2.*"


複製整個<專案根目錄>vendor/dmstr/yii2-adminlte-asset/example-views/yiisoft/yii2-app目錄下的 layout 目錄和 site 目錄到backend/views,覆蓋原始檔案。

                           

成功後註冊一個新使用者:

進入http://frontend.test/點選右上角 Signup 註冊一個新使用者


註冊成功後,右上角會顯示登陸的狀態,在接下來的步驟中會用到這個註冊的使用者

現在我們訪問一下後臺管理地址

http://backend.test/


這樣基於Yii2.0的RBAC的許可權管理系統就搭建了一部分啦。下一篇RBAC許可權配置


相關推薦

Yii 2.0 搭建基於RBAC許可權後臺管理系統

三、RBAC整合AdminLTE後臺主題對選單進行控制1.  配置APACHE虛擬主機在 <XAMPP安裝路徑>\apache\conf\extra\httpd-vhosts.conf檔案末尾追加<VirtualHost *:80>     Serve

Yii 2.0 搭建基於RBAC許可權後臺管理系統

自己學習Yii 2.0搭建RBAC的一些筆記整理了一下發來和大家分享下,大神勿噴。一、安裝PHP依賴管理工具 1. 配置PHP證書確保可以使用php訪問http下載 ca-bundle.crt和cacert.pem將這兩個檔案放在<XAMPP的安裝路徑>/<

從零搭建java後臺管理系統mysql和redis安裝

docker 權限 req 安全性 分享圖片 登錄 red 解析 append 接上篇開始安裝mysql和redis 註意了,如果用阿裏雲服務器,外網訪問的端口必須在安全組開啟,否則外網訪問不通 三、服務器安裝redis和mysql 本次環境搭建將所有第三方服務會安

angular6 + ng-zorro鹿途後臺管理系統項目結構規劃

風格 shared 形式 route rgb 最好 導航 出口 ref 上一節我們已經搭建好項目的基本骨架,現在我們就來對項目的整體結構進行規劃,項目結構規劃每個人每個公司都有不同的方式,我們不去論好壞還是是否合理,只要你當前覺得它是最好的實現就好,不過我還是建議去參

angular6 + ng-zorro鹿途後臺管理系統專案結構規劃

上一節我們已經搭建好專案的基本骨架,現在我們就來對專案的整體結構進行規劃,專案結構規劃每個人每個公司都有不同的方式,我們不去論好壞還是是否合理,只要你當前覺得它是最好的實現就好,不過我還是建議去參考優秀專案的規劃方式。 專案結構設計總原則:一切皆模組,鹿途專案的模組主要以功能劃分,每個完整的功能點就是一

構建ASP.NET MVC5+EF6+EasyUI 1.4.3+Unity4.x註入的後臺管理系統66-MVC WebApi 用戶驗證 (2)

簡單 權限管理 mark 調用接口 cat pps 總結 回顧 bsp 前言: 構建ASP.NET MVC5+EF6+EasyUI 1.4.3+Unity4.x註入的後臺管理系統(65)-MVC WebApi 用戶驗證 (1) 回顧上一節,我們利用w

react搭建後臺管理系統

管理系 for menu port 文件中 segment 後臺管理 ans create 先準備工具:  yarn安裝:    npm install -g yarn #yarn也是包管理工具,只不過它構建效率更高    官方使用教程:https://yarnpkg.

從零搭建java後臺管理系統

pac 阿裏 stat 技術 user 日誌 代碼 最小 mbo 框架搭建 一、初步設想,使用springboot,框架打算用到依賴 spring web,devTools,mysql,Aspect,Redis,Lombok,Freemark,Shiro,Rabbitmq

vue從入門到女裝??:從零開始搭建後臺管理系統安裝框架

安裝及執行都是基於node的,不會node的可以自行百度,網上教程很多,也不難 專案效果預覽: demo1 demo2 原始碼下載 開始安裝框架: vue element-ui   注意如果報錯安裝失敗就重新安裝,不然雖然本地有element的依賴包但是可能會出一些奇怪的錯誤 另外element-ui

vue全家桶+element-UI搭建後臺管理系統4“:登入攔截,登陸後才可以操作”

首先明白如何實現登入攔截,他的原理是什麼?這裡主要用到的是路由攔截,在路由表裡新增一個欄位:requireAuth,用於判斷該路由的訪問是否需要登入;定義完路由後,我們主要是利用vue-router提供的鉤子函式beforeEach()對路由進行判斷。現在 我們開始.....

ASP.NET MVC5+EF6+EasyUI 後臺管理系統20-許可權管理系統-根據許可權獲取選單

系列目錄 不知不覺到20講,真是漫長的日子,可惜最近工作挺忙,要不可以有更多的時間來更新,多謝大家的一路支援.如果你覺得好,記得幫我點選推薦^-^ 我們在之前已經插入一些真實資料,其中包含了一個使用者和樣例程式SysSample的許可權,並實現了使用者的登入。 但有的朋友對錶

ASP.NET MVC5+EF6+EasyUI 後臺管理系統1-前言與目錄持續更新中...

編碼規範 圖標 pri log 任務 ros 部署 基本 form 開發工具:VS2015(2012以上)+SQL2008R2以上數據庫    您可以有償獲取一份最新源碼聯系QQ:729994997 價格 666RMB 升級後界面效果如下: 日程管理 http://

ASP.NET MVC5+EF6+EasyUI 後臺管理系統65-MVC WebApi 用戶驗證 (1)

screen 屬性 access override jquery true mod 解析 action 系列目錄 前言: WebAPI主要開放數據給手機APP,其他需要得知數據的系統,或者軟件應用,所以移動端與系統的數據源往往是相通的。 Web 用戶的身份驗證,及

ASP.NET MVC5+EF6+EasyUI 後臺管理系統4-創建項目解決方案

構建 文章 數據庫 操作 webapi http 業務 pps 技術分享 系列目錄 前言 為了符合後面更新後的重構系統,文章於2016-11-1日重寫 設計中術語,概念這種東西過於模糊,我們必須學習累積才能認識這些概念模型。 我無法用文章來下詳細解析此系統的深層概念,需要

ASP.NET MVC5+EF6+EasyUI 後臺管理系統87-MVC Excel導入和導出

.net本文示例代碼下載: 鏈接:http://pan.baidu.com/s/1jHBdgCA 密碼:hzh7ps:Vs數據庫腳本在解壓目錄下,修改web.config數據庫鏈接,示例代碼包含:導入,導出,上傳前言:導入導出實在多例子,很多成熟的組建都分裝了導入和導出,這一節演示利用LinqToExcel組

ASP.NET MVC5+EF6+EasyUI 後臺管理系統62-EF鏈接串加密

image title orm mst .... 比較 string類 sin isn 前言:   這一節提供一個簡單的功能,這個功能看似簡單,找了一下沒找到EF鏈接數據庫串的加密幫助文檔,只能自己寫了,這樣也更加符合自己的加密要求 有時候我們發布程序為了避免程序外的

基於ASP.NET的新聞管理系統效果展示

後臺 family 技術 .net image 密碼 src 管理系 修改密碼 5. 新聞管理系統開發與實現 5.1前臺新聞頁面 主頁面 新聞欄展示新聞 搜索新聞 菜單欄鏈接新聞 後臺登錄界面 大管理員後臺管理界面 小管理員後臺管理界面 修改密

vue.js+element實現簡單的後臺管理系統

最近公司趕專案,要求做一個後臺管理系統,靜態半天,介面一天,測試一天。 看了一下需求,10個頁面,16+介面,雖說調取資料的比較多,實際寫起來感覺東西還是蠻多的,也在網上查閱了很多資料,感覺都是一些開箱即用的後臺管理系統,一開始我也是想拿來修改一下就好,結果看了好幾個github上面的,感覺並不是很貼合需求

開發實戰:基於深度學習+maven+SSM+EasyUI的高校共享汽車管理系統

基於深度學習+maven+SSM+EasyUI的高校共享汽車管理系統   繼上一篇 [專案需求分析](https://blog.csdn.net/ITBigGod/article/details/82729233)之後,接下來就是資料庫設計了。      作為一個管理系統,各種資訊表是必

許可權管理系統許可權管理系統介紹

為什麼需要許可權管理 1、安全性:誤操作、人為破壞、資料洩露等; 2、資料隔離:不同的許可權能看到及操作不同的資料; 3、明確職責:運營、客服等不同角色,leader和dev等不同級別 許可權管理核心 1、使用者—許可權:人員少,功能固定,或者特別簡單的系統; 2、RBAC(Role-Based