資源描述:
《press權(quán)限管理剖析-角色和職能》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在工程資料-天天文庫(kù)。
1、wordpress權(quán)限管理剖析?角色和職能該日志由天空從何開(kāi)始于2012年02月28日發(fā)農(nóng)在wordpress分類下,你iJ以發(fā)農(nóng)評(píng)論,并在保留原文地址及作者的情況下引用到你的網(wǎng)站或博客。I+復(fù)制鏈接轉(zhuǎn)載請(qǐng)注明:wordpress權(quán)限管理剖析-角色和職能關(guān)鍵字:wordpress,wordpress權(quán)限管T里自從wordpress2.0引入角色和職能(RolesandCapabilities),就廢棄了用戶級(jí)別(UserLevelapproach)。主要內(nèi)容1.什么是角色和職能(RoleandC
2、apabilities)2?職能和后臺(tái)管理菜單3.檢査一個(gè)用戶的職能4.添加自定義用戶角色5.添加自定義用戶職能6.wordpress職能類(CapabilityClasses)1?什么是角色和職能(RoleandCapabilities)?跟其他的CMS,web應(yīng)用一樣,wordpress套內(nèi)建的權(quán)限驗(yàn)證系統(tǒng),驗(yàn)證一個(gè)特定的用戶是否有足夠的權(quán)限去執(zhí)行相應(yīng)的行為(action)?用戶(Users)被區(qū)分為不同的角色(Role),每種角色被分配相應(yīng)的職能(Capabilities或Pennissi
3、ons)。wordpress使用角色的概念來(lái)讓博客的所有者對(duì)用戶進(jìn)行權(quán)限控制。博客所冇者可以控制用戶寫(xiě)文章、創(chuàng)建頁(yè)血、管理插件、管理主題,以及管理其他用戶的權(quán)限。博客所有者可以通過(guò)該工具分配用戶權(quán)限。卜面是wordpress默認(rèn)的角色:Administrator-系統(tǒng)管理員Editor-編輯,可以發(fā)布和編輯自己及他人發(fā)布的文章Author-作者,可以發(fā)布和管理他們自己的文章Contributor-投稿者,他們町以投稿,和管理他們的文章,但是不能發(fā)布。Subscriber-訂閱者,可以閱讀評(píng)論和接
4、收newsletter這種角色和職能模式的權(quán)限控制系統(tǒng)比使用用戶級(jí)別來(lái)控制權(quán)限更加的有彈性,易于擴(kuò)展。你甚至可以添加更多的角色,而不需要修改默認(rèn)的設(shè)置。wordgss插件API允許你添加,移除,改變系統(tǒng)的角色和職能。也就是說(shuō),我們可以添加角色,添加職能,重新分配職能給角色。2.職能和后臺(tái)管理菜單幾乎每一個(gè)插件都需要在管理界面添加至少一個(gè)用戶配置插件的頁(yè)面。因而,你需要添加口定義的管理菜單。wordpress里有一系列的方法可以幫你完成這個(gè)功能:1//addtoplevelmenu2add_men
5、u_page(page_title,menu_title,capability,handle,[function],3[icon_url]);//addsub-menupages4add_submenu_page(parent,page_titie,menu_title,capability,file/handle,5[function]);6//addOptionssub-menu7add_options_page(page_title,menu_titlezcapability,handle
6、,[function]);//addManagementsub-menu8add_management_page(page_title,menu_title,capability,handle,9[function]);10//addPagessub-menu
7、
8、add_pages_page(page_titie,menu_title,capsbi丄ity,handle,[function]);addPostssub-menu^add-posts_page(page_titie,menu_tit
9、le,capability,handle,[function]);13//addAppearancessub-menu14add_theme_pmge(page_titie,menu_title,capabi丄ity,handle,[function]);你可能已經(jīng)發(fā)現(xiàn),上面這些函數(shù)都有一個(gè)必須的參數(shù)capabilityo這意味著登錄到后臺(tái)的用戶需要有相應(yīng)的職能才能夠看到這里添加的菜單選項(xiàng)。如果你的主題或者插件有一個(gè)選項(xiàng)頁(yè),合理的控制對(duì)該頁(yè)的訪問(wèn)時(shí)非常重耍的。例如,如杲有一個(gè)主題選項(xiàng)頁(yè),你需要使
10、用edit_themes這個(gè)職能(capability),如果是一個(gè)插件選項(xiàng)頁(yè),就需要使用edit_plugins職能。另一種方法是為插恥和主題選項(xiàng)也使用manage_options這個(gè)職能.3.檢查一個(gè)用戶的職能檢査當(dāng)前用戶是否冇足夠的職能去執(zhí)行某些行為(action),可以用current_user_can()函數(shù)。1if(current_user_can($capability)){2//dosomethingifthecurrentuserhas$capability3}這個(gè)函數(shù)還接收一