亚洲av成人无遮挡网站在线观看,少妇性bbb搡bbb爽爽爽,亚洲av日韩精品久久久久久,兔费看少妇性l交大片免费,无码少妇一区二区三区

  免費(fèi)注冊(cè) 查看新帖 |

Chinaunix

  平臺(tái) 論壇 博客 文庫
最近訪問板塊 發(fā)新帖
查看: 2104 | 回復(fù): 0
打印 上一主題 下一主題

Yii技術(shù)之 -- 測(cè)試RBAC [復(fù)制鏈接]

論壇徽章:
0
跳轉(zhuǎn)到指定樓層
1 [收藏(0)] [報(bào)告]
發(fā)表于 2011-12-20 09:48 |只看該作者 |倒序?yàn)g覽
MicrosoftInternetExplorer402DocumentNotSpecified7.8Normal0

一、為了不讓表產(chǎn)生重復(fù)鍵的錯(cuò)誤,可以在fixtrues加入表名,這樣每次測(cè)試都會(huì)清理表中的數(shù)據(jù),從而避免。當(dāng)然,需要建立與表名對(duì)應(yīng)的fixture文件,并且文件返回一個(gè)空的數(shù)組。

二、關(guān)于PHP中的靜態(tài)方法和靜態(tài)屬性

1.static關(guān)鍵字可以用來修飾變量、方法(靜態(tài)方法)

2.不經(jīng)過實(shí)例化,就可以直接訪問類中static的屬性和static的方法。

3.static 的屬性和方法,只能訪問static的屬性和方法,不能訪問非靜態(tài)的屬性和方法。因?yàn)殪o態(tài)屬性和方法被創(chuàng)建時(shí),可能還沒有任何這個(gè)類的實(shí)例可以被調(diào)用。

4.在當(dāng)前類中如果要訪問靜態(tài)成員可以使用self::關(guān)鍵字進(jìn)行訪問。

5.在類中我們不能使用this關(guān)鍵來訪問靜態(tài)屬性,因?yàn)殪o態(tài)屬性在對(duì)象可能還沒有實(shí)例化之前已經(jīng)存在。

6.在類中靜態(tài)方法訪問靜態(tài)屬性,使用類名::靜態(tài)屬性名即可調(diào)用類中的靜態(tài)屬性。 

三、Yii本身提供了三張表,維護(hù)授權(quán)項(xiàng)目(AuthItem)、授權(quán)項(xiàng)目之間的繼承關(guān)系(AuthItemChild)以及授權(quán)項(xiàng)目和用戶之間的關(guān)系(AuthAssignment)。

四、初期建立授權(quán)項(xiàng)目(分為角色role,任務(wù)task和操作operation),繼承關(guān)系,并初始指定了一些授權(quán)。如果在業(yè)務(wù)中要求這些授權(quán),可以再次指定授權(quán),并且如果授權(quán)有業(yè)務(wù)邏輯的話,可以在指定授權(quán)的時(shí)候,將業(yè)務(wù)邏輯放在bizRule中。當(dāng)需要檢查用戶是否擁有某些授權(quán)的時(shí)候,可以通過authMangercheckAccess,并把需要檢查的業(yè)務(wù)邏輯的參數(shù)放在里面。

五、bizRule應(yīng)該是一個(gè)返回true或者false的表達(dá)式,一般是:

'return expression';表達(dá)式的參數(shù)是在檢查用戶是否擁有授權(quán)的時(shí)候傳出去的。

六、例子

(一)建立角色

$auth = Yii::app()->authManager;

$roleOwner = $auth->role('owner');

$roleMember = $auth->role('member');

$auth->createOperation('createIssue');

$auth->createOperation('createProject');

(二)建立角色之間的繼承關(guān)系

$roleOwner->addChild('member');

(三)指定授權(quán)項(xiàng)目到角色

$roleMember->addChild('createIssue');

$roleOwner->addChild('createProject');

(四)建立業(yè)務(wù)邏輯

...

$bizRule = 'return ....;'; //這個(gè)地方千萬注意,return包含在一對(duì)引號(hào)中,結(jié)尾必須是以“;

結(jié)尾,否則問題很嚴(yán)重哦。

$auth->assign('member',  $userId, $bizRule);

$auth->assign('owner', $userId2);

(五)檢查是否擁有授權(quán)

Yii::app()->user->checkAccess('createIssue', $params);//這里的$params是一個(gè)數(shù)組,是傳遞給業(yè)務(wù)邏輯中的變量的。

也可以:

Yii::app()->authManager->checkAccess('createIssue', $userId, $params);

上下兩個(gè)授權(quán)檢查在參數(shù)是不同的,看清楚了。

您需要登錄后才可以回帖 登錄 | 注冊(cè)

本版積分規(guī)則 發(fā)表回復(fù)

  

北京盛拓優(yōu)訊信息技術(shù)有限公司. 版權(quán)所有 京ICP備16024965號(hào)-6 北京市公安局海淀分局網(wǎng)監(jiān)中心備案編號(hào):11010802020122 niuxiaotong@pcpop.com 17352615567
未成年舉報(bào)專區(qū)
中國(guó)互聯(lián)網(wǎng)協(xié)會(huì)會(huì)員  聯(lián)系我們:huangweiwei@itpub.net
感謝所有關(guān)心和支持過ChinaUnix的朋友們 轉(zhuǎn)載本站內(nèi)容請(qǐng)注明原作者名及出處

清除 Cookies - ChinaUnix - Archiver - WAP - TOP