先日、Drupal7の環境でDrupalコアのアップデートを行ったところ、それまでできていたノードの編集ができなくなりました。
編集画面は開くのですが、保存しようとすると403エラーになってしまいます。403エラーと一口にいっても様々な要因が考えられるので、なかなか原因がわからず困ってしまいました。
結果的に改善できたので、その時の対処法を備忘録として残しておきたいと思います。原因は不明でしたが、ノードへのアクセス権限がおかしくなっていたようです。
Drupalでノードの編集ができなくなった時の対処法
まずは、[管理] » [ユーザー] » [権限]にアクセスして、アクセス権限の設定も確認しておきましょう。
ノードの権限で「Create new content」や「Edit own content」にチェックが入っているか確認します。そもそもノードの編集が許可されていない場合は、チェックを入れて許可してあげましょう。
権限設定に問題がなければ、今回行った対処法である「アクセス権の再構築」を実行します。
[管理] » [レポート]にアクセスすると、「Node Access Permissions」という項目があります。
Node Access Permissionsでは、以下のように説明されています。
If the site is experiencing problems with permissions to content, you may have to rebuild the permissions cache. Rebuilding will remove all privileges to content and replace them with permissions based on the current modules and settings. Rebuilding may take some time if there is a lot of content or complex permission settings. After rebuilding has completed, content will automatically use the new permissions.
サイトでコンテンツへのアクセス許可に問題がある場合は、アクセス許可キャッシュを再構築する必要があります。 再構築すると、コンテンツに対するすべての権限が削除され、現在のモジュールと設定に基づいた権限に置き換えられます。 多くのコンテンツや複雑な権限設定がある場合は、再構築に時間がかかることがあります。 再構築が完了すると、コンテンツは自動的に新しい権限を使用します。
説明文の後ろに[アクセス権の再構築]というリンクがあるので、こちらをクリックします。
アクセス権の再構築を実行したことで、アクセス権限が正しく設定され、ノードの編集ができるようになりました。
あとがき
対処法は簡単ですが、ここにたどり着くまでに結構時間がかかってしまいました。
アップデート等のタイミングで、ノードの追加や編集ができなくなってしまったら、アクセス権の再構築を試してみてください。