The way the admin area looks while adding a new role.

Extended Super Admins

The way that WordPress roles and capabilities are set up, there is only level of Super Admin available. Without this plugin, the only way to grant a user control over certain aspects of the network, you have to grant that user control over all aspects.

This plugin allows you to revoke specific privileges from any Super Admin on the network. You can create new roles within the site, then assign any Super Admin to that role; effectively removing the appropriate privileges.

This plugin does not grant any new privileges (with the possible exception of the ability to manage the settings for this plugin itself) to any users. It is only capable of removing privileges.

This plugin is also built to be compatible with the WordPress Multi Network plugin and the Networks for WordPress plugin. If either of those plugins is active, the options for this plugin will be saved and used for all of the networks within the installation.

Current Version

The current, stable version of this plugin is v0.6a.

Requirements

  • This plugin requires WordPress. It might work with WordPressMU versions older than 3.0, but it has not been tested with those.
  • This plugin requires WordPress to be setup in Multi Site mode. It will not do anything at all if the Multi Site functions are not enabled.
  • This plugin also requires PHP5. Some attempt has been made to make it compatible with PHP4, but it has not been tested in that environment.

Download

You can download this plugin from the WordPress plugin repository.

Installation

  1. Download and unzip the extended-super-admins package.
  2. Upload the ‘extended-super-admins’ folder to the ‘/wp-content/plugins/’ directory
  3. Activate the plugin through the ‘Plugins’ menu in WordPress
  4. Promote any users that you want to manage through this plugin to Super Admin status
  5. Begin creating new Super Admin roles on the settings page for this plugin, and assign the appropriate users to those new roles

Adding a New Role

  1. Go to the “Extended Super Admins” options page
    • If you are using WordPress 3.0.x, this will be part of the “Super Admins” menu in the administration area.
    • If you are using WordPress 3.1.x, this will be in the “Network Admin” area, under the “Settings” menu.
  2. Enter the name of the new role.
  3. Decide which capabilities to remove from any user assigned to this role, and check off each of those capabilities.
  4. Select the users that should be assigned to this role from the list.

Frequently Asked Questions

How do I let you know if I find a bug?
Please either hit me up on Twitter @cgrymala, report the issue in the WordPress Support Forums or post a comment on my website. If you e-mail me, please include “Extended Super Admins” in the subject line of the message. Thanks.
Can I use this plugin to grant extra capabilities to user(s)?
No. This plugin is only capable of removing privileges from a user. It cannot add extra privileges.
Can I use this plugin on a non-Multi-Site WordPress?
No. This plugin would be pointless for non-Multi-Site installations. It might actually generate errors if you try to use it on a site that doesn’t have the multi-site capabilities turned on.
Can a user belong to more than one role?
At this time, you can assign a user to multiple roles, but only the first role in the list will have an effect on that user’s capabilities. In a future version, I will look into allowing multiple roles to modify a user’s capabilities.
How do I know what the capabilities actually do?
You can find descriptions of most of the capabilities in the WordPress codex. The codex information is actually retrieved automatically and included on the settings page for this plugin. Wherever you see (?) next to a capability name, you can click on that to view the information from the codex. Unfortunately, there is no definitive explanation for each and every capability, so you may have to do some testing and play around with things a bit to get things working exactly the way you want. Once you figure out what the capability actually does, go ahead and modify the codex to save the next person some hassle.
How does this plugin integrate with the WordPress Multi Network plugin from John James Jacoby or the Networks for WordPress plugin from David Dean?
If either of those plugins is active, this plugin will attempt to use and save any and all of its settings across all of the networks. There is currently no way, with WPMN or Networks for WordPress activated, to use different settings on individual networks.
How do I keep the users with the modified roles from being able to modify this plugin’s settings?
This plugin creates a new capability called “manage_esa_options”. If you do not want a user to be able to modify the settings for this plugin, simply revoke that capability from any users that belong to the modified role(s).

To Do

  1. Make the Codex retrieval more efficient (find a better way to cache the information and a better way to compare it to Codex revisions)
  2. Continue to improve the UI for the plugin to make it as user-friendly as possible

Known Issues

  1. On occasion, the JavaScript in this plugin might cause CPU usage to spike and freeze the browser momentarily

Things to Note

So far, this plugin has only been tested on a handful of WordPress installations; all my own. Therefore, it is entirely possible that there could be serious bugs when used in different settings. At this time, I am seeking people to test the plugin, so please report any issues you encounter. Thank you.

Also, if you are updating from the original public alpha of this plugin, you will need to delete the old version before installing this version. The folder name changed from extended_super_admins in the initial release to extended-super-admins in newer versions.

If you downloaded and installed this plugin from the WordPress repository, you will not need to do so, as the folder name changed when adding this plugin to that repository.

License and Credits

This plugin was developed by Curtiss Grymala for the University of Mary Washington. It is licensed under the GPL2, which basically means you can take it, break it and change it any way you want, as long as the original credit and license information remains somewhere in the package.

Screen Shots

Changelog

0.6a

  • The JavaScript for this plugin has been optimized quite a bit
  • The admin options page now utilizes the standard WordPress meta box interface rather than using a custom interface (thanks to RavanH for the suggestion)
  • Updated the way the Codex dialogs are displayed on-screen

0.5a

  • Fixed bugs that caused roles not to be deleted properly if they had been added without all criteria specified

0.4a

  • Plugin now retrieves information about each capability (where available) from the WordPress Codex

0.3a

  • The “stable” copy of 0.2a was missing all subfolders. Corrected this issue.

0.2a

  • Corrected a version inconsistency between the readme file and the main plugin file. No substantial changes were made to the functionality of this plugin.

0.1

  • This is the first version.

10 thoughts on “Extended Super Admins

  1. Pingback: Extended Super Admins Plugin | Wordpress Plugins

  2. Pingback: Retrieving Information from the WordPress Codex

  3. Sensei Mitch

    Great plug-in however I am having an issue. When I create a new role it assigns it to all users in the list. I have selected one user id out of 3 under “Users That Should Have This Role” however after I save it all 3 users show up in the list.

    Any assistance is greatly appreciated.

    Thanks

    Reply
    1. Curtiss Grymala Post author

      Which version of the plugin are you using? I’m assuming you’re using 0.6a? Are you using it in a normal WordPress installation, a multisite installation or are you using it with one of the multinetwork plugins (and if so, which one)?

      I’ll see if I can reproduce the issue, but it will help to know more about your setup. Thanks.

      Reply
  4. justen

    What determines the capabilities that it pulls out and allows for managing on the settings page? For example, I’m looking at installing on a number of Networks but for each one the options of capabilities available to manage seems different. Can’t figure out where/how the variation comes in and how I can standardize so we see all on each install. Thanks for your good work.

    Reply
    1. Peter Ford

      I’m finding the same thing. I want to remove the ‘add plugins’ and ‘add themes’ capabilities but they appear as options on some installs but not others.

      Thanks for your work on this plugin :-)

      Reply
      1. Curtiss Grymala Post author

        Sorry. I thought I had answered this question already; but I just realized that I only answered it through email.

        The capabilities displayed on the plugin management page are pulled from the user that’s managing the settings. WordPress doesn’t really have any place in which it stores a comprehensive list of capabilities (partially because some capabilities could potentially be added for a single user on a single page, so there would be no reliable way to catalog them all). Therefore, in order to gather the list of capabilities, this plugin simply retrieves the list of capabilities that the current user has.

        If you are simply a Super Admin, without any role on the root site, you will only see the network capabilities; as WordPress doesn’t explicitly assign any capabilities to the Super Admin user. However, if you make yourself an Administrator on the root site, you should see quite a few more capabilities appear on the plugin management page.

        Reply
  5. Manzur Murshed

    HI, I used the Extended Super Admins plugin on my newly built WordPress multisite in test environment. It works fine. But when I use the plugin on my production site it shows the bellow error massage, while i try to go ‘settings’ after network activate.

    500 – Internal server error.
    There is a problem with the resource you are looking for, and it cannot be displayed.

    Note: Both servers are identically same and running on Win 2008 r2, IIS7, PHP and MySQL.

    Any help will be highly appreciated. Thanks

    Regards
    Manzur Murshed

    Reply
    1. Curtiss Grymala Post author

      If you are still trying to investigate this issue, the best thing you can do is to examine the error logs to see what specific error was generated when the 500 error occurred. That will help figure out what’s happening. Thanks.

      Reply

Leave a Reply

Your email address will not be published. Required fields are marked *

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>