亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > PHP > 正文

深入解析yii權限分級式訪問控制的實現(非RBAC法

2020-03-22 20:27:12
字體:
來源:轉載
供稿:網友
yii framework 提供了2套權限訪問系統,一套是簡單的filter(過濾器)模式,另一套是復雜全面的RBAC模式,我這里要講的是第一套(因為我也剛剛學到這里)。如 果你有研究過YII官方的demo blog,一定知道,比如,由gii自動生成的user模塊,自動附帶了簡單的filter權限分配功能,具體細節請參照blog手冊的“用戶驗證”一章 節,以及yii官方指南的“驗證和授權”一章節。(注意,我這里所指的模塊,只是我個人對與user有關的文件的統稱,與yii文件系統的模塊 (module)含義不同。)
關于權限分配的文件大多在controllers里,比如打開UserController.php文件你會看到2個類函數。
復制代碼 代碼如下:
html' target='_blank'>public function filters()
{
return array(
'accessControl', // 實現CRUD操作的訪問控制。
'postOnly + delete',
);
}

public function accessRules() //這里就是訪問規則的設置。
{
return array(
array('allow', // 允許所有用戶執行index,view動作。
'actions'= array('index','view'),
'users'= array('*'), span /span
),
array('allow', // 只允許經過驗證的用戶執行create, update動作。
'actions'= array('create','update'),
'users'= array('@'), // @號指所有注冊的用戶
),
array('allow', // 只允許用戶名是admin的用戶執行admin,delete動作
'actions'= array('admin','delete'),
'users'= array('admin'),
), //admin就是指用戶名是admin的用戶,以硬編碼的形式分配用戶權限。
array('deny', // 拒絕所有的訪問。
'users'= array('*'),
),
);
}

關于更多的訪問規則的設定請參照官方文件http://www.yiiframework.com/doc/api/1.1/CAccessControlFilter
好了,現在要開始按照我們自己的需求設置適合自己的權限分配了。我們希望filter訪問控制模式能更完美一點,按照常識,我們希望它能按照數據庫里user表里不同級別用戶,實行不同的授權,而不是用硬編碼的形式控制。

回到demo blog,我先對數據庫的tbl_user表做修改,在原來的基礎上加上role一項。對原來的用戶信息記錄添加role的value為"管理員"或"一般用戶"。
然后依次執行以下3個步驟:
1. 創建組件WebUser,它是對CWebUser的擴展。
2. 修改config/main.php文件。
3.修改accessRules()。
具體細節如下:
1.WebUser.php 組件代碼:
復制代碼 代碼如下:
strong ?php

// this file must be stored in:
// protected/components/WebUser.php

class WebUser extends CWebUser {

// Store model to not repeat query.
private $_model;

// Return first name.
// access it by Yii::app()- user- first_name
function getFirst_Name(){
$user = $this- loadUser(Yii::app()- user-
return $user- first_name;
}

// This is a function that checks the field 'role'
// in the User model to be equal to 1, that means it's admin
// access it by Yii::app()- user- isAdmin()
function isAdmin(){
$user = $this- loadUser(Yii::app()- user-
if ($user==null)
return 0;
else
return $user- role == "管理員";
}

// Load user model.
protected function loadUser($id=null)
{
if($this- _model===null)
{
if($id!==null)
$this- _model=User::model()- findByPk($id);
}
return $this- _model;
}
}
? /strong

2.在config/main.php找到如下代碼,添加標紅色的代碼。
復制代碼 代碼如下:
'components'= array(
'user'= array(
// enable cookie-based authentication
'allowAutoLogin'= true,
'class'= 'WebUser',
),

3.找到需要更改權限的controller類,對accessRules()函數做修改,比如對前文的accessRules()函數做如下修改:
復制代碼 代碼如下:
public function accessRules() //這里就是訪問規則的設置。 {
return array(
array('allow', // 允許所有用戶執行index,view動作。
'actions'= array('index','view'),
'users'= array('*'), //*號標識所有用戶包括注冊的、沒注冊的、一般的、管理員級的
),
array('allow', // 只允許經過驗證的用戶執行create, update動作。
'actions'= array('create','update'),
'users'= array('@'), // @號指所有注冊的用戶
),
array('allow', // 只允許用戶名是admin的用戶執行admin,delete動作
'actions'= array('admin','delete'),
'expression'= 'yii::app()- user- isAdmin()',
//這樣只有標識為“管理員”的用戶才能訪問admin,delete動作
),
array('deny', // 拒絕所有的訪問。
'users'= array('*'),
),
);

工作完成!
PHP教程

鄭重聲明:本文版權歸原作者所有,轉載文章僅為傳播更多信息之目的,如作者信息標記有誤,請第一時間聯系我們修改或刪除,多謝。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
欧美电影《睫毛膏》| 综合av色偷偷网| 久久久www成人免费精品张筱雨| 中文字幕日韩欧美精品在线观看| 亚洲国产97在线精品一区| 欧美色视频日本高清在线观看| 91精品国产色综合| 国产成人亚洲综合| 97国产精品视频人人做人人爱| 亚洲国产精品久久久久| 国产成人在线亚洲欧美| 欧美日韩精品二区| 日韩精品在线视频美女| 国产精品第1页| 国产一区二区三区在线免费观看| 伊人久久久久久久久久久| www.日韩欧美| 国产精品无av码在线观看| 欧美激情亚洲综合一区| 国产精品一区二区女厕厕| 欧洲亚洲妇女av| 亚洲国模精品私拍| 亚洲第一天堂av| 国产精品欧美日韩| 亚洲精品不卡在线| 日韩免费在线观看视频| 日韩欧美在线视频日韩欧美在线视频| 亚洲国产精品女人久久久| 久久久欧美一区二区| 久久久久久久久国产| 久久天天躁狠狠躁夜夜躁2014| 精品少妇v888av| 久久精品中文字幕| 久久手机精品视频| 亚洲二区中文字幕| 成人黄色午夜影院| 在线中文字幕日韩| 精品成人久久av| 国产精品爽爽爽爽爽爽在线观看| 亚洲色图狂野欧美| 亚洲尤物视频网| 一区二区中文字幕| 国产高清在线不卡| 欧美人与性动交a欧美精品| 韩国国内大量揄拍精品视频| 午夜美女久久久久爽久久| 国内精品久久久久久久| 亚洲色图欧美制服丝袜另类第一页| 久久精品亚洲一区| 欧美俄罗斯性视频| 国产成人激情小视频| 欧美成人亚洲成人日韩成人| 久久亚洲精品成人| 亚洲午夜精品久久久久久性色| 亚洲欧洲日产国码av系列天堂| 欧美精品在线极品| 午夜精品福利电影| 欧美大学生性色视频| 久久久久久久影院| 夜夜嗨av色综合久久久综合网| 欧美激情在线一区| 尤物精品国产第一福利三区| 亚洲国产成人爱av在线播放| 欧美日韩综合视频网址| 日韩在线播放一区| 色小说视频一区| 国产精品福利在线观看网址| 97**国产露脸精品国产| 日韩在线观看免费全| 91精品在线观看视频| 一本色道久久88精品综合| 国产精品久久久久久av| 亚洲国产天堂网精品网站| 欧美三级欧美成人高清www| 91久久久久久| 综合av色偷偷网| 亚洲三级 欧美三级| 欧美高清激情视频| 日韩中文字幕在线观看| 国产精品吹潮在线观看| 国产香蕉精品视频一区二区三区| 国产精品九九久久久久久久| 一区二区中文字幕| 日韩欧亚中文在线| 中文字幕久久亚洲| 欧美日韩国产成人在线观看| 最近2019中文字幕mv免费看| 精品性高朝久久久久久久| 久久成人精品一区二区三区| 亚洲人成在线免费观看| 久久免费国产视频| 美女撒尿一区二区三区| 日韩在线播放av| 亚洲国产成人精品一区二区| www.欧美精品一二三区| 亚洲加勒比久久88色综合| 欧美成人合集magnet| 亚洲毛片在线观看.| 欧美午夜影院在线视频| 欧美在线一区二区视频| 欧美激情亚洲自拍| 日本一区二区在线播放| 国产亚洲人成a一在线v站| 日韩av三级在线观看| 欧美一级大片视频| 日韩av在线影视| 色伦专区97中文字幕| 欧美日韩激情小视频| 97国产一区二区精品久久呦| 乱亲女秽乱长久久久| 欧美成人免费一级人片100| 亚洲精品视频中文字幕| 在线视频中文亚洲| 国产成+人+综合+亚洲欧洲| 亚洲最新在线视频| 97久久国产精品| 国产精品自拍偷拍视频| 亚洲综合色av| 国产日产欧美a一级在线| 国产精品美女久久久久av超清| 国产日韩亚洲欧美| 日韩欧美精品中文字幕| 午夜精品久久久99热福利| 久久精品美女视频网站| 久久躁日日躁aaaaxxxx| 亚洲精品综合精品自拍| 正在播放欧美视频| 欧美xxxwww| 欧美一级电影在线| 国产69久久精品成人看| 97久久久免费福利网址| 久久精品一本久久99精品| 日韩精品视频观看| 久久亚洲精品网站| 最新国产精品亚洲| 91色精品视频在线| 中文字幕av一区二区| 欧美成人黑人xx视频免费观看| 亚洲国产成人久久综合一区| 国产成人自拍视频在线观看| 九九综合九九综合| 中文字幕国产精品| 国产欧美日韩综合精品| 国产视频一区在线| 国产免费一区二区三区香蕉精| 成人性教育视频在线观看| 亚洲女人天堂成人av在线| xxx成人少妇69| 亚洲自拍偷拍福利| 久久久久免费精品国产| 亚洲综合精品一区二区| 亚州欧美日韩中文视频| 福利一区福利二区微拍刺激| 日本成人精品在线| 日韩中文字幕在线视频| 国产成人精品a视频一区www| 精品免费在线视频| 国产不卡视频在线| 欧洲中文字幕国产精品| 琪琪第一精品导航| 97视频在线看| 国产精品麻豆va在线播放| 久久久久一本一区二区青青蜜月| 久久综合网hezyo|