baserproject / basercms

baserCMS : Based Website Development Project
http://basercms.net
Other
164 stars 124 forks source link

ごみ箱にファイルがある状態でツリー構造チェックを行うと常にエラーになる #3488

Closed cu-akasakay closed 2 weeks ago

cu-akasakay commented 1 month ago

概要

インストール後初期状態にて、コンテンツ管理で何かしらのファイルやフォルダを削除し、 ユーティリティ>コンテンツ管理から「ツリー構造をチェックする」を押下すると、他に操作をしてないにも関わらず 「コンテンツのツリー構造に問題があります。ログを確認してください。」と表示されます。

ログ出力内容

ログの内容は例として、以下のように出力されています。 (このlft, rghtが19,20の番号を持つレコードはごみ箱に入っているファイルでした)

2024-06-05 15:03:45 error: index, 19, missing
2024-06-05 15:03:45 error: index, 20, missing

再現性について

ごみ箱の中身をカラにしたり、元に戻すとツリー構造チェックは「正常」となり、 再度別ファイルでも良いので削除してごみ箱に入ると「問題あり」になりました。

該当処理

以下の処理において、100行目のデータ取得では論理削除済みデータを含めて取得していると思いますが、 108行目のデータ取得では論理削除済みが含まれていません。 これにより、ごみ箱にあるファイルが必ず114行目の「missing」エラーになってしまうと推測していますが、 いかがでしょうか。

https://github.com/baserproject/basercms/blob/2a41a4c7d2dbf63a3a194cb96fb91dbf64a54423/plugins/baser-core/src/Service/UtilitiesService.php#L100-L118

baserCMS version : 5.0.17

ryuring commented 1 month ago

@cu-akasakay 詳細な情報助かります。僕の方でも時間見つけて調査してみますね。

ryuring commented 1 month ago

@cu-akasakay

以下の処理において、100行目のデータ取得では論理削除済みデータを含めて取得していると思いますが、 108行目のデータ取得では論理削除済みが含まれていません。

確認しました。そちらに論理削除済を含むことで解決できそうですね。 プルリクよろしくお願いします。