TGMPA / TGM-Plugin-Activation

TGM Plugin Activation is a PHP library that allows you to easily require or recommend plugins for your WordPress themes (and plugins). It allows your users to install, update and even automatically activate plugins in singular or bulk fashion using native WordPress classes, functions and interfaces. You can reference bundled plugins, plugins from the WordPress Plugin Repository or even plugins hosted elsewhere on the internet.
http://tgmpluginactivation.com/
GNU General Public License v2.0
1.76k stars 429 forks source link

After update permissions access error. #526

Open andreilupu opened 8 years ago

andreilupu commented 8 years ago

Hi,

I'm using TGMPA and I've notice that after an user updates all the plugins, the Install Required Plugins page is not registered anymore.

This causes errors for plugins which have a return point after the activation( eg: if a plugin redirects you in customizer at activation, the close button will return at /?page=install-required-plugins which doesn't exist now or plugins with tutorials, which will end with a return at the last page after activation).

This will always end with and You do not have sufficient permissions to access this page. error page where the user doesn't even have a return to dashboard link.

I think that TGMPA should register the admin page even if there are no updates notification, This could be created without a link in dashboard menu so the user won't find it.

I can come back with a pull request if this does make sense to you.

jrfnl commented 8 years ago

Hi @andreilupu, thanks for reporting this.

I'd like to know a bit more about how a user would get into that situation. Could you give some detailed steps to reproduce the issue on a standard WP install ?

If there are no more TGMPA open actions after an update run through TGMPA, we don't display the 'return to required plugins' link anymore, so this shouldn't happen easily.

I'm not keen on adding a 'ghost page' as you seem to suggest in your pull request as that will only create more problems with the Theme Check used by the Theme review team for wp.org themes.

andreilupu commented 8 years ago

Well here are two cases that cross my mind just now:

I'm sure there are a lot of cases like this since we make a page public, a user could accidentally get back on it, with a refresh, or a back button or other cases like a tutorial which returns you back to /?page=install-required-plugins (I think I got this on wp job manager once but I don't remember how).

I understand that Theme check will scream at that null parameter, but it ain't right for any plugin / theme to add an admin page conditionally, users will find that link in the worst cases like they've read the Murphy's Law.

jrfnl commented 8 years ago

I understand that Theme check will scream at that null parameter, but it ain't right for any plugin / theme to add an admin page conditionally

Actually, it is completely correct that this admin page is added conditionally as it is useless unless there are open actions.

Any 'solution' which adds the admin page with a null parent will be rejected, so let's start thinking of other solutions.

andreilupu commented 8 years ago

Ok, I understand, I just don't see an admin page like Dashboard->Updates to dissapear when there are no updates, at least not untill the wp core will provide an api for this.

jrfnl commented 8 years ago

Actually it used to do just that, they only stopped doing that in recent WP versions.