Confluence 2.4 のページ権限 API 変更点

このページの内容

お困りですか?

アトラシアン コミュニティをご利用ください。

コミュニティに質問

Confluence 2.4 contains changes to the Confluence API that will affect any plugins that modify Page Permissions (aka ContentPermissions). Some methods have been deprecated, some new methods have been created, and one method now behaves differently from before.

Confluence 2.4 does not support having multiple view and edit permissions on a page. The Content Permission API allows such a state, but it should be avoided. For example, if a Page has multiple permissions set on it, these permissions will not be displayed properly via the user interface, and the pages may not be returned appropriately in a search.



変更の概要

Deprecated methods

ContentPermissionManager.getInheritedViewContentPermissions(Page)
ContentPermissionManager.getInheritedContentPermissions(ContentEntityObject contentEntityObject)

ContentEntityObject.getPermissions()
ContentEntityObject.getContentPermission(String permissionType)

変更されたメソッド

ContentPermissionManager.addContentPermission(ContentPermission permission, ContentEntityObject content)

Added methods

ContentPermissionManager.setContentPermissions(List contentPermissions, ContentEntityObject content, String type)
ContentPermissionManager.getInheritedContentPermissionSets(ContentEntityObject contentEntityObject)

ContentEntityObject.getContentPermissionSet(String type)

ContentEntityObject.hasPermissions(String type)
ContentEntityObject.removeContentPermissionSet(ContentPermissionSet set)

削除されたメソッド

ContentPermissionManager.saveContentPermission(ContentPermission permission)
ContentPermissionManager.getContentUserPermission(ContentEntityObject contentEntityObject)
ContentPermissionManager.onContentContextChanged(ContentEntityObject contentEntityObject)

ContentEntityObject.setPermissions(List permissions)
ContentEntityObject.clearPermissions(ContentPermissionManager permissionManager)

The change most likely to cause problems is:

ContentPermissionManager.addContentPermission(ContentPermission permission, ContentEntityObject content)

This method now adds a ContentPermission to the ContentEntityObject as one would expect. Previously if a ContentPermission already existed on the ContentEntityObject, then any existing ContentPermission would be removed. That is, the method really behaved as one would expect "setContentPermission" to behave. As a result, any code that used addContentPermission in Confluence 2.3 or earlier, should now use setContentPermissions with a single entry list.

Example conversion of old addContentPermission usage

replace
ContentPermissionManager.addContentPermission(p, c)
with
ContentPermissionManager.setContentPermissions(java.util.Collections.singletonList(p), c, p.getType())

ContentPermission を返すために使用されていたほとんどのメソッドが ContentPermissionSet を返すメソッドに置き換えられました。場所によっては、新しいメソッドをポイントするように非推奨を使用したり、 ContentPermissionSet から最初の ContentPermission を抽出するために古いメソッドを再実装しました。

通常どおり、ContentEntityObject メソッドではなく、ContentPermissionManager メソッドを使用してください。ContentEntityObject メソッドで使用してもよいメソッドは、getContentPermissionSet のみです。ただし、このメソッドは既存の権限を表示するためにのみ使用してください。ContentPermissionSets へのすべての書き込みは、ContentPermissionManager 経由で実行してください。

以前、ContentPermissionManager の onContentContextChanged メソッドは、ContentEntityObject で権限をキャッシュした ContentPermissionManager が無効の可能性があることを通知するために使用されていました。これは、ContentPermissionEvent を発行して実行するようにしました。このイベントは、ContentPermissionManager 経由で ContentPermissions を変更する場合、自動的に発行されます。

No changes have been made yet to the the XML RPC API. It does not currently allow modification of ContentPermissions.

最終更新日 2007 年 5 月 24 日

この内容はお役に立ちましたか?

はい
いいえ
この記事についてのフィードバックを送信する
Powered by Confluence and Scroll Viewport.