Remove Dashboard Access

Description

  • Limit Dashboard access to admins only, admins + editors, admins + editors + authors, or limit by specific capability.
  • Choose your own redirect URL
  • Optionally allow user profile access
  • Optionally display a message on the login screen
  • (more info)

Contribute to RDA

This plugin is in active development on GitHub. Pull requests are welcome!
Capabilities:

  • You can limit Dashboard access to Admins only, Editors or above, Authors or above, or by selecting a capability. More information on WordPress’ default roles and capabilities can be found here: https://codex.wordpress.org/Roles_and_Capabilities

User Profile Access:

  • You can optionally allow all users the ability to edit their profiles in the Dashboard. Users lacking the chosen capability won’t be able to access any other sections of the Dashboard.

Login Message:

  • Supply a message to display on the login screen. Leaving this blank disables the message.

Hiding other plugins/themes’ Toolbar menus:

  • Remove Dashboard Access removes some built-in WordPress Toolbar menus by default, but can be extended to hide menus from other plugins or themes via two filters: rda_toolbar_nodes (viewing from the admin), and rda_frontend_toolbar_nodes (viewing from the front-end).

How to find the menu (node) id:

  • In the HTML page source, look for the <li> container for the menu node you’re targeting. It should take the form of <li id="wp-admin-bar-SOMETHING">
  • In <li id="wp-admin-bar-SOMETHING">, you want the “SOMETHING” part.

How to filter the disallowed Toolbar nodes on the front-end:

/**
 * Filter hidden Toolbar menus on the front-end.
 *
 * @param array $ids Toolbar menu IDs.
 * @return array (maybe) filtered front-end Toolbar menu IDs.
 */
function wpdocs_hide_some_toolbar_menu( $ids ) {
    $ids[] = 'SOMETHING';
    return $ids;
}
add_filter( 'rda_frontend_toolbar_nodes', 'wpdocs_hide_some_toolbar_menu' );

Common plugin Toolbar menus and their ids:

Debug Mode

To view debugging information on the Settings > Reading screen, visit:

example.com/options-general.php?page=dashboard-access&rda_debug=1

Screenshots

  • The Dashboard Access Controls settings in the Settings > Dashboard Access screen.
  • Allow users to access their profile settings (only).
  • Optional login message.

Installation

  1. Search ‘Remove Dashboard Access’ from the Install Plugins screen.
  2. Install plugin, click Activate.

FAQ

What happens to disallowed users who try to access to the Dashboard?

Users lacking the chosen capability or role(s) will be redirected to the URL set in Settings > Dashboard Access.

Why haven’t you added an option to disable the WordPress Toolbar?

The Toolbar contains certain important links (even for disallowed users) such as for accessing to the profile editor and/or logging out. Plus, there are many plugins out there for disabling the Toolbar if you really want to.

Can I disable the redirection/profile-editing controls without disabling the plugin?

No. Disable the plugin if you don’t wish to leverage the functionality.

Reviews

வைகாசி 4, 2020
Hi, Although this plugin may be heading down the road of Abandonment, it is still a great plugin. Been looking for, and testing plugins all day before coming across this one If totally abandon, hope some else will take over this very useful plugin; even a paid version. What a shame for such a great plugin to go up in flames.
சித்திரை 30, 2020
Al principio, todo parecía ir bien, hasta que al probar una funcionalidad de uno de nuestros plugins, comenzó a fallar y al principio no sabíamos porque, hasta que finalmente después de ir deshabilitando uno por uno los plugins dimos con que el problema era de este. Nos pareció raro pues... aparentemente tan solo deberia de ocultar o no permitir ver el dashboard, es un plugin simple, pero parece que hace y causa otras cosas que no nos gustan demasiado. Además, tras oír otros comentarios donde se indican otros defectos, temo por la seguridad de mi sitio. Por lo tanto, buscaremos otra alternativa a este plugin. Una pena, pues, era sencillo y hacía "en teoría", lo que se pedía. Sospechamos que la causa del problema con este plugin es la redirección forzada, la cual, no se puede evitar, pero no estamos seguros... Esto es algo que tiene que arreglar el desarrollador. Esperemos noticias pronto del desarrollador.
சித்திரை 20, 2020
It broke my website had confirmed it with my wordpress hosting server. It also blocks you off from your admin panel. Not worth it.Contacted customer service no reply.
Read all 67 reviews

Contributors & Developers

“Remove Dashboard Access” is open source software. The following people have contributed to this plugin.

Contributors

“Remove Dashboard Access” has been translated into 3 locales. Thank you to the translators for their contributions.

Translate “Remove Dashboard Access” into your language.

Interested in development?

Browse the code, check out the SVN repository, or subscribe to the development log by RSS.

Changelog

1.1.3

  • Fixed a compatibility issue with bbPress and the media grid view.

1.1.2

  • Bump tested-up-to to 4.1.0
  • Miscellaneous readme changes.

1.1.1

Bug Fix:

  • Move options back to Settings > Dashboard Access screen to resolve conflict with page_on_front UI.

1.1

Enhancements:

  • Instantiate as a static instance for better modularity
  • Move Dashboard Access Controls settings to Settings > Dashboard Access
  • Add optional login message option
  • Add better settings sanitization
  • New Filter: rda_default_caps_for_role – Filter default roles for Admins, Editors, and Authors
  • New Debug Mode

Bug Fixes:

  • Remove unnecessarily stringent URL mask on the redirect URL option

1.0

  • Complete rewrite!
  • New: Limit dashboard access for Admins only or by capability
  • New: Allow/disallow edit-profile access
  • New: Choose your own redirect URL
  • New Filter: rda_default_access_cap – Change default access capability
  • New Filter: rda_toolbar_nodes – Filter which back-end Toolbar nodes are hidden
  • New Filter: rda_frontend_toolbar_nodes – Filter which front-end Toolbar nodes are hidden

0.4

  • Refined DOING_AJAX check for logged-out users, props @nacin and @BoiteAWeb

0.3

  • Changed cap to manage_options, replaced PHP_SELF with DOING_AJAX

0.2

  • Replaced preg_match with admin-ajax test. Added compatibility with rewritten dashboard URLs.

0.1

  • Submitted to repository