-
Notifications
You must be signed in to change notification settings - Fork 4.3k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Multi-entity permission management #37489
Comments
Thanks for raising. My notes about the problems in |
I've discussed this with @getdave a bit as well, can we try switching the |
I gave that a try but even within the limited scope of the Nav block there seem to be several knock on effects. Data missing on responses...etc. That said, a PR exploring that in more detail would be helpful in order that we can all assess the impact together 👍 |
Navigation is a particularly complex block, and seeking to generalise a solution from a sample set of one seems premature. Shouldn't we first use Navigation as the stage for finding the best user experience for dealing with these many-to-many user-cap relationships with the specificities of that block in mind — and only then consider generalisations? |
@mcsf I think exploring different solutions through the navigation block is a great way to proceed. This issue doesn't prescribe any particular prioritization, it merely highlights a problem that every entity-related block (like Page List) must consider in some way. I updated the wording to make the intention clearer. |
One of the issues, is related different between being able view and edit a entities. In core data, a request to gutenberg/packages/core-data/src/entities.js Line 208 in 812fa1b
This means that only entries / post types that a user can edit can be listed. However, for menus/navigation post types, we want to be view and not edit these posts. Core data should not always guess a user can edit a post. All request to post type endpoints, also default to gutenberg/packages/core-data/src/entities.js Line 217 in 812fa1b
We should add a new field to the Willing to work on the php change and it will be relatively simple. |
Adding a use caseIn the case of a WooCommerce store, Imagine I am a SAAS provider who builds pre-configured stores for merchants. The most convenient way to manage the parts and template parts that my internal designers can manage vs. the merchants at my clients is to simply provide only the 'store manager' capabilities...but I don't want to wall off ALL site editor functions from the merchants - not by a long shot.
I would never ever want to wall off the possibility for merchants to create their own single product templates or product category landing pages. For a store builder, this will provide business impacting freedom to merchants and I'm super jazzed for this to become reality and train merchants how to do that, right? Like heaven on earth for an internet merchandiser! But waitIn the scenario I outlined above, within the normal course of business a merchant could accidentally foul up the header, footer, or checkout pages. Make giant mistakes which could essentially 'break' the entire store, change the navigation, totally change the information architecture, unintentionally send big signals to search engines. Merchants rely on store builders by to protect them from these unintentional mishaps. Store builders need granular control.Here are a couple examples that I'd like to consider.
|
It's also worth considering the reusable block, which is a much older block and surprisingly seems to have no handling of permissions. A contributor can edit the content, but gets an unhelpful 'Saving failed' error when trying to save. It'd be good to make sure it's not forgotten 😄 |
What problem does this address?
In the multi-entity editing world, a low-permission user may edit a post that contains high-permission entities like Navigation (see the report by @spacedmonkey, and @getdave's PR with a navigation-specific fix: #37454).
Let's find a way of dealing with permissions in the multi-entity world.
One way to approach it would be to address these use-cases:
There may be other ways to proceed, too. This issue is about the overarching theme, not any particular solution.
Here are a few specific reports of this problem:
Potentially related issues:
cc @youknowriad @mcsf @mkaz @jorgefilipecosta @draganescu @talldan @mtias @noisysocks @ellatrix @ntsekouras
The text was updated successfully, but these errors were encountered: