记得2014年春节期间,有博客园的网友通过QQ向我咨询Sharepoint 2013列表视图和字段权限扩展,因为之前他看到我博客介绍Sharepoint 2010列表视图和字段的权限控制扩展使用,问有没有这方面的列表权限扩展插件?我告诉他Sharepoint 2010的列表权限扩展插件并不能在Sharepoint 2013中使用,不能向上兼容的,且Sharepoint 2013的功能也有所升级了,系统底层架构已发生了一些变化。由于他需要在Sharepoint 2013项目中使用到此功能,有大量的列表视图和字段需要根据权限去控制,因此委托我进行开发此扩展插件,并通过淘宝交易!呵呵,我从没想过通过博客还可以进行商业化的小项目,其实还有很多好东西可以分享,但是觉得写博客实在太费时间了,所以懒得写,实际上写博客一方面可以进行分享,另一方面对自己也可以起到一个备忘的功能,因为之前解决了很多技术难题,没有记录下来,时间长了,也就忘记了,等要用了还得重新来一遍,可能更费时间了。言归正传,一开始研究了原来开源的Sharepoint 2010列表视图和字段权限扩展插件,发现无法升级到Sharepoint 2013,所以放弃了,重新进行开发设计,并于14年3月初完成开发并递交了Sharepoint 2013列表视图和字段的权限扩展插件交付物,并通过了网友的验收,虽然将近一年前本人开发的商业插件,现在供有需要的免费提供下载使用。最近发现也有网友通过研究Sharepoint 2010列表视图和字段权限扩展插件把此插件升级到Sharepoint 2013的版本,但通过测试发现了一些问题,主要问题如下:无法在列表多行状态下控制字段的只读和隐藏,无法隐藏没有权限的视图。
具体测试如下:
而本人开发Sharepoint 2013列表视图和字段权限扩展插件,彻底解决了多行编辑的字段只读和隐藏功能,但对于没有权限视图的隐藏只做到了部分,解决了在多行的列表头上的视图上,但菜单视图选项还没彻底解决,不过不影响使用。
一、部署RJRSFieldViewPermission.wsp插件
把RJRSFieldViewPermission.wsp包放到SharePoint管理中心的服务器上,如在C盘根目录下。
在SharePoint的管理中心中打开SharePoint 2013 Management Shell(以管理员身份运行),输入
Add-SPSolution C:\RJRSFieldViewPermission.wsp按回车,具体如下图:
成功后,打开SharePoint管理中心-》系统设置-》管理场解决方案,具体如下图:
部署RJRSFieldViewPermission.wsp即可,如下图:
进入SharePoint的前端服务器的网站,在网站集中激活下图一个扩展即可,如下图:
完成后,就会在网站的列表设置中多出两个设置:字段权限、视图权限,如下图:
二、部署SharePoint.WCFService.SPCustomFieldPermission插件
把SharePoint.WCFService.SPCustomFieldPermission.wsp包放到SharePoint管理中心的服务器上,如在E盘根目录下。
在SharePoint的管理中心中打开SharePoint 2013 Management Shell(以管理员身份运行),输入
Add-SPSolution E:\SharePoint.WCFService.SPCustomFieldPermission.wsp按回车,具体如下图:
成功后,打开SharePoint管理中心-》系统设置-》管理场解决方案,具体如下图:
部署SharePoint.WCFService.SPCustomFieldPermission.wsp即可,如下图:
三、人工设置多行编辑状态下列表字段权限和视图权限
注意在设置之前必须部署好RJRSFieldViewPermission.wsp和SharePoint.WCFService.SPCustomFieldPermission插件,否则不会多行编辑列表字段权限和隐藏没权限的视图不会起作用。
(1)、以管理员登录在Sharepoint网站的母版页中上传jquery-1.11.0.min.js和SPCustomFieldPermission.js及SPCustomViewPermission.js,具体如下:
以上传SPCustomFieldPermission.js为例,进入SharePoint的前端服务器的网站,在网站设置—》Web 设计器库—》母版页,如下图:
进入母版页后,点击“上传文档”,如下图:
按“确定”后,按默认参数设置即可,如下图:
jquery-1.11.0.min.js和SPCustomViewPermission.js上传也是如此,不再赘述。
也可以通过Sharepoint Desinger工具进行操作,如下图:
(2)、完成以上步骤后,在相应列表的所有相关视图中设置JS链接即可。
以test列表的默认视图“所有项目”为列,其他视图的设置相同,具体如下:
点击“编辑网页”,如下图:
打开后,选择WEB部件àWeb部件属性并点击,如下图:
在test部件属性中杂项的JS链接输入以下~site/_catalogs/masterpage/jquery-1.11.0.min.js|~site/_catalogs/masterpage /SPCustomViewPermission.js|~site/_catalogs/masterpage/SPCustomFieldPermission.js ,完成后停止编辑即可,如下图:
注意如果有一个列表有多个视图,每个视图都需要进行以上步骤的相同设置。
完成后,如以tongzr身份登录,多行编辑状态下,bak字段只读,订单号字段是隐藏的,效果如下:
test字段权限设置如下:
隐藏没权限的视图效果如下:
Test视图权限设置如下:
三、Sharepoint 2013 列表字段权限查询和设置工具。
使用该工具前必须在客户端电脑上安装.net framework 4.0以上,该工具不需要登录到sharepoint服务器中运行,只要在PC客户端就可以运行,是以远程方式进行访问sharepoint。在功能方面,提供了列表视图权限和列表字段权限查询功能及批量设置列表视图和字段权限的JS链接功能。此工具不免费提供,如有需要可以与本人联系。
安装完成后,打开,输入相应访问sharepoint的站点和身份认证信息,如下图:
列表视图权限操作说明如下:
1.点击“查询”获取列表视图权限数据,如下图:
2.导出到Excel中,如下图:
3.点击“清空所有列表视图权限”将清空所有列表视图权限,如下图:
列表字段权限操作与列表视图权限操作相同,不再赘述:
批量部署列表视图和字段权限JS链接
注意在设置之前必须部署好RJRSFieldViewPermission.wsp和SharePoint.WCFService.SPCustomFieldPermission插件,否则不会多行编辑列表字段权限和隐藏没权限的视图不会起作用。
此模块是为了解决在视图权限方面,隐藏没有权限视图,同时在字段权限方面,在字段多行编辑状态下,字段只读和隐藏功能,通过此工具可以批量设置,特别是一个列表有多个视图的情况下,大大提高了部署效率。
1.点击“查询”获取列表数据,如下图:
2.点击“部署”批量部署所选列表视图和字段权限的JS链接,如下图:
2.点击“重置”批量重置所选列表视图和字段权限默认的JS链接,如下图:
同时欢迎关注本人的微信订阅号QYXXHQY,不定期更新企业信息化前沿相关技术和应用,欢迎扫描关注,二维码如下:
本博客为软件人生原创,欢迎转载,转载请标明出处:http://www.cnblogs.com/nbpowerboy/p/4251870.html。演绎或用于商业目的,但是必须保留本文的署名软件人生(包含链接)。如您有任何疑问或者授权方面的协商,请给我留言。 |