user_user_role_insert() is called it creates configuration objects for actions to add and remove the role. The configuration object id is
Currently this does not match the system.action configuration schema since it is defined as
There are two possible fixes.
system.action.* schema with a
system.action.*.* schema. This has a number of downsides:
- Where should the duplicated schema live? system.schema.yml or user.schema.yml?
- What happens when two contrib modules define actions which use three part IDs?
- Code duplication for no real gain
Fix 2 (current approach in patch)
Fix the wildcard look up to be greedy so when we fallback to look for
system.action.*.* it will also match
system.action.*. There has been discussion of whether the greedy matching will cause problems but in all cases the less greedy match is preferred. For example, when searching for matches for
breakpoint.breakpoint.module.toolbar.narrow the following checks for schema will be made:
breakpoint.breakpoint.module.toolbar.* breakpoint.breakpoint.module.*.* breakpoint.breakpoint.module.* breakpoint.breakpoint.*.*.* (This is the defined schema for this configuration) breakpoint.breakpoint.* breakpoint.*.*.*.* breakpoint.*
... and finally
We also actually need to fix the
system.action.* configuration schema because the
configuration key is defined incorrectly as
type: action.configuration.[plugin]. We need to look in the parent data for the plugin key,
- Agree approach
- Review and commit patch
User interface changes