/** */ public function createOverrideMenu(PostmanWizardSocket $socket, $winningRecommendation, $userSocketOverride, $userAuthOverride) { $overrideItem = parent::createOverrideMenu($socket, $winningRecommendation, $userSocketOverride, $userAuthOverride); // push the authentication options into the $overrideItem structure $overrideItem['auth_items'] = array(array('selected' => true, 'name' => __('API Key', Postman::TEXT_DOMAIN), 'value' => 'api_key')); return $overrideItem; }
/** */ public function createOverrideMenu(PostmanWizardSocket $socket, $winningRecommendation, $userSocketOverride, $userAuthOverride) { $overrideItem = parent::createOverrideMenu($socket, $winningRecommendation, $userSocketOverride, $userAuthOverride); $selected = $overrideItem['selected']; // only smtp can have multiple auth options $overrideAuthItems = array(); $passwordMode = false; $oauth2Mode = false; $noAuthMode = false; if (isset($userAuthOverride) || isset($userSocketOverride)) { if ($userAuthOverride == 'password') { $passwordMode = true; } elseif ($userAuthOverride == 'oauth2') { $oauth2Mode = true; } else { $noAuthMode = true; } } else { if ($winningRecommendation['display_auth'] == 'password') { $passwordMode = true; } elseif ($winningRecommendation['display_auth'] == 'oauth2') { $oauth2Mode = true; } else { $noAuthMode = true; } } if ($selected) { if ($socket->auth_crammd5 || $socket->auth_login || $socket->authPlain) { array_push($overrideAuthItems, array('selected' => $passwordMode, 'name' => __('Password (requires username and password)', Postman::TEXT_DOMAIN), 'value' => 'password')); } if ($socket->auth_xoauth || $winningRecommendation['auth'] == 'oauth2') { array_push($overrideAuthItems, array('selected' => $oauth2Mode, 'name' => __('OAuth 2.0 (requires Client ID and Client Secret)', Postman::TEXT_DOMAIN), 'value' => 'oauth2')); } if ($socket->auth_none) { array_push($overrideAuthItems, array('selected' => $noAuthMode, 'name' => __('None', Postman::TEXT_DOMAIN), 'value' => 'none')); } // marks at least one item as selected if none are selected $atLeastOneSelected = false; $firstItem = null; // don't use variable reference see http://stackoverflow.com/questions/15024616/php-foreach-change-original-array-values foreach ($overrideAuthItems as $key => $field) { if (!$firstItem) { $firstItem = $key; } if ($field['selected']) { $atLeastOneSelected = true; } } if (!$atLeastOneSelected) { $this->logger->debug('nothing selected - forcing a selection on the *first* overrided auth item'); $overrideAuthItems[$firstItem]['selected'] = true; } // push the authentication options into the $overrideItem structure $overrideItem['auth_items'] = $overrideAuthItems; } return $overrideItem; }