资源描述:
《press权限管理剖析-角色和职能》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、wordpress权限管理剖析•角色和职能该日志由天空从何开始于2012年02月28日发农在wordpress分类下,你iJ以发农评论,并在保留原文地址及作者的情况下引用到你的网站或博客。I+复制链接转载请注明:wordpress权限管理剖析-角色和职能关键字:wordpress,wordpress权限管T里自从wordpress2.0引入角色和职能(RolesandCapabilities),就废弃了用户级别(UserLevelapproach)。主要内容1.什么是角色和职能(RoleandC
2、apabilities)2•职能和后台管理菜单3.检査一个用户的职能4.添加自定义用户角色5.添加自定义用户职能6.wordpress职能类(CapabilityClasses)1•什么是角色和职能(RoleandCapabilities)?跟其他的CMS,web应用一样,wordpress套内建的权限验证系统,验证一个特定的用户是否有足够的权限去执行相应的行为(action)•用户(Users)被区分为不同的角色(Role),每种角色被分配相应的职能(Capabilities或Pennissi
3、ons)。wordpress使用角色的概念來让博客的所有者对用户进行权限控制。博客所冇者可以控制用户写文章、创建页血、管理插件、管理主题,以及管理其他用户的权限。博客所有者可以通过该工具分配用户权限。卜面是wordpress默认的角色:Administrator-系统管理员Editor-编辑,可以发布和编辑自己及他人发布的文章Author-作者,可以发布和管理他们自己的文章Contributor-投稿者,他们町以投稿,和管理他们的文章,但是不能发布。Subscriber-订阅者,可以阅读评论和接
4、收newsletter这种角色和职能模式的权限控制系统比使用用户级别来控制权限更加的有弹性,易于扩展。你甚至可以添加更多的角色,而不需要修改默认的设置。wordgss插件API允许你添加,移除,改变系统的角色和职能。也就是说,我们可以添加角色,添加职能,重新分配职能给角色。2.职能和后台管理菜单几乎每一个插件都需要在管理界面添加至少一个用户配置插件的页面。因而,你需要添加口定义的管理菜单。wordpress里有一系列的方法可以帮你完成这个功能: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]);你可能已经发现,上面这些函数都有一个必须的参数capabilityo这意味着登录到后台的用户需要有相应的职能才能够看到这里添加的菜单选项。如果你的主题或者插件有一个选项页,合理的控制对该页的访问时非常重耍的。例如,如杲有一个主题选项页,你需要使
10、用edit_themes这个职能(capability),如果是一个插件选项页,就需要使用edit_plugins职能。另一种方法是为插恥和主题选项也使用manage_options这个职能.3.检查一个用户的职能检査当前用户是否冇足够的职能去执行某些行为(action),可以用current_user_can()函数。1if(current_user_can($capability)){2//dosomethingifthecurrentuserhas$capability3}这个函数还接收一