リクエスト機能
- 目的・用途
本機能は、アイテムに紐づいたリクエスト送信先にメールを送信する。
- 利用方法
アイテム詳細画面の左側にある、「リクエスト」ボタンを押下することで、リクエストメールフォームがダイアログとして表示される。必要な項目を入力することでリクエストメールが送信される。
- 利用可能なロール
| ロール | システム 管理者 |
リポジトリ 管理者 |
コミュニティ 管理者 |
登録ユーザー | 一般ユーザー | ゲスト (未ログイン) |
|---|---|---|---|---|---|---|
| 利用可否 | ○ | ○ | ○ | ○ | ○ | ○ |
機能内容
アイテム詳細画面に「リクエスト」ボタンを表示する。
リクエスト機能が有効なアイテムの場合のみ「リクエスト」ボタンが表示される。
アイテム登録時のアクティビティでリクエスト機能を有効化する。
リクエストメールフォームで送信する内容を編集する。
- 編集項目: 差出人、件名、メッセージ
「メッセージ送信」ボタン押下時に、リクエストメールを送信する。
宛先はアイテムに紐づくリクエスト送信先のメールアドレス
リクエスト送信先が複数設定されている場合、すべてのメールアドレスに一斉送信される。
差出人に記載したメールアドレスがCc:として自動的に設定される。
関連モジュール
- weko_records_ui
処理概要
設定
リクエストフォーム表示の既定値
パス:modules/weko-records-ui/weko_records_ui/config.py
設定値:DISPLAY_REQUEST_FORM = False
CAPTCHA画像生成から認証までの有効期間(秒)
パス:modules/weko-records-ui/weko_records_ui/config.py
設定値:WEKO_RECORDS_UI_CAPTCHA_EXPIRATION_SECONDS = 900
Webページに設定されたCAPTCHA画像生成から認証までの有効期間(秒)
パス:modules/weko-records-ui/weko_records_ui/config.py
設定値: WEKO_RECORDS_UI_CAPTCHA_TTL_SECONDS = 600
前提条件
管理者画面上で、リクエスト機能が有効化されている場合
アイテム登録時にItem Registration画面でリクエストボタン表示がONの場合
実装方法
アイテム詳細画面を表示する際、DBテーブルrequest_mail_listから、当該アイテムのリクエスト送信先が登録されているか確認する。もし、リクエスト送信先が設定されている場合、画面を構成する要素として、リクエストフォーム表示ボタンおよびリクエストフォームをテンプレートに埋め込む。
リクエストフォーム表示ボタンが押下された場合に、リクエストフォームを表示する。
このとき、CAPTCHA画像を生成、取得する。
CAPTCHA画像取得APIのリクエスト上限を超えていた場合、リクエストフォームは表示せず、以下のエラーメッセージを表示する。 エラーメッセージ:「TOO MANY REQUESTS.」
リクエストフォーム上で以下の項目が入力できるようにする
送信者メールアドレス
件名
メール内容
メール送信ボタンが押下された際に、送信者メールアドレスを検証し、有効なメールアドレスか確認する。
- メールアドレスとして有効でない場合、エラーメッセージを出力し、メール送信しない。
メールの送信先は、アイテム登録時にリクエスト送信先として登録されたメールアドレスすべてに送信する。
CAPTCHA画像を用いて検証を行う。
計算結果入力欄に計算結果を入力、計算結果が正しい場合のみリクエストメールを送信する。
CAPTCHA画像の有効期限が切れていた場合、CAPTCHA画像の再生成、表示を行う。
リクエストメールの送信に成功した場合、送信者に対し通知メールを送信する。