<?php require_once dirname(__DIR__) . DIRECTORY_SEPARATOR . "vendor" . DIRECTORY_SEPARATOR . "autoload.php"; use RestService\Utils\Config; use OAuth\PdoOAuthStorage; use OAuth\ClientRegistration; use RestService\Utils\Json; $config = new Config(dirname(__DIR__) . DIRECTORY_SEPARATOR . "config" . DIRECTORY_SEPARATOR . "oauth.ini"); $storage = new PdoOAuthStorage($config); $storage->initDatabase(); if ($argc !== 2) { echo "ERROR: specify manifest file or URL to parse" . PHP_EOL; die; } $manifestFile = $argv[1]; $fileContents = file_get_contents($manifestFile); $data = Json::dec($fileContents); if (NULL === $data || !is_array($data)) { echo "ERROR: manifest seems to be in wrong format" . PHP_EOL; die; } foreach ($data as $d) { // go over all app entries if (FALSE === $storage->getClient($d['key'])) { echo "Adding '" . $d['name'] . "'..." . PHP_EOL; $x = array("id" => $d['key'], "name" => $d['name'], "description" => $d['description'], "secret" => NULL, "type" => "user_agent_based_application", "icon" => $d['icons']['128'], "allowed_scope" => implode(" ", $d['permissions']), "redirect_uri" => $d['app']['launch']['web_url']); $y = ClientRegistration::fromArray($x); $storage->addClient($y->getClientAsArray()); } }
<?php require_once dirname(__DIR__) . DIRECTORY_SEPARATOR . "vendor" . DIRECTORY_SEPARATOR . "autoload.php"; use RestService\Utils\Config; use OAuth\PdoOAuthStorage; use OAuth\ClientRegistration; use RestService\Utils\Json; $config = new Config(dirname(__DIR__) . DIRECTORY_SEPARATOR . "config" . DIRECTORY_SEPARATOR . "oauth.ini"); $storage = new PdoOAuthStorage($config); if ($argc !== 2) { echo "ERROR: please specify file with client registration information" . PHP_EOL; die; } $registrationFile = $argv[1]; if (!file_exists($registrationFile) || !is_file($registrationFile) || !is_readable($registrationFile)) { echo "ERROR: unable to read client registration file" . PHP_EOL; die; } $registration = Json::dec(file_get_contents($registrationFile)); foreach ($registration as $r) { // first load it in ClientRegistration object to check it... $cr = ClientRegistration::fromArray($r); if (FALSE === $storage->getClient($cr->getId())) { // does not exist yet, install echo "Adding '" . $cr->getName() . "'..." . PHP_EOL; $storage->addClient($cr->getClientAsArray()); } }