这系列的文章一直没完成,看到有些朋友还是对moss的字段权限控制非常感兴趣的,决定继续写下去。
没看过的朋友可以看一下以前的几篇:
CodeArt WSS3.0(MOSS)字段编辑权限控制解决方案(v1.0)
CodeArt WSS3.0(MOSS)字段编辑权限控制解决方案的实现 -- 概要
MOSS字段编辑权限控制方案的实现(1)-管理页面的开发和配置信息的持久化
上一篇讲了如何实现保存一个列表的字段编辑权限配置信息----通过将数据序列化保存到list中实现。当然这并不是唯一的方式,比如可以保持到数据库中。
(自从事moss开发后,数据库就很少碰了,能用list实现的就用list实现了。)
配置页面开发完了,我们需要将它和moss完美结合起来---在列表的管理页面添加本功能的一个链接:
这个功能自然通过feature实现。
feature的开发不是本系列的重点,园子里有很多文章讲解,采用Feature,几乎可以扩展moss的所有功能,
如管理菜单(网站操作,网站设置,列表设置,列表管理),部署EventHandler(又叫EventReceiver),部署webpart,部署工作流。。。
要详细的了解,查看SDK才是正道。
话归正传,添加“字段权限设置” 管理链接,需要以下两个文件:
feature.xml
feature.xml声明了feature的ID,名称,范围(farm,site collection,web)。
Elements.xml采用一个CustomAction元素添加管理链接,Location属性说明添加菜单到列表设置页面,GroupId属性指定菜单添加到常规设置组。
UrlAction制定链接页面地址,注意~site这个字符,~site取得是当前web的路径。{ListId}在系统呈现链接时会自动替换成当前List的Guid,管理页面
可以通过这个Guid获取当前管理的list:
关于CustomAction可以参考: WSS Feature : CustomAction , 添加站点管理菜单
最新版本就解决了以前发现的bug,并添加了编辑权限控制到组的功能:
http://files.cnblogs.com/jianyi0115/CodeArt_FieldRightSolution.zip
没看过的朋友可以看一下以前的几篇:
CodeArt WSS3.0(MOSS)字段编辑权限控制解决方案(v1.0)
CodeArt WSS3.0(MOSS)字段编辑权限控制解决方案的实现 -- 概要
MOSS字段编辑权限控制方案的实现(1)-管理页面的开发和配置信息的持久化
上一篇讲了如何实现保存一个列表的字段编辑权限配置信息----通过将数据序列化保存到list中实现。当然这并不是唯一的方式,比如可以保持到数据库中。
(自从事moss开发后,数据库就很少碰了,能用list实现的就用list实现了。)
配置页面开发完了,我们需要将它和moss完美结合起来---在列表的管理页面添加本功能的一个链接:
这个功能自然通过feature实现。
feature的开发不是本系列的重点,园子里有很多文章讲解,采用Feature,几乎可以扩展moss的所有功能,
如管理菜单(网站操作,网站设置,列表设置,列表管理),部署EventHandler(又叫EventReceiver),部署webpart,部署工作流。。。
要详细的了解,查看SDK才是正道。
话归正传,添加“字段权限设置” 管理链接,需要以下两个文件:
feature.xml
<
Feature
Id
="E5441FAC-1D99-4ecc-98AA-D76D5BBDCDE9"
Title ="$Resources:codeArt,FieldRight_Feature_Title;"
Description ="$Resources:codeArt,FieldRight_Feature_Des;"
Scope ="Site"
Hidden ="FALSE"
DefaultResourceFile ="codeArt"
xmlns ="http://schemas.microsoft.com/sharepoint/"
>
< ElementManifests >
< ElementManifest Location ="Elements.xml" />
</ ElementManifests >
</ Feature >
Elements.xml
Title ="$Resources:codeArt,FieldRight_Feature_Title;"
Description ="$Resources:codeArt,FieldRight_Feature_Des;"
Scope ="Site"
Hidden ="FALSE"
DefaultResourceFile ="codeArt"
xmlns ="http://schemas.microsoft.com/sharepoint/"
>
< ElementManifests >
< ElementManifest Location ="Elements.xml" />
</ ElementManifests >
</ Feature >
<?
xml version="1.0" encoding="utf-8"
?>
< Elements xmlns ="http://schemas.microsoft.com/sharepoint/" >
< CustomAction
Id ="CodeArt.FieldValueEditControl"
GroupId ="GeneralSettings"
Location ="Microsoft.SharePoint.ListEdit"
Sequence ="106"
Title ="$Resources:codeArt,FieldRightSetting;" >
< UrlAction Url ="~site/_layouts/CodeArt/FieldEditControl.aspx?ListId={ListId}" />
</ CustomAction >
</ Elements >
< Elements xmlns ="http://schemas.microsoft.com/sharepoint/" >
< CustomAction
Id ="CodeArt.FieldValueEditControl"
GroupId ="GeneralSettings"
Location ="Microsoft.SharePoint.ListEdit"
Sequence ="106"
Title ="$Resources:codeArt,FieldRightSetting;" >
< UrlAction Url ="~site/_layouts/CodeArt/FieldEditControl.aspx?ListId={ListId}" />
</ CustomAction >
</ Elements >
feature.xml声明了feature的ID,名称,范围(farm,site collection,web)。
Elements.xml采用一个CustomAction元素添加管理链接,Location属性说明添加菜单到列表设置页面,GroupId属性指定菜单添加到常规设置组。
UrlAction制定链接页面地址,注意~site这个字符,~site取得是当前web的路径。{ListId}在系统呈现链接时会自动替换成当前List的Guid,管理页面
可以通过这个Guid获取当前管理的list:
SPList list
=
SPContext.Current.Web.Lists[
new
Guid(Request.QueryString[
"
ListId
"
])];
关于CustomAction可以参考: WSS Feature : CustomAction , 添加站点管理菜单
最新版本就解决了以前发现的bug,并添加了编辑权限控制到组的功能:
http://files.cnblogs.com/jianyi0115/CodeArt_FieldRightSolution.zip