10up / distributor

Share content between your websites.

Home Page:https://distributorplugin.com

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Gutenberg-plugin JS enqueue error for users without permission to push.

peterwilsoncc opened this issue · comments

Describe the bug

When a user without permission to syndicate posts visits the block editor screen, an error is thrown enqueuing the Gutenberg-plugin JavaScript as the dt-push dependency is not available.

This is caused by the is_syndicatable() check in the push-ui file preventing the registration of the dependency if it's unavailable.

if ( ! syndicatable() ) {
return;
}

It may be possible to remove the is_syndicatable() check when enqueuing the the push UI JavaScript but the JavaScript may require the addition of a check for the user permissions.

Steps to Reproduce

  1. Add the following code to prevent pushing for all users to mu plugins
    add_filter( 'dt_syndicatable_capabilities', function() { return 'do_not_allow'; } );
  2. Enable the Query Monitor plugin
  3. Visit the post edit screen
  4. Query Monitor will report the dependency issue

Screenshots, screen recording, code snippet

Screenshot 2024-06-17 at 11 25 51 AM

Environment information

  • Distributor Develop @ 75c0bf3
  • WordPress 6.5.4

WordPress information

No response

Code of Conduct

  • I agree to follow this project's Code of Conduct

Hi @peterwilsoncc

If I remove the syndicatable before script enqueuing it gets rid of the error and if I login via a user who doesn't have permission to push content, the UI to push doesn't show anything https://cleanshot.thrijith.com/6h0NTlQ5gqpnjwmZ7F8D, do we need any additional checks in the JS in this case?