使用用于 Web 服务的 SDK,我能够将用户添加到 WorkSpace 并授予他们访问权限,但是 WorkSpace 没有重新归档,因此他们实际上只能访问根文件夹,而没有其他权限。
我知道有Refile()
方法,我只是不确定如何在 WorkSpace 中执行文件夹和文档的重新归档。
目前我有一个授予用户访问 WorkSpace 的功能,我已经测试并且该功能有效,以下是该功能的一部分,在此代码之前我已经启动了 WorkSpace 搜索方法,下面的代码正在遍历搜索结果。
Dim retString As String = ""
For Each w As IManWorkspace In oDB.SearchWorkspaces(oparams, oWparams)
' Get the WorkSpace security container
Dim oSec As IManSecurity = w.Security
Dim oUACLs As IManUserACLs = oSec.UserACLs
' Grant the user the defined access
oUACLs.Add(sUserID, imAccessRight.imRightReadWrite)
' Apply the changes
w.Update()
' Refresh the Collection on the client
oUACLs.Refresh()
' TO DO: REFILE THE SUB-FOLDERS AND DOCUMENTS
retString = oUACLs.Contains(sUserID).ToString()
Next
返回 retString(目前我已经硬编码了用户对 WorkSpace 的定义访问权限,这将在上线之前更改为动态值)。
因为我已经有了 WorkSpace 对象,所以
COM 开发人员参考指南(第 244 页)
说我需要获取一个 IManProfiledFolder 对象,然后获取属于已分析文件夹对象的配置文件:
代码:
Dim objProfFldr as IManProfiledFolder = w
w 在上面的代码中是 IManWorkSpace,
Dim objProf as IManProfile = objProfFldr.Profile
然后我可以通过以下方式获取 WorkSpace 安全对象:
Dim oSecurity AS IManSecurity = w.SecurityAnd
把这些放在一起,我想这使得完整的Refile()
方法被称为Refile(objProf, oSecurity)
.
我只是不清楚如何将这一切应用到 WorkSpace,我是否需要遍历所有子文件夹并将 Refile() 方法应用于每个文档,或者我是否可以在 WorkSpace 级别发出一个方法来执行为我迭代?