アイテム詳細(制限公開)
コンテンツのアクセスを「制限公開」とした場合のアイテム詳細画面、ファイル詳細画面の処理
- アクセスしているユーザーが管理者権限があるかどうかは、「__check_user_permission」のメソッドでチェックする。V0.9.22現在、システム管理者・リポジトリ管理者・コミュニティ管理者が管理者権限ありとして扱われている。
管理者権限をもつユーザに対して、アイテム詳細画面、ファイル詳細画面に、ファイルの情報を取得し、ダウンロードできる
権限がないユーザに対して、アイテム詳細画面に「アクセス制限」(英「Restricted Access」)と表示する。ファイル情報のリンクは不活性とし、ファイル詳細画面の「Action」にダウンロードボタンのかわりに「申請」ボタンを表示し、コンテンツ登録時に設定した「提供方法:ロール」のロールに一致するユーザーは「申請」ボタンをクリックことで以下の利用申請を実施することができる
- 「提供方法:ロール」を「非ログインユーザ」とした場合、ログインしていないユーザは「申請」ボタンをクリックことで以下の利用申請を実施することができる
制限公開用のコンテンツファイルでの提供方法に一致しないユーザが「申請」ボタンを押下した場合はモーダルで警告メッセージを表示する
警告メッセージ:
日本語:「このデータは利用できません(権限がないため)。」
英語:「This data is not available for this user.」
コンテンツのアクセスを「制限公開」とした場合のコンテンツファイルのアクセス制御
アクセスしているユーザーが管理者権限があるかどうかは、「__check_user_permission」のメソッドでチェックする
アクセス権限をもつユーザの場合(管理者・アイテム登録者・代理投稿者)
DLのURLを入力: "Permission required"を表示する
※入力するURLは登録者(Contributor)以上がボタンを押下したときのURL( } )とするInformatonボタン押下: "Permission required"を表示する
Informaton画面のURLを入力: "Permission required"を表示する
権限のないログインユーザの場合(「提供方法:ロール」の設定にかかわらず)
DLのURLを入力: "Permission required"を表示する
※入力するURLは登録者(Contributor)以上がボタンを押下したときのURL( } )とするInformatonボタン押下: "Permission required"を表示する
Informaton画面のURLを入力: "Permission required"を表示する
非ログインユーザの場合(「提供方法:ロール」の設定にかかわらず)
DLのURLを入力: ログイン要求をする
※入力するURLは登録者(Contributor)以上がボタンを押下したときのURL( } )とするInformatonボタン押下:ログイン要求をする
Informaton画面のURLを入力:ログイン要求をする
利用申請①:利用規約への同意
提供方法に一致するユーザーがアイテム詳細画面の「申請」ボタンを押下した際に利用申請設定時に設定されている利用規約をモーダル画面に表示する
利用規約について
利用規約文表示エリア上部に「利用規約」を固定で表示する
「利用規約に同意する」ラベルクリック時もチェックボックスのオンオフができるようにする
「利用規約に同意する」チェックボックスのチェック/非チェックが、「次へ」ボタンが活性/非活性と連動する
利用申請②:利用規約画面での「次へ」ボタンを押下した際の挙動
「非ログインユーザ」で設定される場合、メールアドレスが入力できるモーダル画面が表示される
受信したメール文のリンクをクリックするとワークフローに定義されているアクション画面(アイテム登録画面など)に遷移する
リンクはランダムなURLとトークン値から構成し、両者が一致した場合に利用登録ワークフローへのリンクとして機能する
「 提供方法:ロール」で設定される場合、指定されたワークフローの画面に遷移する
利用申請③:ワークフロー終了後の挙動
WEKO_ADMIN_RESTRICTED_ACCESS_DISPLAY_FLAG が True かつアイテム詳細画面の「申請」ボタンから起動したワークフローが「作業済み(Done)」となった際にダウンロード用のURL(以下、ワンタイムURL)をメールで通知する。リンクの有効期限とダウンロード回数は【Administration > Setting > Restricted Access画面】での「コンテンツファイルのダウンロード」(Content File Download)エリアで設定される
ワンタイムURLへアクセスした際、その時点でまだ有効なURLであればダウンロードが開始する
以下のケースでは正しいURLであってもダウンロードできず、エラーメッセージが表示される
有効期限を超過した場合
日本語:「ダウンロード有効期限を超過しています。」
英語:「 The expiration date for download has been exceeded. 」
ダウンロード回数を超過した場合
日本語:「ダウンロード上限回数を超過しています。」
英語:「 The download limit has been exceeded. 」
アイテム登録者または管理者により論理削除が行われた場合
日本語:「このURLは削除されました。」
英語:英語:「 This URL has been deactivated. 」
上記の他、以下のケースでもダウンロードが許可されない
登録時は制限公開ファイルだったが、途中でその他の公開設定に変更された場合
該当アイテムを含むインデックスが非公開に変更された場合
ファイルあるいはアイテムが削除された場合
システムのアップデートによりURL情報を保存するデータベースに変更が生じた場合
WEKO_ADMIN_RESTRICTED_ACCESS_DISPLAY_FLAG が False の場合
ワンタイムURLが使用されたとき、ファイルダウンロードに関するログ情報を保存する。ログ情報はダウンロードURL利用記録テーブル(file_url_ddownload_log)に格納される
テーブルfile_url_download_logは以下の情報を保持する(ワンタイムURLが使用された場合)
ダウンロード日時
ワンタイムURLのID
ダウンロードされたファイルの公開設定
使用されたトークン
ワンタイムURLのIDはテーブルfile_onetime_downloadのIDカラムを外部キーとしているため、テーブルを結合することでさらに以下の情報を確認できる
利用申請者のメールアドレス
利用申請を承認したユーザー
ダウンロードされたファイル
利用申請④:データダウンロード後の挙動
利用申請が承認された制限公開コンテンツファイルを最初にダウンロードした際(=各ワンタイムURLの初回利用時)に、利用申請を行ったユーザーに向けて「利用報告の登録のお願い」メールを送信する。メールには利用報告ワークフローアクティビティの登録URLリンクが掲載されており、URLリンクから遷移する登録画面から利用報告を登録できる。
- ゲストユーザーの利用報告WFに対して、リンクの有効期限は【Administration > Setting > Restricted Access画面】での「利用報告ワークフローへのアクセス」(Usage Report Workflow Access)エリアで設定できる
更新履歴
| 日付 | GitHubコミットID | 更新内容 |
|---|---|---|
|
353ba1deb094af5056a58bb40f07596b8e95a562 | 初版作成 |
|
160a811eed2c61492558905db34fa0619da6b18f | コンフィグ値による条件を記載 |