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 開発者リファレンス ガイド (pg 244)
IManProfiledFolder オブジェクトを取得してから、プロファイルされたフォルダー オブジェクトに属するプロファイルを取得する必要があると述べています。
コード:
Dim objProfFldr as IManProfiledFolder = w
w 上記のコードでは IManWorkSpace であり、次の方法で
Dim objProf as IManProfile = objProfFldr.Profile
WorkSpace セキュリティ オブジェクトを取得できます。
Dim oSecurity AS IManSecurity = w.SecurityAnd
これをまとめると、これにより完全なRefile()
メソッドが as として呼び出されると思いRefile(objProf, oSecurity)
ます。
これをすべて WorkSpace に適用する方法が明確ではありません。すべてのサブフォルダーを反復処理して Refile() メソッドを各ドキュメントに適用する必要がありますか、それとも WorkSpace レベルでメソッドを発行できますか?私のための反復?