Code Duplication    Length = 7-9 lines in 2 locations

includes/auth/AuthManager.php 2 locations

@@ 1157-1163 (lines=7) @@
1154
			// Step 0: Prepare and validate the input
1155
1156
			$user = User::newFromName( $state['username'], 'creatable' );
1157
			if ( !is_object( $user ) ) {
1158
				$session->remove( 'AuthManager::accountCreationState' );
1159
				$this->logger->debug( __METHOD__ . ': Invalid username', [
1160
					'user' => $state['username'],
1161
				] );
1162
				return AuthenticationResponse::newFail( wfMessage( 'noname' ) );
1163
			}
1164
1165
			if ( $state['creatorid'] ) {
1166
				$creator = User::newFromId( $state['creatorid'] );
@@ 1175-1183 (lines=9) @@
1172
			// Avoid account creation races on double submissions
1173
			$cache = \ObjectCache::getLocalClusterInstance();
1174
			$lock = $cache->getScopedLock( $cache->makeGlobalKey( 'account', md5( $user->getName() ) ) );
1175
			if ( !$lock ) {
1176
				// Don't clear AuthManager::accountCreationState for this code
1177
				// path because the process that won the race owns it.
1178
				$this->logger->debug( __METHOD__ . ': Could not acquire account creation lock', [
1179
					'user' => $user->getName(),
1180
					'creator' => $creator->getName(),
1181
				] );
1182
				return AuthenticationResponse::newFail( wfMessage( 'usernameinprogress' ) );
1183
			}
1184
1185
			// Permissions check
1186
			$status = $this->checkAccountCreatePermissions( $creator );