随笔 - 79  文章 - 1 评论 - 764 trackbacks - 105
<2008年8月>
272829303112
3456789
10111213141516
17181920212223
24252627282930
31123456

camlquery 类库下载:
 http://www.codeplex.com/camlquery
SPCAMLEditor 下载:
 http://www.codeplex.com/SPCAMLEditor

与我联系

搜索

 

留言簿(27)

我参与的团队

随笔分类(68)

My Friends

SilverLight

wss

积分与排名

  • 积分 - 87263
  • 排名 - 464

最新随笔

最新评论

阅读排行榜

评论排行榜

Windows SharePint Service 3.0(或MOSS)默认不支持字段级的权限。而在项目的实施过程中,客户经常会提出这个需求。

解决方案有两种:

1)开发自定义的字段,在字段上附加控制逻辑。

优点: 可以完全控制显示和编辑。
缺点:无法对系统的字段启用权限控制,而且,需要重写系统的所有字段,工作量很大 。

2)重写系统的模板中的ListFieldIterator控件(这个控件用来生成表单页面的字段编辑表格),实现字段权限控制。

优点:可以控制所有类型的字段。
缺点:无法完全控制字段的读取--无法控制到列表页面字段的显示。

综合起来,决定采用方案2来实现。既然无法完全控制到字段的读取,这个解决方案只控制字段的编辑。

一直想实现这个解决方案,今天终于打起精神,完成了,并打包成了标准的wsp包,从事wss或moss开发的朋友可以试用一下。


CodeArt WSS字段编辑权限控制解决方案实现对WSS(MOSS)列表,库的字段编辑权限控制,
可以精确控制一个字段可以由哪些用户编辑。提供了友好的设置界面。

使用说明:

1)安装解决方案

修改install.cmd中的 SET SITE_URL="http://localhost:81" , 将81设为实际的网站端口,然后运行install.cmd

2)部署解决方案

install.cmd运行完成后会自动部署到设置的站点,若需要部署到其他站点,请登录 管理中心 > 操作 > 解决方案管理 , 进行部署。

3)测试
转到任意一个列表的“列表设置”界面, 可以看到多出来一个 字段权限设置 的链接,进入设置即可 。

-----------------------------
字段权限设置说明 :

所有人员: 拥有对Item编辑权限的用户可以编辑字段.
创建者: Item的创建者可以编辑字段
指定用户: 指定的用户可以编辑字段。

默认所有人和创建者拥有编辑权限。

网站管理员可以编辑所有字段,所以测试的时候不要用管理员帐号。

界面效果截图:

列表设置:

字段权限设置:


标题只读 ,内容可以编辑:



欢迎试用。 下载解决方案: CodeArt_FieldRightSolution.zip

本系列的所有文章:
CodeArt WSS3.0(MOSS)字段编辑权限控制解决方案(v1.0)
CodeArt WSS3.0(MOSS)字段编辑权限控制解决方案的实现 -- 概要
MOSS字段编辑权限控制方案的实现(1)-管理页面的开发和配置信息的持久化
WSS页面定制系列(2)---定制单个列表的表单页面
WSS页面定制系列(3)---重写表单的保存逻辑
MOSS字段编辑权限控制方案(4)-打包解决方案



posted on 2008-01-20 02:19 jianyi 阅读(1960) 评论(34)  编辑 收藏 所属分类: Sharepoint

FeedBack:
#1楼  2008-01-21 23:31 Xi [未注册用户]
COOL!!
  回复  引用    
#2楼  2008-01-27 02:16 pccai      
沙发啊....
  回复  引用  查看    
#3楼  2008-02-29 13:27 郭洪毅 [未注册用户]
为什么我部署上后,在解决方案中显示己部署,可在网站的列表设置中,却找不到字段权限设置?请指教!
  回复  引用    
#4楼 [楼主] 2008-02-29 15:27 jianyi0115      
@郭洪毅
功能激活了吗?
到 网站集设置 > 网站功能 激活。
  回复  引用  查看    
#5楼  2008-02-29 18:10 郭洪毅 [未注册用户]
真是感谢!确实问题出现在这儿,解决了。
你的博客太好了。顶一个!!
  回复  引用    
#6楼  2008-03-04 11:39 春之歌 [未注册用户]
很棒,方案二比方案一的思路要好。经过测试能够使用,而且自定义列表中的字段均能进行权限设置。提个建议是,测试发现不能对工作组授权,不知能否改进?
  回复  引用    
#7楼 [楼主] 2008-03-04 19:50 jianyi0115      
#8楼  2008-03-05 08:18 春之歌 [未注册用户]
1. 非常谢谢jianyi0115的工作,经过测试确实可以对工作组授权了。

2. 对字段设置权限确实很有意义,比如一个项目的计划发布后,需要任务承担者根据任务的完成情况编辑“任务状态”(未开始、已完成等),但任务承担者对“任务名称”和“计划完成时间”等最好不具备编辑权限,否则就不严谨了。

3. 还想提个过分的建议,能否设置在某一个单元格下自动显示“修改者”的名称和“修改时间”。一般情况下,列表只能记住对一个条目的修改者和修改时间。如果能够实现,就可以利用MOSS列表做很多事务性的工作流审批了。个人认为有很高的应用价值。
  回复  引用    
#9楼 [楼主] 2008-03-05 09:31 jianyi0115      
@春之歌
3 可以实现,但个人认为这个用EventHandler实现更好吧。
  回复  引用  查看    
#10楼  2008-03-24 00:08 lsgonglu [未注册用户]
非常实用的东东,但有个小问题:会产生一个名为“__ListFieldEditControlConfig ”的文档库,能不能将它从左侧的导航条中隐藏(在修改导航条设置没用) ?
  回复  引用    
#11楼 [楼主] 2008-03-24 09:29 jianyi      
@lsgonglu
可以隐藏啊,默认应该就是隐藏的吧~
在文档库设置-〉标题、说明和导航 -〉是否在“快速启动”栏上显示此文档库? -〉选否即可

  回复  引用  查看    
#12楼  2008-03-24 10:57 lsognglu [未注册用户]
@jianyi
试了,我选了“否”,但还是没用。
  回复  引用    
#13楼  2008-03-24 11:38 lsognglu [未注册用户]
安装后是隐藏,但在文档库设置中点了“字段权限设置”后就隐藏不了了。
  回复  引用    
#14楼 [楼主] 2008-03-24 15:14 jianyi      
__ListFieldEditControlConfig文档库创建以后它的显示和隐藏就跟"字段权限控制解决方案"无关了,所以一定不是这个解决方案的问题,你再认真分析下吧~
  回复  引用  查看    
#15楼  2008-03-24 16:47 lsognglu [未注册用户]
问题已解决,在SPD中将其隐藏了。
  回复  引用    
#16楼  2008-03-28 13:38 maydq [未注册用户]
楼主能否继续再开发一下,可以设置某些字段一个人填写了以后,其他人不能再修改了,这样,这个解决方案就更完美了,而且使用面更广。
  回复  引用    
#17楼 [楼主] 2008-03-28 14:05 jianyi      
@maydq
控制起来可能有些困难,那样的话需要记录每个字段的修改信息.要不然,第一个填写的人也不能编辑了.
  回复  引用  查看    
#18楼  2008-05-14 11:42 zhenjjdog [未注册用户]
首先表达对作者的感谢!
1)是否能够增加按 分配对象,创建者,非创建者,非分配对象,所有人员 来进行字段的权限分配!
2)安装后是隐藏,但在文档库设置中点了“字段权限设置”后就隐藏不了了。
这问题SPD能解决,但不完美!
msn:zhenjjdog@tom.com

再次谢谢!
  回复  引用    
#19楼  2008-05-14 11:56 zhenjjdog [未注册用户]
本人奢求源码一份学习学习,希望得到满足,好的例子不愿错过!
zhenjjdog@tom.com
  回复  引用    
#20楼 [楼主] 2008-05-14 20:00 jianyi      
#21楼  2008-06-20 12:02 janine [未注册用户]
为什么我的方案导入进去,也部署成功了,网站集功能也激活了,可是列表设置里面仍然没有字段权限控制呢?请高手指教,谢谢
  回复  引用    
#22楼 [楼主] 2008-06-20 14:34 jianyi      
@janine
比较怪异,没碰到过...确认下12/Features目录下是否存在CodeArt_开头的目录。
  回复  引用  查看    
#23楼  2008-06-20 18:37 lrlyb [未注册用户]
我也部署了,管理中心顯示方案已經部署了,
但我到網站功能那里找不到要激活的那一項啊,請問博主,這是怎么回事
我的系統是繁體的.繁體的能不能裝的呢
  回复  引用    
#24楼 [楼主] 2008-06-20 19:38 jianyi      
@lrlyb
在网站集功能管理中
  回复  引用  查看    
#25楼  2008-06-21 08:53 lrlyb [未注册用户]
謝謝,我找到了,也激活了,但是列表设置里面仍然没有字段权限控制.
我也按你跟janine說的方法,确认了12/Features目录下存在CodeArt_开头的目录. 還望指教
說明:我的操作系統是繁體的,MOSS也是繁體的,這沒有什么關系吧
  回复  引用    
#26楼 [楼主] 2008-06-21 11:26 jianyi      
@lrlyb
繁体系统没有测试过, 不过应该跟语言没关系。
能激活至少在列表设置里可以看到管理链接的CodeArt_FieldEditControl目录中实际上只有一个添加链接的Feature:
<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>

你可以看一下12\logs里面最新的日志文件,看没有相关的错误信息。
  回复  引用  查看    
#27楼  2008-06-21 18:49 lrlyb [未注册用户]
錯誤信息是有,看起來是好像與語方有關
博主,你幫我看看,看能有否辦法改善.可否告知你郵箱,我把完整的LOG發給你,幫我分析分析
3wp.exe (0x2350) 0x2528 Windows SharePoint Services General 8l3c Medium Localized resource for token 'RulesUrl' could not be found for file with path: "C:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\12\Template\Features\Fields\fieldswss.xml".
06/21/2008 15:52:47.79 w3wp.exe (0x2350) 0x2528 Windows SharePoint Services General 72kg High #20015: 無法開啟 "codeArt.zh-TW.resx": 無此檔案或資料夾。
06/21/2008 15:52:47.79 w3wp.exe (0x2350) 0x2528 Windows SharePoint Services General 72kg High (#2: 無法開啟 "codeArt.zh-TW.resx": 無此檔案或資料夾。)
06/21/2008 15:52:47.79 w3wp.exe (0x2350) 0x2528 Windows SharePoint Services General 8e26 Medium Failed to open the language resource keyfile codeArt.
  回复  引用    
#28楼 [楼主] 2008-06-21 21:34 jianyi      
@lrlyb
应该是资源文件的问题,我只考虑了中文和英文的资源文件,你在12\Resources目录里添加一个繁体资源文件即可,用VS打开codeArt.zh-cn.resx,把简体字改成繁体,文件名改成codeArt.zh-TW.resx,然后IISReset)
  回复  引用  查看    
#29楼  2008-06-24 09:06 lrlyb [未注册用户]
搞定了!太感謝博主
  回复  引用    
#30楼  2008-06-24 09:54 lrlyb [未注册用户]
還有個問題 ,再請教.
指定群組不可以用 (指定人員可以用) ,我在AD明明存在的安全性群組,但是就是檢測不到,還請博主再幫忙看看
  回复  引用    
#31楼  2008-06-24 14:08 lrlyb [未注册用户]
博主,經測試后群組應該針對SharePoint群組吧,而不是ad域群組.
還有個問題再請教你一下.當我把方案真正布署到正式環境中會出現如下異常.
正式環境跟我之前測試環境不同的是: 測試環境有裝visual studio .加之,我正式環境安裝了微軟的20個多國英語模板, 我想這應沒有關系的吧.但是log檔中卻出現相關的錯誤信息,還請指教
Localized resource for token 'filterIFrameTitle' could not be found for file with path: "C:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\12\Template\Features\HelpDeskServiceRequestsList\servicerequest\schema.xml".
06/24/2008 13:34:43.49 w3wp.exe (0x2838) 0x2698 Windows SharePoint Services General 72kg High #20001: 無法開啟檔案 "Resources.zh-TW.resx" 來進行讀取。
06/24/2008 13:34:43.49 w3wp.exe (0x2838) 0x2698 Windows SharePoint Services General 72kg High (#3: 無法開啟檔案 "Resources.zh-TW.resx" 來進行讀取。)
06/24/2008 13:34:43.49 w3wp.exe (0x2838) 0x2698 Windows SharePoint Services General 8e26 Medium Failed to open the language resource for Fea75A0FEA7-FE9D-4119-9615-2C2EF22D6FDB keyfile Resources.
06/24/2008 13:34:43.49 w3wp.exe (0x2838) 0x2698 Windows SharePoint Services General 72kg High #20001: 無法開啟檔案 "Resources.resx" 來進行讀取。
06/24/2008 13:34:43.49 w3wp.exe (0x2838) 0x2698 Windows SharePoint Services General 72kg High (#3: 無法開啟檔案 "Resources.resx" 來進行讀取。)
06/24/2008 13:34:43.49 w3wp.exe (0x2838) 0x2698 Windows SharePoint Services General 8e26 Medium Failed to open the language resource for Fea75A0FEA7-FE9D-4119-9615-2C2EF22D6FDB keyfile Resources.
06/24/2008 13:34:43.49 w3wp.exe (0x2838) 0x2698 Windows SharePoint Services General 8l3c Medium Localized resource for token 'groupExpColl' could not be found for file with path: "C:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\12\Template\Features\HelpDeskServiceRequestsList\servicerequest\schema.xml".
06/24/2008 13:34:43.49 w3wp.exe (0x2838) 0x2698 Windows SharePoint Services General 72kg High #20001: 無法開啟檔案 "Resources.zh-TW.resx" 來進行讀取。
06/24/2008 13:34:43.49 w3wp.exe (0x2838) 0x2698 Windows SharePoint Services General 72kg High (#3: 無法開啟檔案 "Resources.zh-TW.resx" 來進行讀取。)
06/24/2008 13:34:43.49 w3wp.exe (0x2838) 0x2698 Windows SharePoint Services General 8e26 Medium Failed to open the language resource for Fea75A0FEA7-FE9D-4119-9615-2C2EF22D6FDB keyfile Resources.
  回复  引用    
#32楼 [楼主] 2008-06-24 15:50 jianyi      
@lrlyb
同样的问题啊,英文模板缺少.zh-TW.resx资源文件.
  回复  引用  查看    
#33楼  2008-08-02 11:27 T [未注册用户]
非常实用的一个工具,但在数据视图时,此种方式无效,是否有方法解决?
  回复  引用    
#34楼 [楼主] 2008-08-02 16:48 jianyi      
@T
因为此方法是采用替换表单页面的RenderingTemplate实现的,而用数据视图时并没有采用RenderingTemplate,所以是无效的 。
  回复  引用  查看    

标题  
姓名  
主页
Email (博主才能看到) 
验证码 *  看不清,换一张 [登录][注册]
内容(请不要发表任何与政治相关的内容)  
  登录  使用高级评论  新用户注册  返回页首  恢复上次提交      
该文被作者在 2008-03-16 00:21 编辑过


相关链接: