クリップボードからコピーしたブロックのエリア移動がadmin以外で権限エラーにより不可能になる
concrete5にてサイトを運営していたところ以下のような事象を発見しました。
【事象】
admin以外で「スクラップブックを表示」となるブロックを他の追加されたエリア以外に移動できない。
【検証環境】
MAMPを使用しました。
【再現方法】
私が作成したテーマだけでなくインストールした際にあるelementalでも発生しました。再現は以下の通りです。
1.バージョン 8.5.4をインストール
2.初期状態は「空白のテーマ」
3.あとは通常通りインストール
4.adminとは別の管理者グループのユーザーを作成(admin_subとする)
5.上級顕現モードをON
6.admin_subで再ログイン
7.適当なページそして、エリアAに記事ブロック(ブロックAとする)を追加。
8.ブロックAをクリップボードにコピー
9.クリップボードから、ブロックAのコピー(ブロックB)をエリアAに配置
10.ブロックBを別のエリア(エリアB)に移動させる。(このときブロックBは「スクラップブックを表示」とアイコンになる。記事ブロックのアイコンでない)
11.スクラップブック表示 を Main エリアに追加する権限がありません。」というエラーが発生してエリアBにブロックBを移動できない。
【備考】
カスタムブロック、公式ブロック関係なく発生。記事ブロック・画像ブロックではこの事象を確認しました。
上級権限モードをOFFの場合はadmin以外であっても上記のエラーは発生しません。
adminであればスクラップブックのエリアを超えての移動は普通にできます。
同じエリア内であれば移動は可能です。上記の例ではブロックBをエリアAないで別の位置に移動させる。
上級権限をONにしてさらに複数ユーザーがいるサイト運営をしており、たまたま発見しました。どのように対処すればよろしいでしょうか?
Re: クリップボードからコピーしたブロックのエリア移動がadmin以外で権限エラーにより不可能になる
いかなるブロックもクリップボードからコピーされると「スクラップブック」となるので、この部分は正しい動作であるのは間違いないと思います。
お客様にはとりあえず、クリップボードから置いたものは移動せず、移動する予定だったブロックを再コピーして目的の場所に再配置してくださいとお伝えしました。
スクラップブックを更新するとブロックタイプが戻るんですね!こちらでも確認できました。とりあえず前者の方法を実施してもらい、多分これはコアによるバグの可能性が高いのでgithubや本場の方でも報告しようと思います。
aniya
Re: クリップボードからコピーしたブロックのエリア移動がadmin以外で権限エラーにより不可能になる
多分「記事ブロック」がクリップボード経由でペーストされたときに
「スクラップブック」となるのは正しい動作なのだと思います。
管理メニュー>スタックとブロック>ブロックタイプ
を確認すると「内部ブロック」という項目にスクラップブックは組み込まれており、
記事ブロックと別扱いになるようです。
じゃぁなんで上級権限モード移行前後で動作が変わるのか?
という疑問が残りますが…これは多分バグor大人の事情ってやつなのかな?と。
それはさておき、2つほど対策をみつけました。
■ブロックBをそのまま使いたい場合
→ペーストした状態のまま使いたいのなら、ブロックBはさっさと諦めて削除し、
大人しくクリップボードから新たにブロックを目当てのエリアにペーストしちまいましょう。
これが最少手順です。
■ブロックBの内容を変更して使いたい場合
→別のエリアに移動してから内容変更するのではなく、最初に内容変更して保存してください。
保存した時点で「スクラップブック」から「記事ブロック」にブロックタイプが変更されるので
他のブロック同様エリア移動が可能となります。
参考になれば幸いです。