列出事件处理程序版本/批准/签入/签出

时间:2011-04-29 19:44:01

标签: sharepoint event-handling checkin

我们看到的问题是,如果您取消文档签出并且您更改了部门(具有不同的安全性),则文档权限不会更新/更改回先前发布的版本权限。发生的事情是,如果您取消签出,事件处理程序不会触发,我们认为当您执行此操作时无法触发它。事件处理程序在我们更改部门时更改已发布的版本即文档v1.0安全性,只应更改文档v1.1(现在处于草稿模式)的安全性,然后当我们取消签出时安全性是正确的,但EH2正在改变两个版本的安全性

修改

我们正在使用2010.我意识到安全性和签入/签出是两个独立的功能,但我们遇到的问题是当我们编辑文档时它强制签出(打开版本控制)。当编辑发生时,我们有一个事件处理程序,它根据文档的元数据列触发并更改文档权限。

以下是整个过程:上传新文档分配元数据(一列表示分配文档的权限)现在以编程方式将文档权限设置为唯一 - 现在文档具有基于上述列选项的唯一权限然后,用户可以通过更改元数据列来更改文档权限。如果没有打开版本/签入/签出,这可以正常工作,签入/签出和版本控制;所有版本的文档权限都会更改,包括已发布的版本和草稿版本。然后,如果他们取消结帐,则文档元数据会返回到正确的版本,但权限不会被更改回来,因为没有任何内容可以触发用于更改权限的itemupdate事件。

我们正在寻找一种方法,让它在发生这种情况时根据当前发布的版本重新应用权限,或者保持每个版本的权限都是唯一的,因为SharePoint将它们视为单独的文档。

因此,例如,文档可以包含具有一组权限的草稿版本和具有另一组权限的已发布版本,直到草稿获得批准。

1 个答案:

答案 0 :(得分:0)

SharePoint支持的最低安全级别是listitem级别。如果修改了列表项(或文档)的安全性,则它始终应用于该项的所有版本。取消结帐并没有真正改变它仍然是相同的列表项目的事实。取消签出也不会回滚您在事件处理程序中执行的所有代码。