Magento 2 Documentation  2.3
Documentation for Magento 2 CMS v2.3 (December 2018)
Public Member Functions | Data Fields | Protected Attributes
PackagesAuth Class Reference

Public Member Functions

 __construct (\Zend\ServiceManager\ServiceLocatorInterface $serviceLocator, \Magento\Framework\HTTP\Client\Curl $curl, \Magento\Framework\Filesystem $filesystem, \Magento\Framework\Serialize\Serializer\Json $serializer=null)
 
 getCredentialBaseUrl ()
 
 checkCredentials ($token, $secretKey)
 
 getAuthJsonData ()
 
 removeCredentials ()
 
 saveAuthJson ($username, $password)
 

Data Fields

const KEY_HTTPBASIC = 'http-basic'
 
const KEY_USERNAME = 'username'
 
const KEY_PASSWORD = 'password'
 
const PATH_TO_AUTH_FILE = 'auth.json'
 
const PATH_TO_PACKAGES_FILE = 'packages.json'
 

Protected Attributes

 $serviceLocator
 
 $curlClient
 
 $urlPrefix = 'https://'
 

Detailed Description

Class PackagesAuth, checks, saves and removes auth details related to packages.

Definition at line 15 of file PackagesAuth.php.

Constructor & Destructor Documentation

◆ __construct()

__construct ( \Zend\ServiceManager\ServiceLocatorInterface  $serviceLocator,
\Magento\Framework\HTTP\Client\Curl  $curl,
\Magento\Framework\Filesystem  $filesystem,
\Magento\Framework\Serialize\Serializer\Json  $serializer = null 
)
Parameters
\Zend\ServiceManager\ServiceLocatorInterface$serviceLocator
\Magento\Framework\HTTP\Client\Curl$curl
\Magento\Framework\Filesystem$filesystem
\Magento\Framework\Serialize\Serializer\Json | null$serializer
Exceptions

Definition at line 64 of file PackagesAuth.php.

69  {
70  $this->serviceLocator = $serviceLocator;
71  $this->curlClient = $curl;
72  $this->filesystem = $filesystem;
74  ->get(\Magento\Framework\Serialize\Serializer\Json::class);
75  }
$filesystem

Member Function Documentation

◆ checkCredentials()

checkCredentials (   $token,
  $secretKey 
)
Parameters
string$token
string$secretKey
Returns
string
Exceptions

Definition at line 100 of file PackagesAuth.php.

101  {
102  $response = ['success' => true];
103  $serviceUrl = $this->getPackagesJsonUrl();
104  $this->curlClient->setCredentials($token, $secretKey);
105  try {
106  $this->curlClient->post($serviceUrl, []);
107  if ($this->curlClient->getStatus() == 200) {
108  $packagesInfo = $this->curlClient->getBody();
109  $directory = $this->filesystem->getDirectoryWrite(DirectoryList::COMPOSER_HOME);
110  $directory->writeFile(self::PATH_TO_PACKAGES_FILE, $packagesInfo);
111  } else {
112  $response = ['success' => false, 'message' => 'Bad credentials'];
113  }
114  } catch (\Exception $e) {
115  $response = ['success' => false, 'message' => $e->getMessage()];
116  }
117  return $this->serializer->serialize($response);
118  }
$response
Definition: 404.php:11

◆ getAuthJsonData()

getAuthJsonData ( )

Gets auth.json file

Returns
array|false

Definition at line 125 of file PackagesAuth.php.

126  {
127  try {
128  $authJson = $this->getAuthJson();
129  $serviceUrl = $this->getCredentialBaseUrl();
130  $authJsonData = isset($authJson['http-basic'][$serviceUrl]) ? $authJson['http-basic'][$serviceUrl] : false;
131  } catch (\Exception $e) {
132  $authJsonData = false;
133  }
134  return $authJsonData;
135  }

◆ getCredentialBaseUrl()

getCredentialBaseUrl ( )
Returns
string

Definition at line 88 of file PackagesAuth.php.

89  {
90  $config = $this->serviceLocator->get('config');
91  return $config['marketplace']['check_credentials_url'];
92  }
$config
Definition: fraud_order.php:17

◆ removeCredentials()

removeCredentials ( )

Removes credentials from auth.json

Returns
bool
Exceptions

Definition at line 163 of file PackagesAuth.php.

164  {
165  $serviceUrl = $this->getCredentialBaseUrl();
166  $directory = $this->filesystem->getDirectoryWrite(DirectoryList::COMPOSER_HOME);
167  if ($directory->isExist(self::PATH_TO_AUTH_FILE) && $directory->isReadable(self::PATH_TO_AUTH_FILE)) {
168  $authJsonData = $this->getAuthJson();
169  if (isset($authJsonData['http-basic']) && isset($authJsonData['http-basic'][$serviceUrl])) {
170  unset($authJsonData['http-basic'][$serviceUrl]);
171  if ($authJsonData === ['http-basic' => []]) {
172  return $directory->delete(self::PATH_TO_AUTH_FILE);
173  } else {
174  $data = json_encode($authJsonData, JSON_UNESCAPED_SLASHES|JSON_PRETTY_PRINT);
175  return $data !== false && $directory->writeFile(self::PATH_TO_AUTH_FILE, $data);
176  }
177  }
178  }
179  return false;
180  }

◆ saveAuthJson()

saveAuthJson (   $username,
  $password 
)

Saves auth.json file

Parameters
string$username
string$password
Returns
bool
Exceptions

Definition at line 190 of file PackagesAuth.php.

191  {
192  $directory = $this->filesystem->getDirectoryWrite(DirectoryList::COMPOSER_HOME);
193  $authContent = [
195  $this->getCredentialBaseUrl() => [
196  PackagesAuth::KEY_USERNAME => "$username",
197  PackagesAuth::KEY_PASSWORD => "$password"
198  ]
199  ]
200  ];
201  $json = new \Zend\View\Model\JsonModel($authContent);
202  $json->setOption('prettyPrint', true);
203  $jsonContent = $json->serialize();
204 
205  return $directory->writeFile(self::PATH_TO_AUTH_FILE, $jsonContent);
206  }

Field Documentation

◆ $curlClient

$curlClient
protected

Definition at line 40 of file PackagesAuth.php.

◆ $serviceLocator

$serviceLocator
protected

Definition at line 35 of file PackagesAuth.php.

◆ $urlPrefix

$urlPrefix = 'https://'
protected

Definition at line 45 of file PackagesAuth.php.

◆ KEY_HTTPBASIC

const KEY_HTTPBASIC = 'http-basic'

#+ Composer auth.json keys

Definition at line 20 of file PackagesAuth.php.

◆ KEY_PASSWORD

const KEY_PASSWORD = 'password'

Definition at line 22 of file PackagesAuth.php.

◆ KEY_USERNAME

const KEY_USERNAME = 'username'

Definition at line 21 of file PackagesAuth.php.

◆ PATH_TO_AUTH_FILE

const PATH_TO_AUTH_FILE = 'auth.json'

#- #+ Filenames for auth and package info

Definition at line 28 of file PackagesAuth.php.

◆ PATH_TO_PACKAGES_FILE

const PATH_TO_PACKAGES_FILE = 'packages.json'

Definition at line 29 of file PackagesAuth.php.


The documentation for this class was generated from the following file: