Index: src/wp-includes/admin-bar.php
===================================================================
--- src/wp-includes/admin-bar.php	(revision 40457)
+++ src/wp-includes/admin-bar.php	(working copy)
@@ -718,8 +718,9 @@
 	if ( isset( $actions['post-new.php?post_type=content'] ) )
 		$actions['post-new.php?post_type=content'][1] = 'add-new-content';
 
-	if ( current_user_can( 'create_users' ) || current_user_can( 'promote_users' ) )
+	if ( current_user_can( 'create_users' ) || ( is_multisite() && current_user_can( 'promote_users' ) ) ) {
 		$actions[ 'user-new.php' ] = array( _x( 'User', 'add new from admin bar' ), 'new-user' );
+	}
 
 	if ( ! $actions )
 		return;
Index: tests/phpunit/tests/adminbar.php
===================================================================
--- tests/phpunit/tests/adminbar.php	(revision 40457)
+++ tests/phpunit/tests/adminbar.php	(working copy)
@@ -551,7 +551,86 @@
 		$this->assertNull( $node );
 	}
 
+	public function map_meta_cap_grant_create_users( $caps, $cap ) {
+		if ( 'create_users' === $cap ) {
+			$caps = array( 'exist' );
+		}
+
+		return $caps;
+	}
+
+	public function map_meta_cap_deny_create_users( $caps, $cap ) {
+		if ( 'create_users' === $cap ) {
+			$caps = array( 'do_not_allow' );
+		}
+
+		return $caps;
+	}
+
+	public function map_meta_cap_grant_promote_users( $caps, $cap ) {
+		if ( 'promote_users' === $cap ) {
+			$caps = array( 'exist' );
+		}
+
+		return $caps;
+	}
+
+	public function map_meta_cap_deny_promote_users( $caps, $cap ) {
+		if ( 'promote_users' === $cap ) {
+			$caps = array( 'do_not_allow' );
+		}
+
+		return $caps;
+	}
+
 	/**
+	 * @ticket 39252
+	 */
+	public function test_new_user_link_for_user_with_create_users() {
+		add_filter( 'map_meta_cap', array( $this, 'map_meta_cap_grant_create_users' ), 10, 2 );
+		add_filter( 'map_meta_cap', array( $this, 'map_meta_cap_deny_promote_users' ), 10, 2 );
+
+		$admin_bar = new WP_Admin_Bar;
+		wp_admin_bar_new_content_menu( $admin_bar );
+
+		// 'create_users' is sufficient in single- and multisite.
+		$this->assertArrayHasKey( 'new-user', (array) $admin_bar->get_nodes() );
+	}
+
+	/**
+	 * @ticket 39252
+	 */
+	public function test_new_user_link_for_user_with_promote_users() {
+		add_filter( 'map_meta_cap', array( $this, 'map_meta_cap_deny_create_users' ), 10, 2 );
+		add_filter( 'map_meta_cap', array( $this, 'map_meta_cap_grant_promote_users' ), 10, 2 );
+
+		$admin_bar = new WP_Admin_Bar;
+		wp_admin_bar_new_content_menu( $admin_bar );
+
+		$nodes = (array) $admin_bar->get_nodes();
+
+		if ( is_multisite() ) {
+			$this->assertArrayHasKey( 'new-user', $nodes );
+		} else {
+			// 'promote_users' is insufficient in single-site.
+			$this->assertArrayNotHasKey( 'new-user', $nodes );
+		}
+	}
+
+	/**
+	 * @ticket 39252
+	 */
+	public function test_new_user_link_for_user_without_create_or_promote_users() {
+		add_filter( 'map_meta_cap', array( $this, 'map_meta_cap_deny_create_users' ), 10, 2 );
+		add_filter( 'map_meta_cap', array( $this, 'map_meta_cap_deny_promote_users' ), 10, 2 );
+
+		$admin_bar = new WP_Admin_Bar;
+		wp_admin_bar_new_content_menu( $admin_bar );
+
+		$this->assertArrayNotHasKey( 'new-user', (array) $admin_bar->get_nodes() );
+	}
+
+	/**
 	 * @ticket 30937
 	 * @covers ::wp_admin_bar_customize_menu
 	 */
