[
MAINHACK
]
Mail Test
BC
Config Scan
HOME
Create...
New File
New Folder
Viewing / Editing File: Magento.php
<?php namespace League\OAuth1\Client\Server; use League\OAuth1\Client\Credentials\TemporaryCredentials; use League\OAuth1\Client\Credentials\TokenCredentials; use League\OAuth1\Client\Signature\SignatureInterface; /** * Magento OAuth 1.0a. * * This class reflects two Magento oddities: * - Magento expects the oauth_verifier to be located in the header instead of * the post body. * - Magento expects the Accept to be located in the header * * Additionally, this is initialized with two additional parameters: * - Boolean 'admin' to use the admin vs customer * - String 'host' with the path to the magento host */ class Magento extends Server { /** * Admin url. * * @var string */ protected $adminUrl; /** * Base uri. * * @var string */ protected $baseUri; /** * Server is admin. * * @var bool */ protected $isAdmin = false; /** * oauth_verifier stored for use with. * * @var string */ private $verifier; /** * @inheritDoc */ public function __construct($clientCredentials, SignatureInterface $signature = null) { parent::__construct($clientCredentials, $signature); if (is_array($clientCredentials)) { $this->parseConfigurationArray($clientCredentials); } } /** * @inheritDoc */ public function urlTemporaryCredentials() { return $this->baseUri . '/oauth/initiate'; } /** * @inheritDoc */ public function urlAuthorization() { return $this->isAdmin ? $this->adminUrl : $this->baseUri . '/oauth/authorize'; } /** * @inheritDoc */ public function urlTokenCredentials() { return $this->baseUri . '/oauth/token'; } /** * @inheritDoc */ public function urlUserDetails() { return $this->baseUri . '/api/rest/customers'; } /** * @inheritDoc */ public function userDetails($data, TokenCredentials $tokenCredentials) { if ( ! is_array($data) || ! count($data)) { throw new \Exception('Not possible to get user info'); } $id = key($data); $data = current($data); $user = new User(); $user->uid = $id; $mapping = [ 'email' => 'email', 'firstName' => 'firstname', 'lastName' => 'lastname', ]; foreach ($mapping as $userKey => $dataKey) { if ( ! isset($data[$dataKey])) { continue; } $user->{$userKey} = $data[$dataKey]; } $user->extra = array_diff_key($data, array_flip($mapping)); return $user; } /** * @inheritDoc */ public function userUid($data, TokenCredentials $tokenCredentials) { return key($data); } /** * @inheritDoc */ public function userEmail($data, TokenCredentials $tokenCredentials) { $data = current($data); if ( ! isset($data['email'])) { return null; } return $data['email']; } /** * @inheritDoc */ public function userScreenName($data, TokenCredentials $tokenCredentials) { return null; } /** * @inheritDoc */ public function getTokenCredentials(TemporaryCredentials $temporaryCredentials, $temporaryIdentifier, $verifier) { $this->verifier = $verifier; return parent::getTokenCredentials($temporaryCredentials, $temporaryIdentifier, $verifier); } /** * @inheritDoc */ protected function additionalProtocolParameters() { return [ 'oauth_verifier' => $this->verifier, ]; } protected function getHttpClientDefaultHeaders() { $defaultHeaders = parent::getHttpClientDefaultHeaders(); // Accept header is required, @see Mage_Api2_Model_Renderer::factory $defaultHeaders['Accept'] = 'application/json'; return $defaultHeaders; } /** * Parse configuration array to set attributes. * * @param array $configuration * * @return void * * @throws \Exception */ private function parseConfigurationArray(array $configuration = []) { if ( ! isset($configuration['host'])) { throw new \Exception('Missing Magento Host'); } $url = parse_url($configuration['host']); $this->baseUri = sprintf('%s://%s', $url['scheme'], $url['host']); if (isset($url['port'])) { $this->baseUri .= ':' . $url['port']; } if (isset($url['path'])) { $this->baseUri .= '/' . trim($url['path'], '/'); } $this->isAdmin = ! empty($configuration['admin']); if ( ! empty($configuration['adminUrl'])) { $this->adminUrl = $configuration['adminUrl'] . '/oauth_authorize'; } else { $this->adminUrl = $this->baseUri . '/admin/oauth_authorize'; } } }
Save Changes
Cancel / Back
Close ×
Server Info
Hostname: server1.winmanyltd.com
Server IP: 203.161.60.52
PHP Version: 8.3.27
Server Software: Apache
System: Linux server1.winmanyltd.com 4.18.0-553.22.1.el8_10.x86_64 #1 SMP Tue Sep 24 05:16:59 EDT 2024 x86_64
HDD Total: 117.98 GB
HDD Free: 59.8 GB
Domains on IP: N/A (Requires external lookup)
System Features
Safe Mode:
Off
disable_functions:
None
allow_url_fopen:
On
allow_url_include:
Off
magic_quotes_gpc:
Off
register_globals:
Off
open_basedir:
None
cURL:
Enabled
ZipArchive:
Enabled
MySQLi:
Enabled
PDO:
Enabled
wget:
Yes
curl (cmd):
Yes
perl:
Yes
python:
Yes (py3)
gcc:
Yes
pkexec:
Yes
git:
Yes
User Info
Username: eliosofonline
User ID (UID): 1002
Group ID (GID): 1003
Script Owner UID: 1002
Current Dir Owner: 1002