views.py で定義される各View処理には、その処理の実行における前提をPythonのデコレータの形で記述することができます。
ここでは、よく使われているデコレータや、カスタムデコレータについて説明します。
ユーザがログインしている状態である場合にのみ呼び出し可能であることを宣言します。
引数( **kwargs )には、以下のパラメータが追加されます。
auth: 認証しているユーザに関する情報
対象のnodeがプロジェクトとして認められるものであることを宣言します。
プロジェクトとして認められないnodeとは、QuickFileNodeや撤回されたRegistrationなどがありますが、現在、RDMでは使用されていません。
引数( **kwargs )には、以下のパラメータが追加されます。
node: 対象のプロジェクトに関する情報
アドオンに関する情報を必要とすることを宣言します。第1引数( addon_name )にはアドオン名を、第2引数( model )には 'user' か 'node' のいずれかを指定します。 'node' を指定した場合は、パスは /project/<pid>/ から始める必要があります。
引数( **kwargs )には、以下のパラメータが追加されます。
- 引数
modelに'user'を指定した場合auth: 認証しているユーザに関する情報user_addon指定したアドオンのUserSettings
- 引数
modelに'node'を指定した場合node: 対象のプロジェクトに関する情報node_addon指定したアドオンのNodeSettings
必要なパーミッション( permission )を宣言します。パーミッションは osf.utils.permissions に定義されており、 'write' , 'read' , 'admin' のいずれかを指定します。
引数( **kwargs )には、以下のパラメータが追加されます。
auth: 認証しているユーザに関する情報node: 対象のプロジェクトに関する情報
プロジェクトにアドオンを追加したユーザーのみ呼び出し可能であることを宣言します。プロジェクトのアドオンの設定にのみ使われるView処理などに宣言します。
引数( **kwargs )には、以下のパラメータが追加されます。
node: 対象のプロジェクトに関する情報
ユーザーがContributorであるか、プロジェクトが公開設定にされている場合のみ呼び出し可能であることを宣言します。
似たようなデコレータとして、以下のようなものがあります。
must_be_contributormust_be_contributor_or_public_but_not_anonymizedmust_be_contributor_and_not_group_member
引数( **kwargs )には、以下のパラメータが追加されます。
auth: 認証しているユーザに関する情報node: 対象のプロジェクトに関する情報
ユーザーが所属する機関が、指定したアドオンを使うことを許可されている場合にのみ呼び出し可能であることを宣言します。この機能はAdminのRdm Addons機能により提供されています。