baserCMSには、各メールフォームでの入力内容を管理側から確認できる機能が備わってます。
そのメールフォームには、ファイルアップロード機能が利用できます。
受信詳細画面では、もちろん添付された画像が表示されて確認できるようになっているのですが、あるとき画像が表示されないケースがありました。
そんなときのチェック内容です。
想定している対象者
- baserCMSでウェブサイトを制作をしている方
- baserCMSでウェブサイトを運用している方
発生状況
- ファイルアップロード用のフィールドを備えたメールフォームが存在する
- 受信データ内に、アップロード用フィールドに画像ファイルを添付したデータが存在する
- 管理側の受信詳細画面にアクセスする
- 添付されている画像ファイルが表示されない
環境
- PHP 5.6.10
- baserCMS 4.1.6〜
原因
受信詳細画面のファイルに対してアクセス制限設定が掛かっていること。
受信詳細画面に表示する画像ファイルは、
MailMessagesController::admin_attachment() を介して表示される動作となっているため、adminプレフィックスに対するアクセス制限判定が走ってました。
対処
アクセスするユーザが属するユーザグループのアクセス制限設定に以下を追加。
- ルール名: 受信メール詳細添付画像
- URL設定: (/admin)/mail/mail_messages/attachment/*
- アクセス: 許可
- 利用状態: 利用する
補足
ログイン中ユーザがシステム管理グループのユーザの場合、アクセス制限を受けることはないため同様の症状が起きることはありません。
運営グループに属するユーザに対して受信メール詳細画面までのアクセスを通している場合、かつ、メールフォーム内でファイルアップロードフィールドを利用している場合に起きる可能性が高いですね。