メールアドレス入力画面
- 目的・用途
本機能は、非ログインユーザの「利用登録」「利用申請」および「二段階利用申請」ワークフローにおいて、ワンタイムアドレスクリック後メールアドレスチェックとパスワードチェックを行う機能であり、申請者のメールアドレスと一致しているかの判定と申請者が設定したパスワードと一致しているかの判定を行う。
- 利用方法
非ログインユーザが「利用登録」「利用申請」および「二段階利用申請」ワークフローにおいてメールに添付されているワンタイムアドレスを押下し、メールアドレスとパスワードを入力する。
- 利用可能なロール
| ロール | システム 管理者 |
リポジトリ 管理者 |
コミュニティ 管理者 |
登録ユーザー | 一般ユーザー | ゲスト (未ログイン) |
|---|---|---|---|---|---|---|
| 利用可否 | - | - | - | - | - | ○ |
機能内容
フロー: Flow List
【Admin > WorkFlow > Flow List画面】から利用申請フローを登録することができる
現在利用申請フローとして動作が保証されているのは以下の4つである。
利用申請: [Start]-[Item Registration]-[Approval(1)]-[End]
二段階利用申請: [Start]-[Item Registration]-[Approval(1)]-[Approval(2)]-[End]
利用登録: [Start]-[Item Resistration]-[End]
利用規約のみ: [Start] -[End]
利用登録は、Approvalを承認扱いでスキップする利用申請。
利用規約のみは、申請なしでそのまま制限公開のコンテンツファイルをダウンロードできる。これは非ログインユーザも同様でメールアドレス入力とパスワード入力を省略して、利用規約の同意のみでダウンロードできる。
利用報告フローは以下の通り定義している。
- 利用報告: [Start]-[Item Registration]-[Approval(1)]-[End]
「非ログインユーザ」が「利用登録」「利用申請」および「二段階利用申請」ワークフローにおいて利用申請を行う際に、ダウンロード用のURIにアクセスするとアイテム詳細画面に遷移し、メールアドレスとパスワードを入力するモーダル画面が表示される。
申請時のメールアドレスと入力されたメールアドレスが一致し、申請時に設定したパスワードと入力されたパスワードも一致した時、リンクの有効期限とダウンロード回数を超えない場合、コンテンツファイルをダウンロードできる。ダウンロード回数(残り回数)がカウントダウンされる
メールアドレスが一致しない場合、アラート文が表示される。「OK」を押下すると、アイテム詳細画面に遷移する。
日本語:「ファイルをダウンロードできません」
英語:「Could not download file.」
入力フォームに空白や空文字が入力された状態で「送信」を押下すると、アラート文が表示される。「OK」を押下すると、モーダル画面が再度表示される。
日本語:「メールアドレスを入力してください」もしくは「パスワードを入力してください」
英語:「Please input email address.」もしくは「Please input Password」
有効期限を超過した場合、エラーメッセージが表示される
日本語:「ダウンロード有効期限を超過しています。」
英語:「 The expiration date for download has been exceeded. 」
ダウンロード回数を超過した場合、エラーメッセージが表示される
日本語:「ダウンロード上限回数を超過しています。」
英語:「 The download limit has been exceeded. 」
登録時にアイテムを制限公開としていたが、途中で非公開/削除した場合、DL期間内でもファイルはダウンロードできない
登録時に指定したインデックスを非公開に変更した場合、DL期間内でもファイルはダウンロードできなくなる
申請時にパスワードチェック機能がOFFであり、申請が承認された後にパスワードチェック機能がONとなった場合、パスワードが設定されていないためダウンロードはできなくなる。
設定できるパスワードの条件は以下のすべてを満たすものとする。
- 8文字以上であること
- 大文字が含まれていること
- 小文字が含まれていること
- 数字が含まれていること
- 特殊文字(@!#$%&=-+*/.,:;[]|)のいずれかが使用されていること
処理概要
アクセスが「制限公開」(Restricted Access)と設定されているコンテンツに対して
weko_records_ui.permissions.check_file_download_permissionでcheck_open_restricted_permissionを呼び出して使用する。
管理者または登録者に対して、アイテム詳細画面、ファイル詳細画面に、ファイルの情報を取得し、ダウンロードできる
権限がないユーザーは、ファイルをダウンロードするために、利用申請を実施する必要がある。
コンテンツのアクセスが「制限公開」で「提供方法:ロール」を「非ログインユーザ (Guest)」または「Contributor」とした場合、以下の操作が行える
提供方法に一致するユーザーがアイテム詳細画面の【申請 (Apply)」ボタンを押下した際に利用申請設定時に設定されている利用規約をモーダル画面に表示する
利用規約について
利用規約文表示エリア上部に「利用規約 (Terms and Conditions)」を固定で表示する
利用規約文表示エリア下部に「利用規約を確認の上、スクロール最下部にある「利用規約に同意する」にチェックを入れてください (I have read and agreed to the Terms and conditions)」を固定で表示する
[利用規約に同意する」ラベルクリック時もチェックボックスのオンオフができるようにする
利用規約を最後まで確認すると「利用規約に同意する」チェックボックスをチェックできる。チェック前は「次へ」ボタンを非活性とする
利用規約画面での「次へ」ボタンを押下する挙動について
「 提供方法:ロール (Providing Method: Role)」で「Guest(非ログインユーザ)」が設定されている場合、メールアドレスが入力できるモーダル画面が表示される。メールアドレスを入力し「Enable」ボタンを押下すると「提供方法:ワークフロー」に応じて処理をする。
「 提供方法:ワークフロー (Providing Method: WorkFlow)」が「利用規約のみ」で設定されているアイテムの場合、Guestは「次へ」ボタンを押した時点でDLできる。
「提供方法:ワークフロー (Providing Method: WorkFlow)」が「利用規約のみ」以外のワークフローの場合、メール入力モーダルを表示する。送信ボタンを押すと、入力されたメールアドレスにリンクがついたメールを送信する。
受信したメール文のリンクをクリックするとワークフローに定義されているアクション画面(アイテム登録画面など)に遷移する
メールに添付されたワンタイムアドレス押下時に、weko_records_ui.fd.file_download_onetimeを呼び出して使用する。
モーダルに入力されたメールアドレスをクエリパラメータとして付与し、weko_records_ui.fd.file_download_onetimeに渡す。tokenから取得したメールアドレスとクエリパラメータから取得したものが一致した場合、weko_records_ui.fd._download_fileを呼び出してダウンロードを行う。
リンクはランダムなURLとトークン値から構成し、両者が一致した場合に利用登録ワークフローへのリンクとして機能する
パスワードチェック機能がONの場合
非ログインユーザーが利用申請を行う際に、メールアドレスの入力だけではなくパスワードの設定が求められる。
入力したパスワードはハッシュ値として、workflow_activityのextra_infoカラムに保存される。
利用申請が承認された段階で、file_onetime_downloadテーブルのextra_infoカラムにパスワードのハッシュ値が保存される。
コンテンツのダウンロードの際に、パスワードチェック機能がONであればパスワードの入力が求められる。
- 入力したパスワードはPOSTリクエストのBodyとして送信され、設定されたパスワードと等しい場合にダウンロードを行う。
- 更新履歴
| 日付 | 更新内容 |
|---|---|
| 2025/10/10 | 初版作成 |