Support » Plugin: Postman SMTP Mailer/Email Log » Do not Network Activate 1.7 on Multisite

  • Resolved Domi2015

    (@domi2015)


    Just FYI:
    On previous version I could network activate the plugin without problem.

    The plugins version 1.7 also works fine on multisite if activated on each site.

    If you do Network Activation on 1.7, only Super Admin could see content of admin menu (the SA might think that network activation is success). Other user could only see admin sidebar and toolbar, but the admin content is blank. This might cause confusion (specially me with 30 plugins installed).

    Simply turn off Postman Network Activation, and the things going fine.
    You can then activate postman per site (with site admin setting allowed to manage plugin), and the setting will be preserve.

    Thank you.
    Resolved.

    ps: still 5 star review.

    https://wordpress.org/plugins/postman-smtp/

Viewing 15 replies - 1 through 15 (of 17 total)
  • Plugin Author Jason Hendriks

    (@jasonhendriks)

    Hmmm… on my MU there is no blank contact, for either superadmin or admin. You must have triggered a bug. If the admin content is blank, then PHP is crashing and not finishing the rest of the load.

    Could you check the error_log for an error? If you are not logging errors, you have to enable WP_DEBUG_LOG in wp-settings.php. There is also a plugin to do it.

    Can you confirm you’re on Postman 1.7.1?

    I’m on 1.7.1, confirmed. There’s no problem with previous version.

    The Apache error log is something like this:

    [Fri Nov 06 01:08:01.696859 2015] [proxy_fcgi:error] [pid 29654:tid 139694482355968] [client x.x.x.x:y] AH01071: Got error ‘PHP message: ERROR PostmanWpMailBinder: wp_mail is already bound, Postman can not use it\n’, referer: http://primarydomain/wp-admin/network/plugins.php?plugin_status=all&paged=1&s

    Triggered by Super Admin, the admin content can be viewed without any problem.

    [Fri Nov 06 01:08:12.269679 2015] [proxy_fcgi:error] [pid 29841:tid 139694490748672] [client x.x.x.x:y] AH01071: Got error ‘PHP message: PHP Fatal error: Call to a member function printMessage() on a non-object in /opt/bitnami/apps/wordpress/htdocs/wp-content/plugins/postman-smtp/Postman/Postman.php on line 312\n’, referer: http://sitedomain/wp-admin/my-sites.php

    Triggered by Site Admin / users other than Super Admin, resulting in blank admin content with sidebar and toolbar intact. Happened for all sites / domains.

    I cannot repeat the error, since I currently don’t have trial host. Its a Bitnami standard build Multisite host, with some 30 plugin, which I disabled one by one, and the problem cease after disabling Postman, and happen if only Postman network activated.

    Hope it helps.

    Plugin Author Jason Hendriks

    (@jasonhendriks)

    That definitely helps – thank you. I will take a look a look to see what could be breaking for regular admins on line 312.

    Plugin Author Jason Hendriks

    (@jasonhendriks)

    You are 100% right, if the plugin is not configured, and the user is not in the administrator role, there would be a problem.

    So the question becomes, why are your Site Admins not part of the administrator role?

    Anyway, I’ve made the fix. Would you download the trunk version and make sure it’s fixed? Thanks!

    In multisite, there is Super Admin / Network Admin (me) and Site Admin (my client’s admins). It was set in All User on Network Admin menu. No customization on my host, and no security plugin installed.

    Site Admin is not set as Network Admin too keep them from network wide settings, but they held administrator role for their own site/s. They could install local plugin in their site. I think this is the standard of WP multisite.

    I will try the trunk on a trial host later. Great work.

    Thank you.

    Plugin Author Jason Hendriks

    (@jasonhendriks)

    When I say “administrator role” I mean Site Admin. Yes, that’s standard.

    This code is run on plugin activation, or, on a sub-site, when postman notices that it’s version number has changed:

    // add the custom capability to the administrator role
    $role = get_role ( 'administrator' );
    $role->add_cap ( 'manage_postman_smtp' );

    AFAIK, this code works fine in multisite, at least it did on mine. I verified the capability given to the Site Admin with https://wordpress.org/plugins/user-role-editor/.

    I’m worried that the Postman admin screen will disappear for your Site Admins, based on your symptoms (because they aren’t in the role granted ‘manage_postman_smtp’).

    Already get the test host running. The trunk works fine.

    The problem with 1.7.1 can be regenerate:
    – I install a plain Bitnami WP multisite (4.3.1), with 1 primary domain and 1 client domain. WP installation’s standard 10 plugins installed not activated. Only MU Domain Mapping plugin activated
    – I set siteadmin could access plugin menu.
    – When superadmin install 1.7.1 from plugins menu and network activated it, the siteadmin menu on the client domain went blank.
    – Without network activated each siteadmin could install the plugin well.

    I installed the new trunk, and it behave well:
    – When network activated, no trouble on siteadmin menu. Patch is working.
    – Only superadmin on primary domain could setup Postman. The siteadmin dont get access to Postman setting menu. This is the different behaviour from pre-1.7 version.
    (you need to notify previously network activated site about this).
    – Without network activation, siteadmin could activate Postman on their domain, as usual.

    The test host is still up, so tell me if you need any more test.

    Plugin Author Jason Hendriks

    (@jasonhendriks)

    Only superadmin on primary domain could setup Postman. The siteadmin dont get access to Postman setting menu.

    That’s what I was afraid of 🙁

    Would you please install this plugin : https://wordpress.org/plugins/user-role-editor/

    And then check that your screens look similar to mine:
    In screenshot A, jason is the Super Admin and john is the Site Admin. Verify that both roles show “Administrator”.

    In screenshot B, verify when Administrator Role is selected and Postman is activated, manage_postman_smtp appears under custom capabilities and is checked.

    It should be that simple!

    I cannot confirm that the siteadmin have manage_postman_smtp.

    SiteAdmin not shown in Primary and ClientDomain admin page, only on Network admin page.
    http://www.awesomescreenshot.com/image/732482/479bb5dc9dca16743e849f3918a886ec
    SuperAdmin has manage_postman_smtp.
    http://www.awesomescreenshot.com/image/732490/d4461fe1da13d1c95675f7dcdf13ee8e

    In PrimaryDomain, there is no SiteAdmin:
    http://www.awesomescreenshot.com/image/732488/289dc4a8d1cebf2144d61de01ee97b2b

    In ClientDomain, SiteAdmin had no User-Role-Editor menu. User-Role-Editor menu only shown on Network admin page (at Settings), and PrimaryDomain admin page (at Users).

    If you need, I could PM login access to the test host.

    Plugin Author Jason Hendriks

    (@jasonhendriks)

    Sure that would be great to have access.

    From your screenshots, neither siteuser nor siteadmin show up as users for user’s blog. so of course they won’t have access to modify Postman.

    You have to add them to the blog through Network Admin > Sites > Edit > Users

    Where can I send you the access ?

    Yes, in the configuration, User’s blog is the primary-domain, only superadmin (me) has access there.

    Siteadmin (client admin) and siteuser (client subscribers) are not member of user’s blog (primary domain), they are member of client-domain. The siteadmin was created when creating client-domain, and he adds siteuser. So they both not member of primary-domain (user’s blog).

    When trunk version network activated, Postman settings cannot be seen by siteadmin on his own site (client-domain).

    Plugin Author Jason Hendriks

    (@jasonhendriks)

    Ok. You can contact me privately.
    http://www.codingmonkey.ca/contact/

    Plugin Author Jason Hendriks

    (@jasonhendriks)

    Please post a screenshot of All Users on client-domain like you did for user’s blog. I want to see the Role column.

    Access sent by message on your contact form.

    Using new trunk, network-activated.

    Client-doman user-role-editor ss (no postman):
    http://www.awesomescreenshot.com/image/734262/e0d78752458654946a1d95df9e6cc1d4

    Client-domain users, viewed by superadmin:
    http://www.awesomescreenshot.com/image/734265/b9ada131db15cee795a538b69cab2d2b

    Plugin Author Jason Hendriks

    (@jasonhendriks)

    Ok, I found the problem. I assumed the WordPress role was stored global, but it’s not, it’s stored per-site and therefore I need to add the capability to the role on every site. And then do the opposite when deactivating.

    Thank-you so much for helping me test this! When the full multisite compatibility is done I might ask for your help in testing again 😉

    Fixed in Postman v1.7.2

Viewing 15 replies - 1 through 15 (of 17 total)
  • The topic ‘Do not Network Activate 1.7 on Multisite’ is closed to new replies.