localgovdrupal / localgov_core

LocalGovDrupal Core module, for helper functions and core dependencies.
GNU General Public License v2.0
3 stars 6 forks source link

Importing configuration that enables modules (in this case guides) can cause permissions not exists error #237

Open ekes opened 1 month ago

ekes commented 1 month ago
  Adding non-existent permissions to a role is not allowed. The incorrect permissions are "create local 
  gov_guides_overview content", "create localgov_guides_page content", "delete any localgov_guides_over
  view content", "delete any localgov_guides_page content", "delete localgov_guides_overview revisions"
  , "delete localgov_guides_page revisions", "delete own localgov_guides_overview content", "delete own   
   localgov_guides_page content", "edit any localgov_guides_overview content", "edit any localgov_guide
  s_page content", "edit own localgov_guides_overview content", "edit own localgov_guides_page content"
  , "revert localgov_guides_overview revisions", "revert localgov_guides_page revisions", "view localgo
  v_guides_overview revisions", "view localgov_guides_page revisions".

This is because the permission required are not loaded from a file but calculated. https://git.drupalcode.org/project/drupal/-/blob/0fd4bdcb16ca339c06e0eb6a8b30a4b13a810793/core/modules/node/src/NodePermissions.php#L24 return $this->generatePermissions(NodeType::loadMultiple(), [$this, 'buildPermissions']);. Specifically NodeType::loadMultiple() isn't returning the newly installed modules. I guess it's cached, and it's all in the same drush cim, so not getting updated.

ekes commented 1 month ago

Except putting a drupal_flush_all_caches or \Drupal::entityTypeManager()->getStorage('node_type')->resetCache() doesn't do it.

I think maybe the module is now enabled; but the configuration node.type.· has not yet been imported :-/