JoryHogeveen / view-admin-as

View the WordPress admin as a different role, switch between users, temporarily change your capabilities, set default screen settings for roles, manage your roles and capabilities.
https://wordpress.org/plugins/view-admin-as/
GNU General Public License v2.0
45 stars 4 forks source link

Conflict with User Role Editor filter #112

Closed sanzeeb3 closed 4 years ago

sanzeeb3 commented 4 years ago

Describe the bug

This filter 'ure_full_capabilites' in the User Role Editor expects a full list capability return. Example format:

Array
(
    [activate_plugins] => Array
        (
            [inner] => activate_plugins
            [human] => Activate plugins
            [wp_core] => 1
        )

    [assign_give_form_terms] => Array
        (
            [inner] => assign_give_form_terms
            [human] => Assign give form terms
            [wp_core] => 
        )

    [assign_give_payment_terms] => Array
        (
            [inner] => assign_give_payment_terms
            [human] => Assign give payment terms
            [wp_core] => 
        )

while the same filter in this plugin return the $caps in the format:

Array (
    [activate_plugins] => activate_plugins
    [edit_plugins] => edit_plugins
    [edit_users] => edit_users
    [edit_files] => edit_files
    [manage_options] => manage_options
    [level_10] => level_10
    [delete_users] => delete_users

Specifications

Additional context

Any plugin using this filter returning the format that 'User Role Editor' expects creates the issue. For example WPForms.

Steps to reproduce the issue:

  1. Install and active View Admin As and WPForms plugin.
  2. Enable error log.
  3. See the error.
JoryHogeveen commented 4 years ago

Hi @sanzeeb3

Do you get an error or notification? I cannot find any changes in the URE plugin that indicates such a format. See: https://plugins.trac.wordpress.org/browser/user-role-editor/trunk/includes/classes/own-capabilities.php

In any case, I implemented the members hook members_get_capabilities, not the URE hook you mention. URE also has implemented the Members hook so if they want to support that they will need to use that format.

Cheers, Jory

JoryHogeveen commented 4 years ago

Hi @sanzeeb3

I think I understand your issue. My compat code also parses the URE hook to fetch all capabilities that other plugins might add to that hook. I'll change my code to just pass an empty array to that hook. I might even just remove it completely.

Cheers, Jory

sanzeeb3 commented 4 years ago

Yeah that. It's just a notice, though. This: https://wordpress.org/support/topic/causing-error-on-pages/