1

問題は、ドキュメントのチェックアウトをキャンセルし、部署 (セキュリティが異なる) を変更した場合、ドキュメントのアクセス許可が更新されず、以前の公開バージョンのアクセス許可に戻されないことです。何が起きているかというと、チェックアウトをキャンセルするとイベント ハンドラーが起動せず、(まだ) これを行ったときにイベント ハンドラーを起動する方法がわかりません。イベント ハンドラーは、ドキュメント v1.1 (現在はドラフト モード) のセキュリティのみを変更する必要があるときに部門を変更するとすぐに、発行されたバージョン、つまりドキュメント v1.0 のセキュリティを変更しています。セキュリティは正しいですが、EH2 は両方のバージョンでセキュリティを変更しています

編集

私たちは 2010 を使用しています。セキュリティとチェックイン/チェックアウトが 2 つの別個の機能であることは認識していますが、ドキュメントを編集すると強制的にチェックアウトされる (バージョン管理がオンになっている) という問題があります。その編集が発生すると、ドキュメントのメタデータ列に基づいてドキュメントのアクセス許可を起動して変更するイベント ハンドラーがあります。

プロセス全体は次のとおりです。 新しいドキュメントをアップロードします メタデータを割り当てます (1 つの列は、ドキュメントに割り当てる権限を示します) ドキュメントの権限は、プログラムによって一意に設定されます - ドキュメントは、上記の列の選択に基づいて一意の権限を持ちます 次に、ユーザーメタデータ列を変更することで、ドキュメントの権限を変更できます。バージョン管理/チェックイン/チェックアウトがオンになっていない場合、これはチェックイン/チェックアウトとバージョン管理がオンになっていると正常に機能します。公開されたバージョンとドラフト バージョンを含む、ドキュメントのアクセス許可のすべてのバージョンが変更されます。その後、チェックアウトをキャンセルすると、ドキュメントのメタデータは正しいバージョンに戻りますが、アクセス許可の変更に使用された itemupdate イベントを発生させるものがないため、アクセス許可は元に戻されません。

これが発生したときに、現在公開されているバージョンに基づいてアクセス許可を再適用する方法、または SharePoint がそれらを個別のドキュメントと見なすため、各バージョンに固有のアクセス許可を保持する方法を探しています。

したがって、たとえば、ドラフトが承認されるまで、ドキュメントには、ある権限セットを持つドラフト バージョンと、別の権限セットを持つ公開バージョンが含まれる可能性があります。

4

1 に答える 1

0

SharePoint がサポートするセキュリティの最低レベルはリストアイテム レベルです。リストアイテム (またはドキュメント) のセキュリティを変更すると、そのアイテムのすべてのバージョンに常に適用されます。チェックアウトをキャンセルしても、それがまだ同じリスト項目であるという事実は変わりません。チェックアウトをキャンセルしても、イベント ハンドラーで実行したすべてのコードがロールバックされるわけではありません。

于 2011-04-30T21:25:00.010 に答える