File manager - Edit - /home/jardides/www/Jardi-design/images/administrator/oauth2.tar
Back
js/setting-admin.js 0000604 00000000500 15247130120 0010243 0 ustar 00 $(document).ready(function () { $('.show-oauth-credentials').click(function() { var row = $(this).parent(); var code = $(row).find('code'); if(code.text() === '****') { code.text(row.data('value')); $(this).css('opacity', 0.9); } else { code.text('****'); $(this).css('opacity', 0.3); } }) }); css/setting-admin.css 0000604 00000000122 15247130120 0010573 0 ustar 00 .show-oauth-credentials { padding-left: 10px; opacity: 0.3; cursor: pointer; } lib/Db/AccessToken.php 0000604 00000003136 15247130120 0010544 0 ustar 00 <?php /** * @copyright Copyright (c) 2017 Lukas Reschke <lukas@statuscode.ch> * * @license GNU AGPL version 3 or any later version * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU Affero General Public License as * published by the Free Software Foundation, either version 3 of the * License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Affero General Public License for more details. * * You should have received a copy of the GNU Affero General Public License * along with this program. If not, see <http://www.gnu.org/licenses/>. * */ namespace OCA\OAuth2\Db; use OCP\AppFramework\Db\Entity; /** * @method int getTokenId() * @method void setTokenId(int $identifier) * @method int getClientId() * @method void setClientId(int $identifier) * @method string getEncryptedToken() * @method void setEncryptedToken(string $token) * @method string getHashedCode() * @method void setHashedCode(string $token) */ class AccessToken extends Entity { /** @var int */ protected $tokenId; /** @var int */ protected $clientId; /** @var string */ protected $hashedCode; /** @var string */ protected $encryptedToken; public function __construct() { $this->addType('id', 'int'); $this->addType('token_id', 'int'); $this->addType('client_id', 'int'); $this->addType('hashed_code', 'string'); $this->addType('encrypted_token', 'string'); } } lib/Db/ClientMapper.php 0000604 00000004544 15247130120 0010731 0 ustar 00 <?php /** * @copyright Copyright (c) 2017 Lukas Reschke <lukas@statuscode.ch> * * @license GNU AGPL version 3 or any later version * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU Affero General Public License as * published by the Free Software Foundation, either version 3 of the * License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Affero General Public License for more details. * * You should have received a copy of the GNU Affero General Public License * along with this program. If not, see <http://www.gnu.org/licenses/>. * */ namespace OCA\OAuth2\Db; use OCA\OAuth2\Exceptions\ClientNotFoundException; use OCP\AppFramework\Db\Mapper; use OCP\DB\QueryBuilder\IQueryBuilder; use OCP\IDBConnection; class ClientMapper extends Mapper { /** * @param IDBConnection $db */ public function __construct(IDBConnection $db) { parent::__construct($db, 'oauth2_clients'); } /** * @param string $clientIdentifier * @return Client * @throws ClientNotFoundException */ public function getByIdentifier($clientIdentifier) { $qb = $this->db->getQueryBuilder(); $qb ->select('*') ->from($this->tableName) ->where($qb->expr()->eq('client_identifier', $qb->createNamedParameter($clientIdentifier))); $result = $qb->execute(); $row = $result->fetch(); $result->closeCursor(); if($row === false) { throw new ClientNotFoundException(); } return Client::fromRow($row); } /** * @param string $uid internal uid of the client * @return Client * @throws ClientNotFoundException */ public function getByUid($uid) { $qb = $this->db->getQueryBuilder(); $qb ->select('*') ->from($this->tableName) ->where($qb->expr()->eq('id', $qb->createNamedParameter($uid, IQueryBuilder::PARAM_INT))); $result = $qb->execute(); $row = $result->fetch(); $result->closeCursor(); if($row === false) { throw new ClientNotFoundException(); } return Client::fromRow($row); } /** * @return Client[] */ public function getClients() { $qb = $this->db->getQueryBuilder(); $qb ->select('*') ->from($this->tableName); return $this->findEntities($qb->getSQL()); } } lib/Db/AccessTokenMapper.php 0000604 00000003727 15247130120 0011717 0 ustar 00 <?php /** * @copyright Copyright (c) 2017 Lukas Reschke <lukas@statuscode.ch> * * @license GNU AGPL version 3 or any later version * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU Affero General Public License as * published by the Free Software Foundation, either version 3 of the * License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Affero General Public License for more details. * * You should have received a copy of the GNU Affero General Public License * along with this program. If not, see <http://www.gnu.org/licenses/>. * */ namespace OCA\OAuth2\Db; use OCA\OAuth2\Exceptions\AccessTokenNotFoundException; use OCP\AppFramework\Db\Mapper; use OCP\DB\QueryBuilder\IQueryBuilder; use OCP\IDBConnection; class AccessTokenMapper extends Mapper { /** * @param IDBConnection $db */ public function __construct(IDBConnection $db) { parent::__construct($db, 'oauth2_access_tokens'); } /** * @param string $code * @return AccessToken * @throws AccessTokenNotFoundException */ public function getByCode($code) { $qb = $this->db->getQueryBuilder(); $qb ->select('*') ->from($this->tableName) ->where($qb->expr()->eq('hashed_code', $qb->createNamedParameter(hash('sha512', $code)))); $result = $qb->execute(); $row = $result->fetch(); $result->closeCursor(); if($row === false) { throw new AccessTokenNotFoundException(); } return AccessToken::fromRow($row); } /** * delete all access token from a given client * * @param int $id */ public function deleteByClientId($id) { $qb = $this->db->getQueryBuilder(); $qb ->delete($this->tableName) ->where($qb->expr()->eq('client_id', $qb->createNamedParameter($id, IQueryBuilder::PARAM_INT))); $qb->execute(); } } lib/Db/Client.php 0000604 00000003150 15247130120 0007554 0 ustar 00 <?php /** * @copyright Copyright (c) 2017 Lukas Reschke <lukas@statuscode.ch> * * @license GNU AGPL version 3 or any later version * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU Affero General Public License as * published by the Free Software Foundation, either version 3 of the * License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Affero General Public License for more details. * * You should have received a copy of the GNU Affero General Public License * along with this program. If not, see <http://www.gnu.org/licenses/>. * */ namespace OCA\OAuth2\Db; use OCP\AppFramework\Db\Entity; /** * @method string getClientIdentifier() * @method void setClientIdentifier(string $identifier) * @method string getSecret() * @method void setSecret(string $secret) * @method string getRedirectUri() * @method void setRedirectUri(string $redirectUri) * @method string getName() * @method void setName(string $name) */ class Client extends Entity { /** @var string */ protected $name; /** @var string */ protected $redirectUri; /** @var string */ protected $clientIdentifier; /** @var string */ protected $secret; public function __construct() { $this->addType('id', 'int'); $this->addType('name', 'string'); $this->addType('redirect_uri', 'string'); $this->addType('client_identifier', 'string'); $this->addType('secret', 'string'); } } lib/Exceptions/ClientNotFoundException.php 0000604 00000001602 15247130120 0014704 0 ustar 00 <?php /** * @copyright Copyright (c) 2017 Lukas Reschke <lukas@statuscode.ch> * * @license GNU AGPL version 3 or any later version * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU Affero General Public License as * published by the Free Software Foundation, either version 3 of the * License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Affero General Public License for more details. * * You should have received a copy of the GNU Affero General Public License * along with this program. If not, see <http://www.gnu.org/licenses/>. * */ namespace OCA\OAuth2\Exceptions; class ClientNotFoundException extends \Exception {} lib/Exceptions/AccessTokenNotFoundException.php 0000604 00000001607 15247130120 0015675 0 ustar 00 <?php /** * @copyright Copyright (c) 2017 Lukas Reschke <lukas@statuscode.ch> * * @license GNU AGPL version 3 or any later version * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU Affero General Public License as * published by the Free Software Foundation, either version 3 of the * License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Affero General Public License for more details. * * You should have received a copy of the GNU Affero General Public License * along with this program. If not, see <http://www.gnu.org/licenses/>. * */ namespace OCA\OAuth2\Exceptions; class AccessTokenNotFoundException extends \Exception {} lib/Settings/Admin.php 0000604 00000003016 15247130120 0010642 0 ustar 00 <?php /** * @copyright Copyright (c) 2017 Lukas Reschke <lukas@statuscode.ch> * * @license GNU AGPL version 3 or any later version * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU Affero General Public License as * published by the Free Software Foundation, either version 3 of the * License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Affero General Public License for more details. * * You should have received a copy of the GNU Affero General Public License * along with this program. If not, see <http://www.gnu.org/licenses/>. * */ namespace OCA\OAuth2\Settings; use OCA\OAuth2\Db\ClientMapper; use OCP\AppFramework\Http\TemplateResponse; use OCP\Settings\ISettings; class Admin implements ISettings { /** @var ClientMapper */ private $clientMapper; /** * @param ClientMapper $clientMapper */ public function __construct(ClientMapper $clientMapper) { $this->clientMapper = $clientMapper; } /** * @return TemplateResponse */ public function getForm() { return new TemplateResponse( 'oauth2', 'admin', [ 'clients' => $this->clientMapper->getClients(), ], '' ); } /** * {@inheritdoc} */ public function getSection() { return 'security'; } /** * {@inheritdoc} */ public function getPriority() { return 0; } } lib/Controller/SettingsController.php 0000604 00000006405 15247130120 0014006 0 ustar 00 <?php /** * @copyright Copyright (c) 2017 Lukas Reschke <lukas@statuscode.ch> * * @license GNU AGPL version 3 or any later version * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU Affero General Public License as * published by the Free Software Foundation, either version 3 of the * License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Affero General Public License for more details. * * You should have received a copy of the GNU Affero General Public License * along with this program. If not, see <http://www.gnu.org/licenses/>. * */ namespace OCA\OAuth2\Controller; use OC\Authentication\Token\DefaultTokenMapper; use OCA\OAuth2\Db\AccessTokenMapper; use OCA\OAuth2\Db\Client; use OCA\OAuth2\Db\ClientMapper; use OCP\AppFramework\Controller; use OCP\AppFramework\Http\RedirectResponse; use OCP\IRequest; use OCP\IURLGenerator; use OCP\Security\ISecureRandom; class SettingsController extends Controller { /** @var IURLGenerator */ private $urlGenerator; /** @var ClientMapper */ private $clientMapper; /** @var ISecureRandom */ private $secureRandom; /** @var AccessTokenMapper */ private $accessTokenMapper; /** @var DefaultTokenMapper */ private $defaultTokenMapper; const validChars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789'; /** * @param string $appName * @param IRequest $request * @param IURLGenerator $urlGenerator * @param ClientMapper $clientMapper * @param ISecureRandom $secureRandom * @param AccessTokenMapper $accessTokenMapper * @param DefaultTokenMapper $defaultTokenMapper */ public function __construct($appName, IRequest $request, IURLGenerator $urlGenerator, ClientMapper $clientMapper, ISecureRandom $secureRandom, AccessTokenMapper $accessTokenMapper, DefaultTokenMapper $defaultTokenMapper ) { parent::__construct($appName, $request); $this->urlGenerator = $urlGenerator; $this->secureRandom = $secureRandom; $this->clientMapper = $clientMapper; $this->accessTokenMapper = $accessTokenMapper; $this->defaultTokenMapper = $defaultTokenMapper; } /** * @param string $name * @param string $redirectUri * @return RedirectResponse */ public function addClient($name, $redirectUri) { $client = new Client(); $client->setName($name); $client->setRedirectUri($redirectUri); $client->setSecret($this->secureRandom->generate(64, self::validChars)); $client->setClientIdentifier($this->secureRandom->generate(64, self::validChars)); $this->clientMapper->insert($client); return new RedirectResponse($this->urlGenerator->getAbsoluteURL('/index.php/settings/admin/security')); } /** * @param int $id * @return RedirectResponse */ public function deleteClient($id) { $client = $this->clientMapper->getByUid($id); $this->accessTokenMapper->deleteByClientId($id); $this->defaultTokenMapper->deleteByName($client->getName()); $this->clientMapper->delete($client); return new RedirectResponse($this->urlGenerator->getAbsoluteURL('/index.php/settings/admin/security')); } } lib/Controller/LoginRedirectorController.php 0000604 00000004305 15247130120 0015276 0 ustar 00 <?php /** * @copyright Copyright (c) 2017 Lukas Reschke <lukas@statuscode.ch> * * @license GNU AGPL version 3 or any later version * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU Affero General Public License as * published by the Free Software Foundation, either version 3 of the * License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Affero General Public License for more details. * * You should have received a copy of the GNU Affero General Public License * along with this program. If not, see <http://www.gnu.org/licenses/>. * */ namespace OCA\OAuth2\Controller; use OCA\OAuth2\Db\ClientMapper; use OCP\AppFramework\Controller; use OCP\AppFramework\Http\RedirectResponse; use OCP\IRequest; use OCP\ISession; use OCP\IURLGenerator; class LoginRedirectorController extends Controller { /** @var IURLGenerator */ private $urlGenerator; /** @var ClientMapper */ private $clientMapper; /** @var ISession */ private $session; /** * @param string $appName * @param IRequest $request * @param IURLGenerator $urlGenerator * @param ClientMapper $clientMapper * @param ISession $session */ public function __construct($appName, IRequest $request, IURLGenerator $urlGenerator, ClientMapper $clientMapper, ISession $session) { parent::__construct($appName, $request); $this->urlGenerator = $urlGenerator; $this->clientMapper = $clientMapper; $this->session = $session; } /** * @PublicPage * @NoCSRFRequired * @UseSession * * @param string $client_id * @param string $state * @return RedirectResponse */ public function authorize($client_id, $state) { $client = $this->clientMapper->getByIdentifier($client_id); $this->session->set('oauth.state', $state); $targetUrl = $this->urlGenerator->linkToRouteAbsolute( 'core.ClientFlowLogin.showAuthPickerPage', [ 'clientIdentifier' => $client->getClientIdentifier(), ] ); return new RedirectResponse($targetUrl); } } lib/Controller/OauthApiController.php 0000604 00000005362 15247130120 0013721 0 ustar 00 <?php /** * @copyright Copyright (c) 2017 Lukas Reschke <lukas@statuscode.ch> * * @license GNU AGPL version 3 or any later version * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU Affero General Public License as * published by the Free Software Foundation, either version 3 of the * License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Affero General Public License for more details. * * You should have received a copy of the GNU Affero General Public License * along with this program. If not, see <http://www.gnu.org/licenses/>. * */ namespace OCA\OAuth2\Controller; use OC\Authentication\Token\DefaultTokenMapper; use OCA\OAuth2\Db\AccessTokenMapper; use OCP\AppFramework\Controller; use OCP\AppFramework\Http\JSONResponse; use OCP\IRequest; use OCP\Security\ICrypto; use OCP\Security\ISecureRandom; class OauthApiController extends Controller { /** @var AccessTokenMapper */ private $accessTokenMapper; /** @var ICrypto */ private $crypto; /** @var DefaultTokenMapper */ private $defaultTokenMapper; /** @var ISecureRandom */ private $secureRandom; /** * @param string $appName * @param IRequest $request * @param ICrypto $crypto * @param AccessTokenMapper $accessTokenMapper * @param DefaultTokenMapper $defaultTokenMapper * @param ISecureRandom $secureRandom */ public function __construct($appName, IRequest $request, ICrypto $crypto, AccessTokenMapper $accessTokenMapper, DefaultTokenMapper $defaultTokenMapper, ISecureRandom $secureRandom) { parent::__construct($appName, $request); $this->crypto = $crypto; $this->accessTokenMapper = $accessTokenMapper; $this->defaultTokenMapper = $defaultTokenMapper; $this->secureRandom = $secureRandom; } /** * @PublicPage * @NoCSRFRequired * * @param string $code * @return JSONResponse */ public function getToken($code) { $accessToken = $this->accessTokenMapper->getByCode($code); $decryptedToken = $this->crypto->decrypt($accessToken->getEncryptedToken(), $code); $newCode = $this->secureRandom->generate(128); $accessToken->setHashedCode(hash('sha512', $newCode)); $accessToken->setEncryptedToken($this->crypto->encrypt($decryptedToken, $newCode)); $this->accessTokenMapper->update($accessToken); return new JSONResponse( [ 'access_token' => $decryptedToken, 'token_type' => 'Bearer', 'expires_in' => 3600, 'refresh_token' => $newCode, 'user_id' => $this->defaultTokenMapper->getTokenById($accessToken->getTokenId())->getUID(), ] ); } } templates/admin.php 0000604 00000006011 15247130120 0010330 0 ustar 00 <?php /** * @copyright Copyright (c) 2017 Lukas Reschke <lukas@statuscode.ch> * * @license GNU AGPL version 3 or any later version * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU Affero General Public License as * published by the Free Software Foundation, either version 3 of the * License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Affero General Public License for more details. * * You should have received a copy of the GNU Affero General Public License * along with this program. If not, see <http://www.gnu.org/licenses/>. * */ $urlGenerator = \OC::$server->getURLGenerator(); $themingDefaults = \OC::$server->getThemingDefaults(); script('oauth2', 'setting-admin'); style('oauth2', 'setting-admin'); /** @var array $_ */ /** @var \OCA\OAuth2\Db\Client[] $clients */ $clients = $_['clients']; ?> <div id="oauth2" class="section"> <h2><?php p($l->t('OAuth 2.0 clients')); ?></h2> <p class="settings-hint"><?php p($l->t('OAuth 2.0 allows external services to request access to %s.', [$themingDefaults->getName()])); ?></p> <table class="grid"> <thead> <tr> <th id="headerName" scope="col"><?php p($l->t('Name')); ?></th> <th id="headerRedirectUri" scope="col"><?php p($l->t('Redirection URI')); ?></th> <th id="headerClientIdentifier" scope="col"><?php p($l->t('Client Identifier')); ?></th> <th id="headerSecret" scope="col"><?php p($l->t('Secret')); ?></th> <th id="headerRemove"> </th> </tr> </thead> <tbody> <?php $imageUrl = $urlGenerator->imagePath('core', 'actions/toggle.svg'); foreach ($clients as $client) { ?> <tr> <td><?php p($client->getName()); ?></td> <td><?php p($client->getRedirectUri()); ?></td> <td><code><?php p($client->getClientIdentifier()); ?></code></td> <td data-value="<?php p($client->getSecret()); ?>"><code>****</code><img class='show-oauth-credentials' src="<?php p($imageUrl); ?>"/></td> <td> <form id="form-inline" class="delete" action="<?php p($urlGenerator->linkToRoute('oauth2.Settings.deleteClient', ['id' => $client->getId()])); ?>" method="POST"> <input type="hidden" name="requesttoken" value="<?php p($_['requesttoken']) ?>" /> <input type="submit" class="button icon-delete" value=""> </form> </td> </tr> <?php } ?> </tbody> </table> <br/> <h3><?php p($l->t('Add client')); ?></h3> <form action="<?php p($urlGenerator->linkToRoute('oauth2.Settings.addClient')); ?>" method="POST"> <input type="text" id="name" name="name" placeholder="<?php p($l->t('Name')); ?>"> <input type="url" id="redirectUri" name="redirectUri" placeholder="<?php p($l->t('Redirection URI')); ?>"> <input type="hidden" name="requesttoken" value="<?php p($_['requesttoken']) ?>" /> <input type="submit" class="button" value="<?php p($l->t('Add')); ?>"> </form> </div> appinfo/database.xml 0000604 00000004362 15247130120 0010462 0 ustar 00 <?xml version="1.0" encoding="ISO-8859-1" ?> <database xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="https://apps.nextcloud.com/schema/apps/database.xsd"> <name>*dbname*</name> <create>true</create> <overwrite>false</overwrite> <charset>utf8</charset> <table> <name>*dbprefix*oauth2_clients</name> <declaration> <field> <name>id</name> <type>integer</type> <notnull>true</notnull> <autoincrement>true</autoincrement> <unsigned>true</unsigned> <primary>true</primary> </field> <field> <name>name</name> <type>text</type> <notnull>true</notnull> <length>64</length> </field> <field> <name>redirect_uri</name> <type>text</type> <notnull>true</notnull> <length>2000</length> </field> <field> <name>client_identifier</name> <type>text</type> <notnull>true</notnull> <length>64</length> </field> <field> <name>secret</name> <type>text</type> <notnull>true</notnull> <length>64</length> </field> <index> <name>oauth2_client_id_idx</name> <unique>false</unique> <field> <name>client_identifier</name> </field> </index> </declaration> </table> <table> <name>*dbprefix*oauth2_access_tokens</name> <declaration> <field> <name>id</name> <type>integer</type> <notnull>true</notnull> <autoincrement>true</autoincrement> <unsigned>true</unsigned> <primary>true</primary> </field> <field> <name>token_id</name> <type>integer</type> <notnull>true</notnull> </field> <field> <name>client_id</name> <type>integer</type> <notnull>true</notnull> </field> <field> <name>hashed_code</name> <type>text</type> <notnull>true</notnull> <length>128</length> </field> <field> <name>encrypted_token</name> <type>text</type> <notnull>true</notnull> <length>786</length> </field> <index> <name>oauth2_access_hash_idx</name> <unique>true</unique> <field> <name>hashed_code</name> </field> </index> <index> <name>oauth2_access_client_id_idx</name> <unique>false</unique> <field> <name>client_id</name> </field> </index> </declaration> </table> </database> appinfo/routes.php 0000604 00000002311 15247130120 0010216 0 ustar 00 <?php /** * @copyright Copyright (c) 2017 Lukas Reschke <lukas@statuscode.ch> * * @license GNU AGPL version 3 or any later version * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU Affero General Public License as * published by the Free Software Foundation, either version 3 of the * License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Affero General Public License for more details. * * You should have received a copy of the GNU Affero General Public License * along with this program. If not, see <http://www.gnu.org/licenses/>. * */ return [ 'routes' => [ [ 'name' => 'Settings#addClient', 'url' => '/settings', 'verb' => 'POST', ], [ 'name' => 'Settings#deleteClient', 'url' => '/clients/{id}/delete', 'verb' => 'POST' ], [ 'name' => 'LoginRedirector#authorize', 'url' => '/authorize', 'verb' => 'GET', ], [ 'name' => 'OauthApi#getToken', 'url' => '/api/v1/token', 'verb' => 'POST' ], ], ]; appinfo/signature.json 0000604 00000034722 15247130120 0011073 0 ustar 00 { "hashes": { "appinfo\/database.xml": "7a3fdc4d500492f48e153866cf6af158c9fa4e241a9dc34183bd816e4ff993df468ed322a046c0ab53cef74fcce6cab90921d694cc5333f9c75ca3c8bec975ba", "appinfo\/info.xml": "faacfb6897b34ab251af925b5966094beb390d3b4cca708161b965b3dd1def80eb409fc85254d0f17222fddae6f44474137dbf00da292999eec2839909476c56", "appinfo\/routes.php": "8e85305652b1d011126470e833a229bfecab5844a475156a9fb468a5cf33c8025b33c5e8a6f13e1dc755f47f40977b3bac2446a77a6c9630b10ae5d63e78ee6c", "css\/setting-admin.css": "2c9948d35fb7f82116b2e2caff2907b82132313848dd489db3eb1003cb28ec777c71b268d4548b82d6a3b46bed34b3d4ced95ea3dba77c5bfa8bc2dff71ba219", "js\/setting-admin.js": "b5b079b42e929ac176229b1267832ee48744147c604de3bb4c1e79f0e2a1f459eb4040e01d2bece3bb0e0596e617bf69f9434b44073361ca3b9e26bde7f58e26", "l10n\/.gitkeep": "cf83e1357eefb8bdf1542850d66d8007d620e4050b5715dc83f4a921d36ce9ce47d0d13c5d85f2b0ff8318d2877eec2f63b931bd47417a81a538327af927da3e", "l10n\/af.js": "2919569d7e1e0f8ec04f4d54ace819a80082dfc1d5fc673a80345c753d43e4408418b3ff49545debb0d8f39bf2723b5a616cc7029cd2ed83c3b09c61e30e5239", "l10n\/af.json": "eba59f0d8ec22cd9032f79f057d741a9ba274ca239b10acf377e471172684ea63ef316a0714110f5f3fd3e1de8c2b4774b6780af0f1f9d69b5c8d57381016901", "l10n\/ast.js": "c097c266439246bf25ca68271c5f9ef182057f89916a60b4410d41c69e0ee8fa44a4c08b26c11294852ef4b1d659db5a0ae820953cd6927c9fe230d4548e0010", "l10n\/ast.json": "289e94a6bef0a3ee120818c1fac990b763ed9e585c066bbec93f9e6ebe446d6960b2c8399026aee0b46337dd1ea0a0b6bdbac3264c7d0d46774cd30b71f501ab", "l10n\/ca.js": "9083d048faffbecc69b83c7c677677f76acba6d2ce38582ab39672e0babd143099ee7a1f6cc9756a27587788500e6efd8e33ca0df518c49a0a9683159e43b033", "l10n\/ca.json": "984151e3325ad8e85dc632a821d8e30d30261b980b7b10467a1c7e402bfd92470cf759cdc87b72324827cf987c2c62bcebd97391f9bcc332c36c1854c7a3d5c0", "l10n\/cs.js": "3e8983cbc88bbbc199c257113f289a2618743cbc6fbd5bf2e1b6edc319c19e7cbcbf27c959d3e832a5b217f9a1ba3d5b18d8167c40dcb2caf4e34802f49c01c8", "l10n\/cs.json": "39bce82ba0f02fa866c5546ac97cdc2103adf4403d89bfdf4d5566ce45413e9fbf8e508e64dff99d6a36a77a893b2573a16ed45f047c9b01d3a191ad121698c3", "l10n\/da.js": "41541c6d4a79e1c870c3d631fcb90f00d37e1b296b766cb421773a87411fc772bb0631c20a6d6b920238e73a7ce82869f79f1fc0053aa16d722c3a0addfe1362", "l10n\/da.json": "06d0d71144244add3e42a0a9a587ce51451593e3b978f94deb2c2853a7a4b8ced214dc5b26c553e2aec1529d47d4a01ab58af4d45bd01b4ba1393001951dc332", "l10n\/de.js": "2679c6fea2db78b379b43c7622161e1d608f97c11ac00856d7de3879e5ce37d724d231f139a5df0f1a86ad998fdd9dbbfa2708b298234b0f0f4a1b2768855235", "l10n\/de.json": "df1a97e4afeb8327fc794ce6d43b1aa66ea596919380b9206df98ece715e9c161cc44643d2600faac0a6c87cc93170a0685463f2602f3df39dea6648503ea793", "l10n\/de_DE.js": "2679c6fea2db78b379b43c7622161e1d608f97c11ac00856d7de3879e5ce37d724d231f139a5df0f1a86ad998fdd9dbbfa2708b298234b0f0f4a1b2768855235", "l10n\/de_DE.json": "df1a97e4afeb8327fc794ce6d43b1aa66ea596919380b9206df98ece715e9c161cc44643d2600faac0a6c87cc93170a0685463f2602f3df39dea6648503ea793", "l10n\/el.js": "b6cd7f1d36447ea97c71724264f6da0b2403371ecabd264f2dcc22b9bd2b9233a8179a73ce68cb6bfc95320e1de1db54412b8e593a1c5eaac2c877c1d6c9b2ec", "l10n\/el.json": "891a849d686e3e87f4a181af4449dbd79ce4a8519b79739752690af4a92c9d8a54d8e60f591bcb8ca8b1622edb2ab012258d8d304eb6bb0bd35b4e481780d10c", "l10n\/en_GB.js": "85a70a2aa10a42cb8a3392647256fe710282768411613eaa09e666e19f9b0aa1ed68b81ab7e132ea5123a09037bc4ac5545678a29631bb2afee39038cc79c445", "l10n\/en_GB.json": "e9c11afb90d54f96b16170d1b27bc026c14fecd6acffb389b71c3dce1ed59bb87e94fa68640b45c3934ba5db4b92a597c8774b5ef80a4619b9da53699d3aca3e", "l10n\/es.js": "0ab45102d381bb98dfe6d409498a899915e4949573c96dfe581275d0d3f9ff7141ddfd4225984176252ca822f441439b02a58ecda68a54b434fc10f68ab7689b", "l10n\/es.json": "a614cc3f23bd034918fe05b66d56061b136ec41a00df1ae9f2bee332978f0b38937c8242fa632011eeb07dabab6b5cf73f339a27d0ee0d22911315c6074e7ab0", "l10n\/es_AR.js": "e548d10c3677a609bb780e0372c1fe6be3d7003da6ab3434a1e5ed57a795cb89b0c44a67e5990dbce8b82716685df7b3245033fa99a64c75053e1ae50f0bb02b", "l10n\/es_AR.json": "42c07d2952724cb0c7f2434953cc87cc66ac3a1b3ff0249c0bb2654b809e49efd683525936cc479dd984c124d0f79d86bbf175a268e3deeb20fc16b307e723a1", "l10n\/es_MX.js": "89a4d1d28e707f79a02ca92d9306758912e6a73482bacd7461d87dcf762327d11d03ee9d0a54c146a56e4a7b1c01df29806ee27592bb837b2f52f7093b880135", "l10n\/es_MX.json": "e39f30af840d9f76cfcf2368d95fa572b8c3a681f2d52b8cad71051311e0f80ee2bd63a5a94fa7ad40104ea2350a6086dd835cdab4470da9929332e5b2dc6552", "l10n\/fi.js": "42504da4c224a88734b2adb80c063378f7222c2b1251ae51b4e8e582a2ce0194f015af72cfec5e2e315add619c5da2cd1c6208c3cc176f2adcc596c22ee9aadb", "l10n\/fi.json": "0f1b7e65e19b2e3d25d1a846458c4c01c6e0880c5ca354f3dd1a47ac2f1cc454305fe36f0f669ffbbd53de958cb3040fecc6e8a443c6f0b6c3c6c8b9d24b3e06", "l10n\/fr.js": "4daa33834fe48460b377c14b1f82e3b90338c41d05c779e68ffb0ba46de55b96f03af545aedd34a5e9231c4169e2bd135c5a0646f74c1769f00bc96dfa8dad3e", "l10n\/fr.json": "85c01c532df242971f2d757e10ee563fcde19daec758ee822e51c903e48f2630edd6f91453e7adfaab6dfa9891835ec9c2581d8ce1a6f7f45ba1df7ef3057c54", "l10n\/id.js": "b54fe33290119765a9c9c19fbc45124508254bc1b361635bdf76a5c61c761e8c1beaee4ae4941ae3a16abf36a5f01af461b6aed0c33e47d80079c229c11a5e23", "l10n\/id.json": "849c8612637bc70eb746d8968e717b2233812a81e0db2baa226aaf42d46191b43c3b3f38755a8f68a308e0cb4657175215f5738e9ab1680513853b8bb53f579f", "l10n\/is.js": "38be0c5ac7978e2d59968b9b11486f6ab1cc76d4814819adcf0ab469150c86e06ab1b3b12dc437c9fbf4ed9a5449b908641c64ea38ec18c93899aa5fb3b7d2d2", "l10n\/is.json": "3d70f5d866568d57032beb399c05a9dd42e42178849089f3b9ccf34c619236e4ce858e8f68da6f7139505c0a3a2f70ae4932f5c22066cba96c3cbbd51bec660e", "l10n\/it.js": "7c887bb03e848d3e97e127ec229fee27c5ae75ae6d8e42b19be21eee18f4a9ff26629549fb6cc09d58b4aea70f57057bde93cbfab4700b632a7d933e4e85eefc", "l10n\/it.json": "fa706d4bc2014379ca9a99d632e78970a3c8c159b8bb7f8c5dbac3c6c4750264190f5cf96be8696c2fad19bad878b4106e81deaafa300b8cfe46234a96ab9a06", "l10n\/ja.js": "dadd8e3a5b3b01287e2f3a0b0eceb3b45d6ff564a9001374621f6e5276ca94419f87d4000cc1ed6f433a47b4e76187a387696fe738ca00d21b92b9d00f26f694", "l10n\/ja.json": "83c91026e95889c7c1509257af986ec161acae239f5bf39dbe60f3957dae423286fda6270aeb02b55cc06078ebf547319b81b2ce24ec14f2c41c88014dbca443", "l10n\/lt_LT.js": "ff77fbd780d59108498ce628b060d8b262560183eb420ce7440db179be17af40ea91c7eca6e073c1afda13d94d81cb9474d3c30dd5e5c89feb86c601ae650585", "l10n\/lt_LT.json": "ffea87eeedc2d4c7d887ff38ca70f082042d5c0241cf731562334e178ab88d8a70ee7cf6b217531aceab189b612dd06dacfe3702b38b5e26f60f0593deef0ba0", "l10n\/lv.js": "c30f8797b897aef1b27d2963c45bbb36475fdc0921c6039d856651c88f8b026c0dcd3eb057098038f94dc78265841a3a27bed4c41286a03ccadd630413bdf7c9", "l10n\/lv.json": "15c640c9a05c17dc694f4c5f7eae8c79b14e923279025bf395c4c0550dfb1f822000fe67c61c476031c307bb014bc12258a6226ff12fcde12c10fdbc95398d9c", "l10n\/nb.js": "246aaf012821d62f0076983c85855e85655b20485310de426aabc7619b57f36106d19816518e03186c8f121027ed7737e9060d9ea1f1034cde58fae9c1d0ad0e", "l10n\/nb.json": "254d3971aa9d7da63233f10042a7e7bd4fa9d298bc29a4d74222166ace770a47df08937ae83d22d75f29543ae76177cf1e713fc2d93a4e86955c7f58be6cd652", "l10n\/nl.js": "a6580fd36f506c0bbd049e460838ef6b02a8516bf4acd2ef0a983a828a2f5486901c6088c7523871728562ed20769f4cb4fd7073e784b5ba8ed881843990709c", "l10n\/nl.json": "0bf9ac97b0b95634609f0d2635b3be847f89043f6222898695e69009e29691f2613676a86a4faf5735f4f17533b7514cd6eb32335b82989b2aebde1dd8e73d0a", "l10n\/pl.js": "ac0405b76155df6b7e3e00e886c3cc2ab77bec5b0f2df161e14305536a2e061da1cad6b4ab3542ac9bcf8fa9d5ecf140430ae48fb6b0c983113e3208c693f05d", "l10n\/pl.json": "8bb480545050c1bc69d98d45251ae483a2f2429981b72c84055b9d1e20fbe8d085a31fa30fb622c1f94ca623c3b0430189aeb14507132db9a1f9c1a432ff38dd", "l10n\/pt_BR.js": "d5eecec9cee1935227e78fb6d11f8af3c58423cbd1cbb628b6ae4b2b6acafedfdd1f72013873756ec61871694641e86fbff1612c685b03218679bfcdf98fdea5", "l10n\/pt_BR.json": "80ed261d82eb452902bb266ed6f6c29b4800afd7f9a12bfbff067221d1e38d5d375c0151cfdc133e5588db8c8c255693d1a479bd1b5be1bbee83fbc67ee30758", "l10n\/ru.js": "71af3a405d5352f48b801a1ad2da139f6863e42a5d80a17b0ec49dfa395a4d0710d0f9046d0b9fe91778d00e9c1a78082dacae2d10212fbac382060af228587b", "l10n\/ru.json": "ef106448cf9653daa4e95e99f90ff4b07b7ae19cdd6e1601621be92e1060d8a1cd32ee8cae8e15d0cfac6a6820d5a5bc17b93d54eb8627977f6cf901276779a5", "l10n\/sk.js": "dfb60d6e75f5babc3c51764d1c10308455d82cbb2d680571dba1567eda71db18d8a13246961d9284fa4fd278f7fa42a7289034044cef4691366a16eebd61674e", "l10n\/sk.json": "b41408b6a30953bd1acf02284f7f969357963173762dec291f5e640360418919f36e98fdda9b6e86923190e82f3c953e109508704593412a9e7b583844312040", "l10n\/sq.js": "46f278dac01b6e324f9652ff399b1e8dd859100dcf2c1229b9c660c1f6071f4bc2ff9005e9b43b7d9d0c3fc5c046bf09b6083602fe89137bf58380c90a104102", "l10n\/sq.json": "8a05adae35305e92017034895ba9bd31cad9c95050559365dfad4338db0c241c0e072397d6f069770b61a1d4c8e5d23ca737f943f1b08ababb641549ffdea598", "l10n\/sv.js": "d2ad4d3d7786b5d36b205f0bc31861dffe2f6449f2580d2c2330decd0cae12bb8f090c554750c146cbf1963371151d0d9152c179a31e69dea88e50225c84acf4", "l10n\/sv.json": "d8da6c94c72a525aea44d957e3f926441cf281440aedb7e5d7587a0072925663d6fb623b573dcab4c27462360925c1ac6ee3844b0c0880e259db8dac991c4db0", "l10n\/tr.js": "b8f9dda89841331734632c37050797de4479075851e2398d566e99217a446f232b4fe1abd060472f83efb156416844a5f6cfaf808c13e35489ba97d6189a2f7d", "l10n\/tr.json": "389293bffe8c5f11cd08b34f1e7a9f4734f244a72ead8b510c19a103b73e353b01371195f489873411df4c6fb5eff1b41a444c6ad331321e0240bf455be649da", "l10n\/vi.js": "0531f4ccbd1fefe3838175e377a66848e57705d4abee00ee56bc4d4d2d79e43cc0b5160269d53c28a14204439651dbc18f96449591c6e2cdeb5a412a438f1f16", "l10n\/vi.json": "1e23395579dc36ea748ef83a1a24807558b7670d217658a8b7e3163a7585811b4266cf49ff6e5030d61156ea5e114f8d64a793ad72a706a057bd8d6830aba65a", "l10n\/zh_CN.js": "b9c7ff458b0040e8f7d2914ffb84baa8f95abe6f321905b08c0929fad9e22f4817a29131f8cedfd83578a87a99c23501472f74a1dfb2111b5c415347d11b7051", "l10n\/zh_CN.json": "b47e34903a2015285c6d37a8755f86ec388432d07cfd07185898633f90fcadae3501c0cff7387f1dcbb475050288b8b75fa2eef1eb37e5fd2acd0f8a1974c4b6", "lib\/Controller\/LoginRedirectorController.php": "f93254caa2734c04289aa676b2c0f445c9cdf3017b56bbd4118bc5f15234a1fc1a034a8259705f08e979e2e8b1fcc8fc740e51940db3fbb09c335f23caa40fc2", "lib\/Controller\/OauthApiController.php": "2414e8edc748e06b47e2dfc75d00522bc5ab0b31a7ab4a98147ccd15bbc7977cd876cd82584eed8d122b7220c19e3a010d0560526d5eed53fddd1503bb136c8f", "lib\/Controller\/SettingsController.php": "d0371a4c20032751a753d3dbff93a65d80a26c7d1691dec21fb52c7fe6ce7709aaf32f8b91f690da8ded8843f40cc3c5a4d6156b075429774fcb8c098cf13112", "lib\/Db\/AccessToken.php": "915240c24754fc7bdbca0f5dd679e77252ab80845c7a9a5c55336eab512b79b1dbf7db1bd8c4312f213dee15b5527396bd191c824ebc0c1f48b4a4e31150c313", "lib\/Db\/AccessTokenMapper.php": "9e86411f3c4be3e732b06fcbd412c924834abbea42de471ce323e4774b73e4b0f1a56182aa6ed1d9b51a4afa23f43e71090445fa84a0c8ffa66e2b18a9423f94", "lib\/Db\/Client.php": "2c2d6ccb07c145b495401a715666ca06fee3e39be8c5330c32e5d13a087a727039ac9c808766676820066bf76fac305326767a20ddc66b08b6aeb9cbc347e473", "lib\/Db\/ClientMapper.php": "da9d3c11f0c24279b6c5d0f3a02d8bb32087354d599605e53e836a33215023734d5760a3ccc4d9d99e6199409c52b59f61e0710198fe1cc85c72eb290158df18", "lib\/Exceptions\/AccessTokenNotFoundException.php": "e20b8f09c4c5a1d1bd6850432a165c4d9d58a80e436832b2baf735972edec3b44bd38e6010350c10e5a6cc8a978fb2caa51fd496835abbf461e285d32cb02c6a", "lib\/Exceptions\/ClientNotFoundException.php": "8b6b60e34a0f431b5da798e7bc4bb89b4e8a73e2d86c2a505539f63961edf9dd6ed03d10942ff30784d67989dfe8a0190598ec65bc63674277eeadde734dad91", "lib\/Settings\/Admin.php": "b2017f24cc508171c434eb7aa0c3d6680c3749c7c2dc633518cab0a4062da9e96025ccb5f51c7e6f977c738548a6a96c3a9613b4626677612b8c48481a77114b", "templates\/admin.php": "29a22a5b59f6bc3d49127cbab976938b98830cf0162055bf59794db8dd640e68aef8082742b6f191291b49327f904dd7698fab79faf5f6e1188d29ac7ca0c204" }, "signature": "tWXopUYKguLy+qv00dZaBuOZd3GR6ILYGr1wpaTjaG3AQI3EuQ9RlbcRzfQNUS5zZET62s1Fa40XlXgzKC0T9k16SFnxEU9aHSnkMYoC887XoRZsxsI9tGVQVdqhDMbSYGZlbD9waoD9OhYSgv\/sVozaOYvjU3YfbklfuthVGNRBsghOhbnN9KSbN9UynFslZEBDTAKCq8PQgaUQ6BKRz0l73JyCXfZDGS3r150mhO0ouPAgVhzDnunJNHp752KZl0N+xMqkYwUhEMvfIoW7dOGn3wKh6oxoQD6ixd9vG++7B23pCkVTxqnV0dma21wnMYoihTohJFA1YXZ7vR9TfQ==", "certificate": "-----BEGIN CERTIFICATE-----\r\nMIIEojCCA4qgAwIBAgICEAAwDQYJKoZIhvcNAQELBQAwezELMAkGA1UEBhMCREUx\r\nGzAZBgNVBAgMEkJhZGVuLVd1ZXJ0dGVtYmVyZzEXMBUGA1UECgwOTmV4dGNsb3Vk\r\nIEdtYkgxNjA0BgNVBAMMLU5leHRjbG91ZCBDb2RlIFNpZ25pbmcgSW50ZXJtZWRp\r\nYXRlIEF1dGhvcml0eTAeFw0xNjA2MTIyMTA1MDZaFw00MTA2MDYyMTA1MDZaMGYx\r\nCzAJBgNVBAYTAkRFMRswGQYDVQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxEjAQBgNV\r\nBAcMCVN0dXR0Z2FydDEXMBUGA1UECgwOTmV4dGNsb3VkIEdtYkgxDTALBgNVBAMM\r\nBGNvcmUwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDUxcrn2DC892IX\r\n8+dJjZVh9YeHF65n2ha886oeAizOuHBdWBfzqt+GoUYTOjqZF93HZMcwy0P+xyCf\r\nQqak5Ke9dybN06RXUuGP45k9UYBp03qzlUzCDalrkj+Jd30LqcSC1sjRTsfuhc+u\r\nvH1IBuBnf7SMUJUcoEffbmmpAPlEcLHxlUGlGnz0q1e8UFzjbEFj3JucMO4ys35F\r\nqZS4dhvCngQhRW3DaMlQLXEUL9k3kFV+BzlkPzVZEtSmk4HJujFCnZj1vMcjQBg\/\r\nBqq1HCmUB6tulnGcxUzt\/Z\/oSIgnuGyENeke077W3EyryINL7EIyD4Xp7sxLizTM\r\nFCFCjjH1AgMBAAGjggFDMIIBPzAJBgNVHRMEAjAAMBEGCWCGSAGG+EIBAQQEAwIG\r\nQDAzBglghkgBhvhCAQ0EJhYkT3BlblNTTCBHZW5lcmF0ZWQgU2VydmVyIENlcnRp\r\nZmljYXRlMB0GA1UdDgQWBBQwc1H9AL8pRlW2e5SLCfPPqtqc0DCBpQYDVR0jBIGd\r\nMIGagBRt6m6qqTcsPIktFz79Ru7DnnjtdKF+pHwwejELMAkGA1UEBhMCREUxGzAZ\r\nBgNVBAgMEkJhZGVuLVd1ZXJ0dGVtYmVyZzESMBAGA1UEBwwJU3R1dHRnYXJ0MRcw\r\nFQYDVQQKDA5OZXh0Y2xvdWQgR21iSDEhMB8GA1UEAwwYTmV4dGNsb3VkIFJvb3Qg\r\nQXV0aG9yaXR5ggIQADAOBgNVHQ8BAf8EBAMCBaAwEwYDVR0lBAwwCgYIKwYBBQUH\r\nAwEwDQYJKoZIhvcNAQELBQADggEBADZ6+HV\/+0NEH3nahTBFxO6nKyR\/VWigACH0\r\nnaV0ecTcoQwDjKDNNFr+4S1WlHdwITlnNabC7v9rZ\/6QvbkrOTuO9fOR6azp1EwW\r\n2pixWqj0Sb9\/dSIVRpSq+jpBE6JAiX44dSR7zoBxRB8DgVO2Afy0s80xEpr5JAzb\r\nNYuPS7M5UHdAv2dr16fDcDIvn+vk92KpNh1NTeZFjBbRVQ9DXrgkRGW34TK8uSLI\r\nYG6jnfJ6eJgTaO431ywWPXNg1mUMaT\/+QBOgB299QVCKQU+lcZWptQt+RdsJUm46\r\nNY\/nARy4Oi4uOe88SuWITj9KhrFmEvrUlgM8FvoXA1ldrR7KiEg=\r\n-----END CERTIFICATE-----" } appinfo/info.xml 0000604 00000001330 15247130120 0007641 0 ustar 00 <?xml version="1.0"?> <info xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="https://apps.nextcloud.com/schema/apps/info.xsd"> <id>oauth2</id> <name>OAuth 2.0</name> <description>The OAuth2 app allows administrators to configure the built-in authentication workflow to also allow OAuth2 compatible authentication from other web applications.</description> <licence>agpl</licence> <author>Lukas Reschke</author> <namespace>OAuth2</namespace> <version>1.0.5</version> <default_enable/> <types> <authentication/> </types> <dependencies> <nextcloud min-version="12" max-version="12" /> </dependencies> <settings> <admin>OCA\OAuth2\Settings\Admin</admin> </settings> </info> l10n/ja.js 0000604 00000001003 15247130120 0006227 0 ustar 00 OC.L10N.register( "oauth2", { "OAuth 2.0 clients" : "OAuth 2.0クライアント", "OAuth 2.0 allows external services to request access to %s." : "OAuth 2.0 により外部サービスから %s にアクセスを要求できます", "Name" : "名前", "Redirection URI" : "リダイレクトURI", "Client Identifier" : "クライアントID", "Secret" : "シークレットキー", "Add client" : "クライアントを追加", "Add" : "追加" }, "nplurals=1; plural=0;"); l10n/de_DE.js 0000604 00000000743 15247130120 0006607 0 ustar 00 OC.L10N.register( "oauth2", { "OAuth 2.0 clients" : "OAuth-2.0-Clients", "OAuth 2.0 allows external services to request access to %s." : "OAuth 2.0 erlaubt es externen Diensten nach Zugriff auf %s zu fragen.", "Name" : "Name", "Redirection URI" : "Weiterleitungs-URI", "Client Identifier" : "Client-Identifikationsmerkmal", "Secret" : "Geheimnis", "Add client" : "Client hinzufügen", "Add" : "Hinzufügen" }, "nplurals=2; plural=(n != 1);"); l10n/da.js 0000604 00000000713 15247130120 0006230 0 ustar 00 OC.L10N.register( "oauth2", { "OAuth 2.0 clients" : "OAuth 2.0 klienter", "OAuth 2.0 allows external services to request access to %s." : "OAuth 2.0 tillader eksterne services at forespørge adgang til din %s.", "Name" : "Navn", "Redirection URI" : "Viderestilling URI", "Client Identifier" : "Klient ID", "Secret" : "Hemmelighed", "Add client" : "Tilføj klient", "Add" : "Tilføj" }, "nplurals=2; plural=(n != 1);"); l10n/ca.js 0000604 00000000711 15247130120 0006225 0 ustar 00 OC.L10N.register( "oauth2", { "OAuth 2.0 clients" : "clients OAuth 2.0", "OAuth 2.0 allows external services to request access to %s." : "OAuth 2.0 permet que els serveis externs sol·licitin accés a %s.", "Name" : "Nom", "Redirection URI" : "URl redirecció", "Client Identifier" : "Identificador de client", "Secret" : "Secret", "Add client" : "Afegir client", "Add" : "Afegir" }, "nplurals=2; plural=(n != 1);"); l10n/ast.js 0000604 00000000723 15247130120 0006434 0 ustar 00 OC.L10N.register( "oauth2", { "OAuth 2.0 clients" : "Veceros d'OAuth 2.0", "OAuth 2.0 allows external services to request access to %s." : "OAuth 2.0 permite a los servicios esternos solicitar accesu a %s.", "Name" : "Nome", "Redirection URI" : "URI de redireición", "Client Identifier" : "Identificador del veceru", "Secret" : "Secretu", "Add client" : "Amestar veceru", "Add" : "Amestar" }, "nplurals=2; plural=(n != 1);"); l10n/pt_BR.js 0000604 00000000726 15247130120 0006656 0 ustar 00 OC.L10N.register( "oauth2", { "OAuth 2.0 clients" : "Clientes OAuth 2.0", "OAuth 2.0 allows external services to request access to %s." : "OAuth 2.0 permite que serviços externos requisitem acesso a %s.", "Name" : "Nome", "Redirection URI" : "Redirecionamento URI", "Client Identifier" : "Identificador do Cliente", "Secret" : "Secreto", "Add client" : "Adicionar cliente", "Add" : "Adicionar" }, "nplurals=2; plural=(n > 1);"); l10n/sv.json 0000604 00000000724 15247130120 0006633 0 ustar 00 { "translations": { "OAuth 2.0 clients" : "OAuth 2.0 klienter", "OAuth 2.0 allows external services to request access to %s." : "OAuth 2.0 tillåter externa tjänster att efterfråga tillgång till %s.", "Name" : "Namn", "Redirection URI" : "Omdirigerings-URI", "Client Identifier" : "Klientidentifierare", "Secret" : "Hemlighet", "Add client" : "Lägg till klient", "Add" : "Lägg till" },"pluralForm" :"nplurals=2; plural=(n != 1);" } l10n/nl.json 0000604 00000000701 15247130120 0006607 0 ustar 00 { "translations": { "OAuth 2.0 clients" : "OAuth 2.0 Clients", "OAuth 2.0 allows external services to request access to %s." : "OAuth 2.0 staat externe services toe om toegang te vragen aan %s", "Name" : "Naam", "Redirection URI" : "Omeiding URI", "Client Identifier" : "Client identificatie", "Secret" : "Geheim", "Add client" : "Voeg client toe", "Add" : "Toevoegen" },"pluralForm" :"nplurals=2; plural=(n != 1);" } l10n/sk.json 0000604 00000000755 15247130120 0006624 0 ustar 00 { "translations": { "OAuth 2.0 clients" : "klienti OAuth 2.0", "OAuth 2.0 allows external services to request access to %s." : "OAuth 2.0 umožňuje externým službám vyžiadať prístup k %s.", "Name" : "Názov", "Redirection URI" : "URI presmerovania", "Client Identifier" : "Identifikátor klienta", "Secret" : "Tajný kľúč", "Add client" : "Pridať klienta", "Add" : "Pridať" },"pluralForm" :"nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;" } l10n/es.js 0000604 00000000720 15247130120 0006251 0 ustar 00 OC.L10N.register( "oauth2", { "OAuth 2.0 clients" : "Clientes OAuth 2.0", "OAuth 2.0 allows external services to request access to %s." : "OAut 2.0 permite a servicios externos solicitar acceso a %s.", "Name" : "Nombre", "Redirection URI" : "URI de redirección", "Client Identifier" : "Identificador de cliente", "Secret" : "Secreto", "Add client" : "Añadir cliente", "Add" : "Añadir" }, "nplurals=2; plural=(n != 1);"); l10n/es_AR.js 0000604 00000000515 15247130120 0006635 0 ustar 00 OC.L10N.register( "oauth2", { "OAuth 2.0 clients" : "Clientes OAuth 2.0", "Name" : "Nombre", "Redirection URI" : "URI de redirección", "Client Identifier" : "Identificador del cliente", "Secret" : "Secreto", "Add client" : "Agregar cliente", "Add" : "Agregar" }, "nplurals=2; plural=(n != 1);"); l10n/lt_LT.js 0000604 00000001107 15247130120 0006660 0 ustar 00 OC.L10N.register( "oauth2", { "OAuth 2.0 clients" : "OAuth 2.0 klientai", "OAuth 2.0 allows external services to request access to %s." : "OAuth 2.0 protokolas leidžia trečiųjų šalių programinei įrangai pasiekti šiuos jūsų duomenis: %s.", "Name" : "Pavadinimas", "Redirection URI" : "Nukreipimo adresas", "Client Identifier" : "Kliento identifikatorius", "Secret" : "Paslaptis", "Add client" : "Pridėti klientą", "Add" : "Pridėti" }, "nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && (n%100<10 || n%100>=20) ? 1 : 2);"); l10n/fr.json 0000604 00000000713 15247130120 0006610 0 ustar 00 { "translations": { "OAuth 2.0 clients" : "Clients OAuth 2.0", "OAuth 2.0 allows external services to request access to %s." : "OAuth 2.0 permet à des services externes de demander l'accès à %s.", "Name" : "Nom", "Redirection URI" : "URI de redirection", "Client Identifier" : "Identifiant du client", "Secret" : "Secret", "Add client" : "Ajouter un client", "Add" : "Ajouter" },"pluralForm" :"nplurals=2; plural=(n > 1);" } l10n/es.json 0000604 00000000712 15247130120 0006607 0 ustar 00 { "translations": { "OAuth 2.0 clients" : "Clientes OAuth 2.0", "OAuth 2.0 allows external services to request access to %s." : "OAut 2.0 permite a servicios externos solicitar acceso a %s.", "Name" : "Nombre", "Redirection URI" : "URI de redirección", "Client Identifier" : "Identificador de cliente", "Secret" : "Secreto", "Add client" : "Añadir cliente", "Add" : "Añadir" },"pluralForm" :"nplurals=2; plural=(n != 1);" } l10n/ast.json 0000604 00000000715 15247130120 0006772 0 ustar 00 { "translations": { "OAuth 2.0 clients" : "Veceros d'OAuth 2.0", "OAuth 2.0 allows external services to request access to %s." : "OAuth 2.0 permite a los servicios esternos solicitar accesu a %s.", "Name" : "Nome", "Redirection URI" : "URI de redireición", "Client Identifier" : "Identificador del veceru", "Secret" : "Secretu", "Add client" : "Amestar veceru", "Add" : "Amestar" },"pluralForm" :"nplurals=2; plural=(n != 1);" } l10n/is.json 0000604 00000000767 15247130120 0006625 0 ustar 00 { "translations": { "OAuth 2.0 clients" : "OAuth 2.0 biðlarar", "OAuth 2.0 allows external services to request access to %s." : "OAuth 2.0 gerir utanaðkomandi þjónustum kleift að biðja um aðgang að %s.", "Name" : "Nafn", "Redirection URI" : "Endurbeiningarslóð", "Client Identifier" : "Biðlaraauðkenni", "Secret" : "Leynilykill", "Add client" : "Bæta við biðlara", "Add" : "Bæta við" },"pluralForm" :"nplurals=2; plural=(n % 10 != 1 || n % 100 == 11);" } l10n/zh_CN.json 0000604 00000000657 15247130120 0007211 0 ustar 00 { "translations": { "OAuth 2.0 clients" : "OAuth 2.0 客户端", "OAuth 2.0 allows external services to request access to %s." : "OAuth 2.0 认证协议允许外部服务请求访问您的%s", "Name" : "名称", "Redirection URI" : "回调地址", "Client Identifier" : "客户端 ID", "Secret" : "密钥", "Add client" : "添加客户端", "Add" : "添加" },"pluralForm" :"nplurals=1; plural=0;" } l10n/lv.js 0000604 00000000565 15247130120 0006272 0 ustar 00 OC.L10N.register( "oauth2", { "OAuth 2.0 clients" : "OAuth 2.0 klients", "Name" : "Nosaukums", "Redirection URI" : "Pārvirzāmais URI", "Client Identifier" : "Klienta identifikators", "Secret" : "Noslēpums", "Add client" : "Pievienot klientu", "Add" : "Pievienot" }, "nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n != 0 ? 1 : 2);"); l10n/de_DE.json 0000604 00000000735 15247130120 0007145 0 ustar 00 { "translations": { "OAuth 2.0 clients" : "OAuth-2.0-Clients", "OAuth 2.0 allows external services to request access to %s." : "OAuth 2.0 erlaubt es externen Diensten nach Zugriff auf %s zu fragen.", "Name" : "Name", "Redirection URI" : "Weiterleitungs-URI", "Client Identifier" : "Client-Identifikationsmerkmal", "Secret" : "Geheimnis", "Add client" : "Client hinzufügen", "Add" : "Hinzufügen" },"pluralForm" :"nplurals=2; plural=(n != 1);" } l10n/es_MX.js 0000604 00000000733 15247130120 0006661 0 ustar 00 OC.L10N.register( "oauth2", { "OAuth 2.0 clients" : "Clientes OAuth 2.0", "OAuth 2.0 allows external services to request access to %s." : "OAuth 2.0 le permite a los servicios externos solicitar acceso a %s.", "Name" : "Nombre", "Redirection URI" : "URI para redirección", "Client Identifier" : "Identificador del cliente", "Secret" : "Secreto", "Add client" : "Agregar cliente", "Add" : "Agregar" }, "nplurals=2; plural=(n != 1);"); l10n/fi.js 0000604 00000000510 15247130120 0006235 0 ustar 00 OC.L10N.register( "oauth2", { "OAuth 2.0 clients" : "OAuth 2.0 -asiakkaat", "Name" : "Nimi", "Redirection URI" : "Uudelleenohjaus URI", "Client Identifier" : "Asiakkaan tunniste", "Secret" : "Salaisuus", "Add client" : "Lisää asiakas", "Add" : "Lisää" }, "nplurals=2; plural=(n != 1);"); l10n/nl.js 0000604 00000000707 15247130120 0006260 0 ustar 00 OC.L10N.register( "oauth2", { "OAuth 2.0 clients" : "OAuth 2.0 Clients", "OAuth 2.0 allows external services to request access to %s." : "OAuth 2.0 staat externe services toe om toegang te vragen aan %s", "Name" : "Naam", "Redirection URI" : "Omeiding URI", "Client Identifier" : "Client identificatie", "Secret" : "Geheim", "Add client" : "Voeg client toe", "Add" : "Toevoegen" }, "nplurals=2; plural=(n != 1);"); l10n/ca.json 0000604 00000000703 15247130120 0006563 0 ustar 00 { "translations": { "OAuth 2.0 clients" : "clients OAuth 2.0", "OAuth 2.0 allows external services to request access to %s." : "OAuth 2.0 permet que els serveis externs sol·licitin accés a %s.", "Name" : "Nom", "Redirection URI" : "URl redirecció", "Client Identifier" : "Identificador de client", "Secret" : "Secret", "Add client" : "Afegir client", "Add" : "Afegir" },"pluralForm" :"nplurals=2; plural=(n != 1);" } l10n/en_GB.json 0000604 00000000661 15247130120 0007155 0 ustar 00 { "translations": { "OAuth 2.0 clients" : "OAuth 2.0 clients", "OAuth 2.0 allows external services to request access to %s." : "OAuth 2.0 allows external services to request access to %s.", "Name" : "Name", "Redirection URI" : "Redirection URI", "Client Identifier" : "Client Identifier", "Secret" : "Secret", "Add client" : "Add client", "Add" : "Add" },"pluralForm" :"nplurals=2; plural=(n != 1);" } l10n/vi.json 0000604 00000000427 15247130120 0006621 0 ustar 00 { "translations": { "OAuth 2.0 clients" : "kết nối OAuth 2.0", "Name" : "Tên", "Redirection URI" : "Liên kết chuyển tiếp", "Secret" : "Mật khẩu", "Add client" : "Thêm kết nối", "Add" : "Thêm" },"pluralForm" :"nplurals=1; plural=0;" } l10n/sk.js 0000604 00000000763 15247130120 0006266 0 ustar 00 OC.L10N.register( "oauth2", { "OAuth 2.0 clients" : "klienti OAuth 2.0", "OAuth 2.0 allows external services to request access to %s." : "OAuth 2.0 umožňuje externým službám vyžiadať prístup k %s.", "Name" : "Názov", "Redirection URI" : "URI presmerovania", "Client Identifier" : "Identifikátor klienta", "Secret" : "Tajný kľúč", "Add client" : "Pridať klienta", "Add" : "Pridať" }, "nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;"); l10n/es_MX.json 0000604 00000000725 15247130120 0007217 0 ustar 00 { "translations": { "OAuth 2.0 clients" : "Clientes OAuth 2.0", "OAuth 2.0 allows external services to request access to %s." : "OAuth 2.0 le permite a los servicios externos solicitar acceso a %s.", "Name" : "Nombre", "Redirection URI" : "URI para redirección", "Client Identifier" : "Identificador del cliente", "Secret" : "Secreto", "Add client" : "Agregar cliente", "Add" : "Agregar" },"pluralForm" :"nplurals=2; plural=(n != 1);" } l10n/cs.js 0000604 00000000761 15247130120 0006254 0 ustar 00 OC.L10N.register( "oauth2", { "OAuth 2.0 clients" : "OAuth 2.0 klienti", "OAuth 2.0 allows external services to request access to %s." : "OAuth 2.0 umožňuje cizím službám žádat přístup k %s.", "Name" : "Název", "Redirection URI" : "URL pro přesměrování", "Client Identifier" : "Identifikátor klienta", "Secret" : "Tajemství", "Add client" : "Přidat klienta", "Add" : "Přidat" }, "nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;"); l10n/de.js 0000604 00000000743 15247130120 0006237 0 ustar 00 OC.L10N.register( "oauth2", { "OAuth 2.0 clients" : "OAuth-2.0-Clients", "OAuth 2.0 allows external services to request access to %s." : "OAuth 2.0 erlaubt es externen Diensten nach Zugriff auf %s zu fragen.", "Name" : "Name", "Redirection URI" : "Weiterleitungs-URI", "Client Identifier" : "Client-Identifikationsmerkmal", "Secret" : "Geheimnis", "Add client" : "Client hinzufügen", "Add" : "Hinzufügen" }, "nplurals=2; plural=(n != 1);"); l10n/da.json 0000604 00000000705 15247130120 0006566 0 ustar 00 { "translations": { "OAuth 2.0 clients" : "OAuth 2.0 klienter", "OAuth 2.0 allows external services to request access to %s." : "OAuth 2.0 tillader eksterne services at forespørge adgang til din %s.", "Name" : "Navn", "Redirection URI" : "Viderestilling URI", "Client Identifier" : "Klient ID", "Secret" : "Hemmelighed", "Add client" : "Tilføj klient", "Add" : "Tilføj" },"pluralForm" :"nplurals=2; plural=(n != 1);" } l10n/en_GB.js 0000604 00000000667 15247130120 0006626 0 ustar 00 OC.L10N.register( "oauth2", { "OAuth 2.0 clients" : "OAuth 2.0 clients", "OAuth 2.0 allows external services to request access to %s." : "OAuth 2.0 allows external services to request access to %s.", "Name" : "Name", "Redirection URI" : "Redirection URI", "Client Identifier" : "Client Identifier", "Secret" : "Secret", "Add client" : "Add client", "Add" : "Add" }, "nplurals=2; plural=(n != 1);"); l10n/pt_BR.json 0000604 00000000720 15247130120 0007205 0 ustar 00 { "translations": { "OAuth 2.0 clients" : "Clientes OAuth 2.0", "OAuth 2.0 allows external services to request access to %s." : "OAuth 2.0 permite que serviços externos requisitem acesso a %s.", "Name" : "Nome", "Redirection URI" : "Redirecionamento URI", "Client Identifier" : "Identificador do Cliente", "Secret" : "Secreto", "Add client" : "Adicionar cliente", "Add" : "Adicionar" },"pluralForm" :"nplurals=2; plural=(n > 1);" } l10n/id.js 0000604 00000000672 15247130120 0006244 0 ustar 00 OC.L10N.register( "oauth2", { "OAuth 2.0 clients" : "Klien OAuth 2.0", "OAuth 2.0 allows external services to request access to %s." : "OAuth 2.0 memungkinkan layanan eksternal untuk meminta akses ke %s.", "Name" : "Nama", "Redirection URI" : "URI Pengalihan", "Client Identifier" : "Identifier klien", "Secret" : "Rahasia", "Add client" : "Tambah klien", "Add" : "Tambah" }, "nplurals=1; plural=0;"); l10n/it.json 0000604 00000000714 15247130120 0006616 0 ustar 00 { "translations": { "OAuth 2.0 clients" : "Client OAuth 2.0", "OAuth 2.0 allows external services to request access to %s." : "OAuth 2.0 consente a servizi esterni di richiedere accesso al tuo %s.", "Name" : "Nome", "Redirection URI" : "URI di redirezione", "Client Identifier" : "Identificatore client", "Secret" : "Segreto", "Add client" : "Aggiungi client", "Add" : "Aggiungi" },"pluralForm" :"nplurals=2; plural=(n != 1);" } l10n/de.json 0000604 00000000735 15247130120 0006575 0 ustar 00 { "translations": { "OAuth 2.0 clients" : "OAuth-2.0-Clients", "OAuth 2.0 allows external services to request access to %s." : "OAuth 2.0 erlaubt es externen Diensten nach Zugriff auf %s zu fragen.", "Name" : "Name", "Redirection URI" : "Weiterleitungs-URI", "Client Identifier" : "Client-Identifikationsmerkmal", "Secret" : "Geheimnis", "Add client" : "Client hinzufügen", "Add" : "Hinzufügen" },"pluralForm" :"nplurals=2; plural=(n != 1);" } l10n/ru.json 0000604 00000001301 15247130120 0006621 0 ustar 00 { "translations": { "OAuth 2.0 clients" : "Клиенты OAuth 2.0", "OAuth 2.0 allows external services to request access to %s." : "OAuth 2.0 позволяет внешним службам запрашивать доступ к %s.", "Name" : "Имя", "Redirection URI" : "URI перенаправления", "Client Identifier" : "Идентификатор клиента", "Secret" : "Секрет", "Add client" : "Добавить клиента", "Add" : "Добавить" },"pluralForm" :"nplurals=4; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<12 || n%100>14) ? 1 : n%10==0 || (n%10>=5 && n%10<=9) || (n%100>=11 && n%100<=14)? 2 : 3);" } l10n/is.js 0000604 00000000775 15247130120 0006267 0 ustar 00 OC.L10N.register( "oauth2", { "OAuth 2.0 clients" : "OAuth 2.0 biðlarar", "OAuth 2.0 allows external services to request access to %s." : "OAuth 2.0 gerir utanaðkomandi þjónustum kleift að biðja um aðgang að %s.", "Name" : "Nafn", "Redirection URI" : "Endurbeiningarslóð", "Client Identifier" : "Biðlaraauðkenni", "Secret" : "Leynilykill", "Add client" : "Bæta við biðlara", "Add" : "Bæta við" }, "nplurals=2; plural=(n % 10 != 1 || n % 100 == 11);"); l10n/af.json 0000604 00000000501 15247130120 0006562 0 ustar 00 { "translations": { "OAuth 2.0 clients" : "OAuth 2.0-kliënte", "Name" : "Naam", "Redirection URI" : "Herverwysings-URI", "Client Identifier" : "Kliëntidentifiseerder", "Secret" : "Geheim", "Add client" : "Voeg kliënt toe", "Add" : "Voeg toe" },"pluralForm" :"nplurals=2; plural=(n != 1);" } l10n/es_AR.json 0000604 00000000507 15247130120 0007173 0 ustar 00 { "translations": { "OAuth 2.0 clients" : "Clientes OAuth 2.0", "Name" : "Nombre", "Redirection URI" : "URI de redirección", "Client Identifier" : "Identificador del cliente", "Secret" : "Secreto", "Add client" : "Agregar cliente", "Add" : "Agregar" },"pluralForm" :"nplurals=2; plural=(n != 1);" } l10n/sq.json 0000604 00000000675 15247130120 0006633 0 ustar 00 { "translations": { "OAuth 2.0 clients" : "Klientë OAuth 2.0", "OAuth 2.0 allows external services to request access to %s." : "OAuth 2.0 lejon shërbime të jashtme të kërkojnë akses në %s", "Name" : "Emri", "Redirection URI" : "URI Ridrejtimi", "Client Identifier" : "Identifikues Klienti", "Secret" : "Sekret", "Add client" : "Shto klient", "Add" : "Shto " },"pluralForm" :"nplurals=2; plural=(n != 1);" } l10n/zh_CN.js 0000604 00000000665 15247130120 0006653 0 ustar 00 OC.L10N.register( "oauth2", { "OAuth 2.0 clients" : "OAuth 2.0 客户端", "OAuth 2.0 allows external services to request access to %s." : "OAuth 2.0 认证协议允许外部服务请求访问您的%s", "Name" : "名称", "Redirection URI" : "回调地址", "Client Identifier" : "客户端 ID", "Secret" : "密钥", "Add client" : "添加客户端", "Add" : "添加" }, "nplurals=1; plural=0;"); l10n/.gitkeep 0000604 00000000000 15247130120 0006724 0 ustar 00 l10n/lt_LT.json 0000604 00000001101 15247130120 0007207 0 ustar 00 { "translations": { "OAuth 2.0 clients" : "OAuth 2.0 klientai", "OAuth 2.0 allows external services to request access to %s." : "OAuth 2.0 protokolas leidžia trečiųjų šalių programinei įrangai pasiekti šiuos jūsų duomenis: %s.", "Name" : "Pavadinimas", "Redirection URI" : "Nukreipimo adresas", "Client Identifier" : "Kliento identifikatorius", "Secret" : "Paslaptis", "Add client" : "Pridėti klientą", "Add" : "Pridėti" },"pluralForm" :"nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && (n%100<10 || n%100>=20) ? 1 : 2);" } l10n/sv.js 0000604 00000000732 15247130120 0006275 0 ustar 00 OC.L10N.register( "oauth2", { "OAuth 2.0 clients" : "OAuth 2.0 klienter", "OAuth 2.0 allows external services to request access to %s." : "OAuth 2.0 tillåter externa tjänster att efterfråga tillgång till %s.", "Name" : "Namn", "Redirection URI" : "Omdirigerings-URI", "Client Identifier" : "Klientidentifierare", "Secret" : "Hemlighet", "Add client" : "Lägg till klient", "Add" : "Lägg till" }, "nplurals=2; plural=(n != 1);"); l10n/nb.js 0000604 00000000716 15247130120 0006246 0 ustar 00 OC.L10N.register( "oauth2", { "OAuth 2.0 clients" : "OAuth 2.0-klienter", "OAuth 2.0 allows external services to request access to %s." : "OAuth 2.0 lar eksterne tjenester forespørre tilgang til %s.", "Name" : "Navn", "Redirection URI" : "Videresendings-URI", "Client Identifier" : "Klient-identifikator", "Secret" : "Hemmelighet", "Add client" : "Legg til klient", "Add" : "Legg til" }, "nplurals=2; plural=(n != 1);"); l10n/pl.js 0000604 00000001137 15247130120 0006260 0 ustar 00 OC.L10N.register( "oauth2", { "OAuth 2.0 clients" : "Klienci OAuth 2.0", "OAuth 2.0 allows external services to request access to %s." : "OAuth 2.0 umożliwia usługom zewnętrznym żądanie dostępu do %s.", "Name" : "Nazwa", "Redirection URI" : "URI przekierowania", "Client Identifier" : "Identyfikator Klienta", "Secret" : "Sekret", "Add client" : "Dodaj klienta", "Add" : "Dodaj" }, "nplurals=4; plural=(n==1 ? 0 : (n%10>=2 && n%10<=4) && (n%100<12 || n%100>14) ? 1 : n!=1 && (n%10>=0 && n%10<=1) || (n%10>=5 && n%10<=9) || (n%100>=12 && n%100<=14) ? 2 : 3);"); l10n/ru.js 0000604 00000001307 15247130120 0006272 0 ustar 00 OC.L10N.register( "oauth2", { "OAuth 2.0 clients" : "Клиенты OAuth 2.0", "OAuth 2.0 allows external services to request access to %s." : "OAuth 2.0 позволяет внешним службам запрашивать доступ к %s.", "Name" : "Имя", "Redirection URI" : "URI перенаправления", "Client Identifier" : "Идентификатор клиента", "Secret" : "Секрет", "Add client" : "Добавить клиента", "Add" : "Добавить" }, "nplurals=4; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<12 || n%100>14) ? 1 : n%10==0 || (n%10>=5 && n%10<=9) || (n%100>=11 && n%100<=14)? 2 : 3);"); l10n/it.js 0000604 00000000722 15247130120 0006260 0 ustar 00 OC.L10N.register( "oauth2", { "OAuth 2.0 clients" : "Client OAuth 2.0", "OAuth 2.0 allows external services to request access to %s." : "OAuth 2.0 consente a servizi esterni di richiedere accesso al tuo %s.", "Name" : "Nome", "Redirection URI" : "URI di redirezione", "Client Identifier" : "Identificatore client", "Secret" : "Segreto", "Add client" : "Aggiungi client", "Add" : "Aggiungi" }, "nplurals=2; plural=(n != 1);"); l10n/pl.json 0000604 00000001131 15247130120 0006607 0 ustar 00 { "translations": { "OAuth 2.0 clients" : "Klienci OAuth 2.0", "OAuth 2.0 allows external services to request access to %s." : "OAuth 2.0 umożliwia usługom zewnętrznym żądanie dostępu do %s.", "Name" : "Nazwa", "Redirection URI" : "URI przekierowania", "Client Identifier" : "Identyfikator Klienta", "Secret" : "Sekret", "Add client" : "Dodaj klienta", "Add" : "Dodaj" },"pluralForm" :"nplurals=4; plural=(n==1 ? 0 : (n%10>=2 && n%10<=4) && (n%100<12 || n%100>14) ? 1 : n!=1 && (n%10>=0 && n%10<=1) || (n%10>=5 && n%10<=9) || (n%100>=12 && n%100<=14) ? 2 : 3);" } l10n/ja.json 0000604 00000000775 15247130120 0006603 0 ustar 00 { "translations": { "OAuth 2.0 clients" : "OAuth 2.0クライアント", "OAuth 2.0 allows external services to request access to %s." : "OAuth 2.0 により外部サービスから %s にアクセスを要求できます", "Name" : "名前", "Redirection URI" : "リダイレクトURI", "Client Identifier" : "クライアントID", "Secret" : "シークレットキー", "Add client" : "クライアントを追加", "Add" : "追加" },"pluralForm" :"nplurals=1; plural=0;" } l10n/tr.js 0000604 00000000724 15247130120 0006273 0 ustar 00 OC.L10N.register( "oauth2", { "OAuth 2.0 clients" : "OAuth 2.0 istemcileri", "OAuth 2.0 allows external services to request access to %s." : "OAuth 2.0 dış hizmetlerin %s için erişim isteğinde bulunmasını sağlar.", "Name" : "Ad", "Redirection URI" : "Yönlendirme Adresi", "Client Identifier" : "İstemci Belirteci", "Secret" : "Parola", "Add client" : "İstemci Ekle", "Add" : "Ekle" }, "nplurals=2; plural=(n > 1);"); l10n/el.js 0000604 00000001133 15247130120 0006241 0 ustar 00 OC.L10N.register( "oauth2", { "OAuth 2.0 clients" : "Πελάτες OAuth 2.0", "OAuth 2.0 allows external services to request access to %s." : "Το OAuth 2.0 επιτρέπει σε εξωτερικές υπηρεσίες να ζητούν πρόσβαση στο %s σας.", "Name" : "Όνομα", "Redirection URI" : "URI ανακατεύθυνσης", "Client Identifier" : "Αναγνωριστικό πελάτη", "Secret" : "Μυστικό", "Add client" : "Προσθήκη πελάτη", "Add" : "Προσθήκη" }, "nplurals=2; plural=(n != 1);"); l10n/fr.js 0000604 00000000721 15247130120 0006252 0 ustar 00 OC.L10N.register( "oauth2", { "OAuth 2.0 clients" : "Clients OAuth 2.0", "OAuth 2.0 allows external services to request access to %s." : "OAuth 2.0 permet à des services externes de demander l'accès à %s.", "Name" : "Nom", "Redirection URI" : "URI de redirection", "Client Identifier" : "Identifiant du client", "Secret" : "Secret", "Add client" : "Ajouter un client", "Add" : "Ajouter" }, "nplurals=2; plural=(n > 1);"); l10n/id.json 0000604 00000000664 15247130120 0006602 0 ustar 00 { "translations": { "OAuth 2.0 clients" : "Klien OAuth 2.0", "OAuth 2.0 allows external services to request access to %s." : "OAuth 2.0 memungkinkan layanan eksternal untuk meminta akses ke %s.", "Name" : "Nama", "Redirection URI" : "URI Pengalihan", "Client Identifier" : "Identifier klien", "Secret" : "Rahasia", "Add client" : "Tambah klien", "Add" : "Tambah" },"pluralForm" :"nplurals=1; plural=0;" } l10n/lv.json 0000604 00000000557 15247130120 0006630 0 ustar 00 { "translations": { "OAuth 2.0 clients" : "OAuth 2.0 klients", "Name" : "Nosaukums", "Redirection URI" : "Pārvirzāmais URI", "Client Identifier" : "Klienta identifikators", "Secret" : "Noslēpums", "Add client" : "Pievienot klientu", "Add" : "Pievienot" },"pluralForm" :"nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n != 0 ? 1 : 2);" } l10n/nb.json 0000604 00000000710 15247130120 0006575 0 ustar 00 { "translations": { "OAuth 2.0 clients" : "OAuth 2.0-klienter", "OAuth 2.0 allows external services to request access to %s." : "OAuth 2.0 lar eksterne tjenester forespørre tilgang til %s.", "Name" : "Navn", "Redirection URI" : "Videresendings-URI", "Client Identifier" : "Klient-identifikator", "Secret" : "Hemmelighet", "Add client" : "Legg til klient", "Add" : "Legg til" },"pluralForm" :"nplurals=2; plural=(n != 1);" } l10n/af.js 0000604 00000000507 15247130120 0006233 0 ustar 00 OC.L10N.register( "oauth2", { "OAuth 2.0 clients" : "OAuth 2.0-kliënte", "Name" : "Naam", "Redirection URI" : "Herverwysings-URI", "Client Identifier" : "Kliëntidentifiseerder", "Secret" : "Geheim", "Add client" : "Voeg kliënt toe", "Add" : "Voeg toe" }, "nplurals=2; plural=(n != 1);"); l10n/fi.json 0000604 00000000502 15247130120 0006573 0 ustar 00 { "translations": { "OAuth 2.0 clients" : "OAuth 2.0 -asiakkaat", "Name" : "Nimi", "Redirection URI" : "Uudelleenohjaus URI", "Client Identifier" : "Asiakkaan tunniste", "Secret" : "Salaisuus", "Add client" : "Lisää asiakas", "Add" : "Lisää" },"pluralForm" :"nplurals=2; plural=(n != 1);" } l10n/tr.json 0000604 00000000716 15247130120 0006631 0 ustar 00 { "translations": { "OAuth 2.0 clients" : "OAuth 2.0 istemcileri", "OAuth 2.0 allows external services to request access to %s." : "OAuth 2.0 dış hizmetlerin %s için erişim isteğinde bulunmasını sağlar.", "Name" : "Ad", "Redirection URI" : "Yönlendirme Adresi", "Client Identifier" : "İstemci Belirteci", "Secret" : "Parola", "Add client" : "İstemci Ekle", "Add" : "Ekle" },"pluralForm" :"nplurals=2; plural=(n > 1);" } l10n/sq.js 0000604 00000000703 15247130120 0006266 0 ustar 00 OC.L10N.register( "oauth2", { "OAuth 2.0 clients" : "Klientë OAuth 2.0", "OAuth 2.0 allows external services to request access to %s." : "OAuth 2.0 lejon shërbime të jashtme të kërkojnë akses në %s", "Name" : "Emri", "Redirection URI" : "URI Ridrejtimi", "Client Identifier" : "Identifikues Klienti", "Secret" : "Sekret", "Add client" : "Shto klient", "Add" : "Shto " }, "nplurals=2; plural=(n != 1);"); l10n/vi.js 0000604 00000000435 15247130120 0006263 0 ustar 00 OC.L10N.register( "oauth2", { "OAuth 2.0 clients" : "kết nối OAuth 2.0", "Name" : "Tên", "Redirection URI" : "Liên kết chuyển tiếp", "Secret" : "Mật khẩu", "Add client" : "Thêm kết nối", "Add" : "Thêm" }, "nplurals=1; plural=0;"); l10n/cs.json 0000604 00000000753 15247130120 0006612 0 ustar 00 { "translations": { "OAuth 2.0 clients" : "OAuth 2.0 klienti", "OAuth 2.0 allows external services to request access to %s." : "OAuth 2.0 umožňuje cizím službám žádat přístup k %s.", "Name" : "Název", "Redirection URI" : "URL pro přesměrování", "Client Identifier" : "Identifikátor klienta", "Secret" : "Tajemství", "Add client" : "Přidat klienta", "Add" : "Přidat" },"pluralForm" :"nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;" } l10n/el.json 0000604 00000001125 15247130120 0006577 0 ustar 00 { "translations": { "OAuth 2.0 clients" : "Πελάτες OAuth 2.0", "OAuth 2.0 allows external services to request access to %s." : "Το OAuth 2.0 επιτρέπει σε εξωτερικές υπηρεσίες να ζητούν πρόσβαση στο %s σας.", "Name" : "Όνομα", "Redirection URI" : "URI ανακατεύθυνσης", "Client Identifier" : "Αναγνωριστικό πελάτη", "Secret" : "Μυστικό", "Add client" : "Προσθήκη πελάτη", "Add" : "Προσθήκη" },"pluralForm" :"nplurals=2; plural=(n != 1);" } client.php 0000644 00000022142 15247162447 0006550 0 ustar 00 <?php /** * @package Joomla.Platform * @subpackage OAuth2 * * @copyright (C) 2013 Open Source Matters, Inc. <https://www.joomla.org> * @license GNU General Public License version 2 or later; see LICENSE */ defined('JPATH_PLATFORM') or die; use Joomla\Registry\Registry; /** * Joomla Platform class for interacting with an OAuth 2.0 server. * * @since 3.1.4 * @deprecated 4.0 Use the `joomla/oauth2` framework package that will be bundled instead */ class JOAuth2Client { /** * @var Registry Options for the JOAuth2Client object. * @since 3.1.4 */ protected $options; /** * @var JHttp The HTTP client object to use in sending HTTP requests. * @since 3.1.4 */ protected $http; /** * @var JInput The input object to use in retrieving GET/POST data. * @since 3.1.4 */ protected $input; /** * @var JApplicationWeb The application object to send HTTP headers for redirects. * @since 3.1.4 */ protected $application; /** * Constructor. * * @param Registry $options JOAuth2Client options object * @param JHttp $http The HTTP client object * @param JInput $input The input object * @param JApplicationWeb $application The application object * * @since 3.1.4 */ public function __construct(Registry $options = null, JHttp $http = null, JInput $input = null, JApplicationWeb $application = null) { $this->options = isset($options) ? $options : new Registry; $this->http = isset($http) ? $http : new JHttp($this->options); $this->application = isset($application) ? $application : new JApplicationWeb; $this->input = isset($input) ? $input : $this->application->input; } /** * Get the access token or redict to the authentication URL. * * @return string The access token * * @since 3.1.4 * @throws RuntimeException */ public function authenticate() { if ($data['code'] = $this->input->get('code', false, 'raw')) { $data['grant_type'] = 'authorization_code'; $data['redirect_uri'] = $this->getOption('redirecturi'); $data['client_id'] = $this->getOption('clientid'); $data['client_secret'] = $this->getOption('clientsecret'); $response = $this->http->post($this->getOption('tokenurl'), $data); if ($response->code >= 200 && $response->code < 400) { if (strpos($response->headers['Content-Type'], 'application/json') === 0) { $token = array_merge(json_decode($response->body, true), array('created' => time())); } else { parse_str($response->body, $token); $token = array_merge($token, array('created' => time())); } $this->setToken($token); return $token; } else { throw new RuntimeException('Error code ' . $response->code . ' received requesting access token: ' . $response->body . '.'); } } if ($this->getOption('sendheaders')) { $this->application->redirect($this->createUrl()); } return false; } /** * Verify if the client has been authenticated * * @return boolean Is authenticated * * @since 3.1.4 */ public function isAuthenticated() { $token = $this->getToken(); if (!$token || !array_key_exists('access_token', $token)) { return false; } elseif (array_key_exists('expires_in', $token) && $token['created'] + $token['expires_in'] < time() + 20) { return false; } else { return true; } } /** * Create the URL for authentication. * * @return JHttpResponse The HTTP response * * @since 3.1.4 * @throws InvalidArgumentException */ public function createUrl() { if (!$this->getOption('authurl') || !$this->getOption('clientid')) { throw new InvalidArgumentException('Authorization URL and client_id are required'); } $url = $this->getOption('authurl'); if (strpos($url, '?')) { $url .= '&'; } else { $url .= '?'; } $url .= 'response_type=code'; $url .= '&client_id=' . urlencode($this->getOption('clientid')); if ($this->getOption('redirecturi')) { $url .= '&redirect_uri=' . urlencode($this->getOption('redirecturi')); } if ($this->getOption('scope')) { $scope = is_array($this->getOption('scope')) ? implode(' ', $this->getOption('scope')) : $this->getOption('scope'); $url .= '&scope=' . urlencode($scope); } if ($this->getOption('state')) { $url .= '&state=' . urlencode($this->getOption('state')); } if (is_array($this->getOption('requestparams'))) { foreach ($this->getOption('requestparams') as $key => $value) { $url .= '&' . $key . '=' . urlencode($value); } } return $url; } /** * Send a signed Oauth request. * * @param string $url The URL for the request. * @param mixed $data The data to include in the request * @param array $headers The headers to send with the request * @param string $method The method with which to send the request * @param int $timeout The timeout for the request * * @return string The URL. * * @since 3.1.4 * @throws InvalidArgumentException * @throws RuntimeException */ public function query($url, $data = null, $headers = array(), $method = 'get', $timeout = null) { $token = $this->getToken(); if (array_key_exists('expires_in', $token) && $token['created'] + $token['expires_in'] < time() + 20) { if (!$this->getOption('userefresh')) { return false; } $token = $this->refreshToken($token['refresh_token']); } if (!$this->getOption('authmethod') || $this->getOption('authmethod') == 'bearer') { $headers['Authorization'] = 'Bearer ' . $token['access_token']; } elseif ($this->getOption('authmethod') == 'get') { if (strpos($url, '?')) { $url .= '&'; } else { $url .= '?'; } $url .= $this->getOption('getparam') ? $this->getOption('getparam') : 'access_token'; $url .= '=' . $token['access_token']; } switch ($method) { case 'head': case 'get': case 'delete': case 'trace': $response = $this->http->$method($url, $headers, $timeout); break; case 'post': case 'put': case 'patch': $response = $this->http->$method($url, $data, $headers, $timeout); break; default: throw new InvalidArgumentException('Unknown HTTP request method: ' . $method . '.'); } if ($response->code < 200 || $response->code >= 400) { throw new RuntimeException('Error code ' . $response->code . ' received requesting data: ' . $response->body . '.'); } return $response; } /** * Get an option from the JOAuth2Client instance. * * @param string $key The name of the option to get * * @return mixed The option value * * @since 3.1.4 */ public function getOption($key) { return $this->options->get($key); } /** * Set an option for the JOAuth2Client instance. * * @param string $key The name of the option to set * @param mixed $value The option value to set * * @return JOAuth2Client This object for method chaining * * @since 3.1.4 */ public function setOption($key, $value) { $this->options->set($key, $value); return $this; } /** * Get the access token from the JOAuth2Client instance. * * @return array The access token * * @since 3.1.4 */ public function getToken() { return $this->getOption('accesstoken'); } /** * Set an option for the JOAuth2Client instance. * * @param array $value The access token * * @return JOAuth2Client This object for method chaining * * @since 3.1.4 */ public function setToken($value) { if (is_array($value) && !array_key_exists('expires_in', $value) && array_key_exists('expires', $value)) { $value['expires_in'] = $value['expires']; unset($value['expires']); } $this->setOption('accesstoken', $value); return $this; } /** * Refresh the access token instance. * * @param string $token The refresh token * * @return array The new access token * * @since 3.1.4 * @throws Exception * @throws RuntimeException */ public function refreshToken($token = null) { if (!$this->getOption('userefresh')) { throw new RuntimeException('Refresh token is not supported for this OAuth instance.'); } if (!$token) { $token = $this->getToken(); if (!array_key_exists('refresh_token', $token)) { throw new RuntimeException('No refresh token is available.'); } $token = $token['refresh_token']; } $data['grant_type'] = 'refresh_token'; $data['refresh_token'] = $token; $data['client_id'] = $this->getOption('clientid'); $data['client_secret'] = $this->getOption('clientsecret'); $response = $this->http->post($this->getOption('tokenurl'), $data); if ($response->code >= 200 || $response->code < 400) { if (strpos($response->headers['Content-Type'], 'application/json') === 0) { $token = array_merge(json_decode($response->body, true), array('created' => time())); } else { parse_str($response->body, $token); $token = array_merge($token, array('created' => time())); } $this->setToken($token); return $token; } else { throw new Exception('Error code ' . $response->code . ' received refreshing token: ' . $response->body . '.'); } } } index.html 0000644 00000000037 15247173155 0006553 0 ustar 00 <!DOCTYPE html><title></title>
| ver. 1.4 |
Github
|
.
| PHP 7.4.33 | Generation time: 0 |
proxy
|
phpinfo
|
Settings