Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 4 additions & 1 deletion features/user.feature
Original file line number Diff line number Diff line change
Expand Up @@ -352,7 +352,10 @@ Feature: Manage WordPress users
| roles | author |

When I run `wp user remove-role 1`
Then STDOUT should not be empty
Then STDOUT should contain:
"""
Success: Removed all roles from admin (1) on
"""

When I run `wp user get 1`
Then STDOUT should be a table containing rows:
Expand Down
22 changes: 16 additions & 6 deletions src/User_Command.php
Original file line number Diff line number Diff line change
Expand Up @@ -807,15 +807,25 @@ public function add_role( $args, $assoc_args ) {
* : User ID, user email, or user login.
*
* [<role>...]
* : Remove the specified role(s) from the user.
* : Remove the specified role(s) from the user. If not passed, all roles are
* removed from the user; on multisite, this removes the user from the current
* site/blog.
*
* ## EXAMPLES
*
* $ wp user remove-role 12 author
* Success: Removed 'author' role for johndoe (12).
* Success: Removed 'author' role from johndoe (12).
*
* $ wp user remove-role 12 author editor
* Success: Removed 'author', 'editor' roles for johndoe (12).
* Success: Removed 'author', 'editor' roles from johndoe (12).
*
* # On single-site: removes all roles from the user
* $ wp user remove-role 12
* Success: Removed all roles from johndoe (12) on http://example.com.
*
* # On multisite: removes the user from the current site/blog
* $ wp user remove-role 12
* Success: Removed johndoe (12) from http://example.com.
*
* @subcommand remove-role
*/
Expand All @@ -837,14 +847,14 @@ public function remove_role( $args, $assoc_args ) {
$label = count( $roles ) > 1 ? 'roles' : 'role';
WP_CLI::success( "Removed '{$message}' {$label} from {$user->user_login} ({$user->ID})." );
} else {
// Multisite
$site_url = site_url();
if ( function_exists( 'remove_user_from_blog' ) ) {
remove_user_from_blog( $user->ID, get_current_blog_id() );
WP_CLI::success( "Removed {$user->user_login} ({$user->ID}) from {$site_url}." );
} else {
$user->remove_all_caps();
WP_CLI::success( "Removed all roles from {$user->user_login} ({$user->ID}) on {$site_url}." );
}

WP_CLI::success( "Removed {$user->user_login} ({$user->ID}) from " . site_url() . '.' );
}
}

Expand Down