問題の概要
アップロードファイルの権限判定が、バケツの現在位置ではなく元の紐づきページを参照しているため、バケツ移動後にページ削除やページ公開範囲変更(メンバーシップページへ変更等)を行うとファイルがアクセス不可になる。
現在の問題
- バケツを別ページに移動後、元ページを削除するとファイルが参照できなくなる
- バケツを全公開エリアに移動後、元ページを「メンバーシップ」に変更してもファイルが参照できなくなる
- アップロード管理の一覧にはファイル名が表示されるが、ファイル自体は開けない
- 復旧にはDBの直接修正が必要
再現手順
- ページAにプラグイン(固定記事等)を設置
- ファイルをアップロード
- バケツをページBに移動
- 以下のいずれかを実行:
- ページAを削除
- ページAの公開範囲をメンバーシップに変更
- ページBでファイルにアクセスを試行
期待される動作(案)
- ファイルの権限判定はバケツの現在位置を基準とする
- バケツ移動後は移動先ページの権限が適用される
- 元ページの削除・権限変更がファイルアクセスに影響しない
影響範囲
- プラグイン: フォーム(添付ファイル)、キャビネット、その他ファイルアップロード機能全般
- 管理機能: アップロード管理
- ユーザー: 既に複数の問い合わせが発生
現在の回避策
- 不要ページでも削除しない
- 公開範囲・パスワード変更時に注意を促す
技術的検討事項
- ファイル権限判定ロジックの見直し
- バケツとページの関連性の再設計
- 既存データの移行方法