@@ -29,46 +29,46 @@ |
||
| 29 | 29 | |
| 30 | 30 | class Admin implements ISettings { |
| 31 | 31 | |
| 32 | - /** @var IInitialStateService */ |
|
| 33 | - private $initialStateService; |
|
| 32 | + /** @var IInitialStateService */ |
|
| 33 | + private $initialStateService; |
|
| 34 | 34 | |
| 35 | - /** @var ClientMapper */ |
|
| 36 | - private $clientMapper; |
|
| 35 | + /** @var ClientMapper */ |
|
| 36 | + private $clientMapper; |
|
| 37 | 37 | |
| 38 | - public function __construct(IInitialStateService $initialStateService, |
|
| 39 | - ClientMapper $clientMapper) { |
|
| 40 | - $this->initialStateService = $initialStateService; |
|
| 41 | - $this->clientMapper = $clientMapper; |
|
| 42 | - } |
|
| 38 | + public function __construct(IInitialStateService $initialStateService, |
|
| 39 | + ClientMapper $clientMapper) { |
|
| 40 | + $this->initialStateService = $initialStateService; |
|
| 41 | + $this->clientMapper = $clientMapper; |
|
| 42 | + } |
|
| 43 | 43 | |
| 44 | - public function getForm(): TemplateResponse { |
|
| 45 | - $clients = $this->clientMapper->getClients(); |
|
| 46 | - $result = []; |
|
| 44 | + public function getForm(): TemplateResponse { |
|
| 45 | + $clients = $this->clientMapper->getClients(); |
|
| 46 | + $result = []; |
|
| 47 | 47 | |
| 48 | - foreach ($clients as $client) { |
|
| 49 | - $result[] = [ |
|
| 50 | - 'id' => $client->getId(), |
|
| 51 | - 'name' => $client->getName(), |
|
| 52 | - 'redirectUri' => $client->getRedirectUri(), |
|
| 53 | - 'clientId' => $client->getClientIdentifier(), |
|
| 54 | - 'clientSecret' => $client->getSecret(), |
|
| 55 | - ]; |
|
| 56 | - } |
|
| 57 | - $this->initialStateService->provideInitialState('oauth2', 'clients', $result); |
|
| 48 | + foreach ($clients as $client) { |
|
| 49 | + $result[] = [ |
|
| 50 | + 'id' => $client->getId(), |
|
| 51 | + 'name' => $client->getName(), |
|
| 52 | + 'redirectUri' => $client->getRedirectUri(), |
|
| 53 | + 'clientId' => $client->getClientIdentifier(), |
|
| 54 | + 'clientSecret' => $client->getSecret(), |
|
| 55 | + ]; |
|
| 56 | + } |
|
| 57 | + $this->initialStateService->provideInitialState('oauth2', 'clients', $result); |
|
| 58 | 58 | |
| 59 | - return new TemplateResponse( |
|
| 60 | - 'oauth2', |
|
| 61 | - 'admin', |
|
| 62 | - [], |
|
| 63 | - '' |
|
| 64 | - ); |
|
| 65 | - } |
|
| 59 | + return new TemplateResponse( |
|
| 60 | + 'oauth2', |
|
| 61 | + 'admin', |
|
| 62 | + [], |
|
| 63 | + '' |
|
| 64 | + ); |
|
| 65 | + } |
|
| 66 | 66 | |
| 67 | - public function getSection(): string { |
|
| 68 | - return 'security'; |
|
| 69 | - } |
|
| 67 | + public function getSection(): string { |
|
| 68 | + return 'security'; |
|
| 69 | + } |
|
| 70 | 70 | |
| 71 | - public function getPriority(): int { |
|
| 72 | - return 100; |
|
| 73 | - } |
|
| 71 | + public function getPriority(): int { |
|
| 72 | + return 100; |
|
| 73 | + } |
|
| 74 | 74 | } |
@@ -34,73 +34,73 @@ |
||
| 34 | 34 | use OCP\Security\ISecureRandom; |
| 35 | 35 | |
| 36 | 36 | class SettingsController extends Controller { |
| 37 | - /** @var ClientMapper */ |
|
| 38 | - private $clientMapper; |
|
| 39 | - /** @var ISecureRandom */ |
|
| 40 | - private $secureRandom; |
|
| 41 | - /** @var AccessTokenMapper */ |
|
| 42 | - private $accessTokenMapper; |
|
| 43 | - /** @var DefaultTokenMapper */ |
|
| 44 | - private $defaultTokenMapper; |
|
| 45 | - /** @var IL10N */ |
|
| 46 | - private $l; |
|
| 37 | + /** @var ClientMapper */ |
|
| 38 | + private $clientMapper; |
|
| 39 | + /** @var ISecureRandom */ |
|
| 40 | + private $secureRandom; |
|
| 41 | + /** @var AccessTokenMapper */ |
|
| 42 | + private $accessTokenMapper; |
|
| 43 | + /** @var DefaultTokenMapper */ |
|
| 44 | + private $defaultTokenMapper; |
|
| 45 | + /** @var IL10N */ |
|
| 46 | + private $l; |
|
| 47 | 47 | |
| 48 | - const validChars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789'; |
|
| 48 | + const validChars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789'; |
|
| 49 | 49 | |
| 50 | - /** |
|
| 51 | - * @param string $appName |
|
| 52 | - * @param IRequest $request |
|
| 53 | - * @param ClientMapper $clientMapper |
|
| 54 | - * @param ISecureRandom $secureRandom |
|
| 55 | - * @param AccessTokenMapper $accessTokenMapper |
|
| 56 | - * @param DefaultTokenMapper $defaultTokenMapper |
|
| 57 | - */ |
|
| 58 | - public function __construct(string $appName, |
|
| 59 | - IRequest $request, |
|
| 60 | - ClientMapper $clientMapper, |
|
| 61 | - ISecureRandom $secureRandom, |
|
| 62 | - AccessTokenMapper $accessTokenMapper, |
|
| 63 | - DefaultTokenMapper $defaultTokenMapper, |
|
| 64 | - IL10N $l |
|
| 65 | - ) { |
|
| 66 | - parent::__construct($appName, $request); |
|
| 67 | - $this->secureRandom = $secureRandom; |
|
| 68 | - $this->clientMapper = $clientMapper; |
|
| 69 | - $this->accessTokenMapper = $accessTokenMapper; |
|
| 70 | - $this->defaultTokenMapper = $defaultTokenMapper; |
|
| 71 | - $this->l = $l; |
|
| 72 | - } |
|
| 50 | + /** |
|
| 51 | + * @param string $appName |
|
| 52 | + * @param IRequest $request |
|
| 53 | + * @param ClientMapper $clientMapper |
|
| 54 | + * @param ISecureRandom $secureRandom |
|
| 55 | + * @param AccessTokenMapper $accessTokenMapper |
|
| 56 | + * @param DefaultTokenMapper $defaultTokenMapper |
|
| 57 | + */ |
|
| 58 | + public function __construct(string $appName, |
|
| 59 | + IRequest $request, |
|
| 60 | + ClientMapper $clientMapper, |
|
| 61 | + ISecureRandom $secureRandom, |
|
| 62 | + AccessTokenMapper $accessTokenMapper, |
|
| 63 | + DefaultTokenMapper $defaultTokenMapper, |
|
| 64 | + IL10N $l |
|
| 65 | + ) { |
|
| 66 | + parent::__construct($appName, $request); |
|
| 67 | + $this->secureRandom = $secureRandom; |
|
| 68 | + $this->clientMapper = $clientMapper; |
|
| 69 | + $this->accessTokenMapper = $accessTokenMapper; |
|
| 70 | + $this->defaultTokenMapper = $defaultTokenMapper; |
|
| 71 | + $this->l = $l; |
|
| 72 | + } |
|
| 73 | 73 | |
| 74 | - public function addClient(string $name, |
|
| 75 | - string $redirectUri): JSONResponse { |
|
| 74 | + public function addClient(string $name, |
|
| 75 | + string $redirectUri): JSONResponse { |
|
| 76 | 76 | |
| 77 | - if (filter_var($redirectUri, FILTER_VALIDATE_URL) === false) { |
|
| 78 | - return new JSONResponse(['message' => $this->l->t('Your redirect URL needs to be a full URL for example: https://yourdomain.com/path')], Http::STATUS_BAD_REQUEST); |
|
| 79 | - } |
|
| 77 | + if (filter_var($redirectUri, FILTER_VALIDATE_URL) === false) { |
|
| 78 | + return new JSONResponse(['message' => $this->l->t('Your redirect URL needs to be a full URL for example: https://yourdomain.com/path')], Http::STATUS_BAD_REQUEST); |
|
| 79 | + } |
|
| 80 | 80 | |
| 81 | - $client = new Client(); |
|
| 82 | - $client->setName($name); |
|
| 83 | - $client->setRedirectUri($redirectUri); |
|
| 84 | - $client->setSecret($this->secureRandom->generate(64, self::validChars)); |
|
| 85 | - $client->setClientIdentifier($this->secureRandom->generate(64, self::validChars)); |
|
| 86 | - $client = $this->clientMapper->insert($client); |
|
| 81 | + $client = new Client(); |
|
| 82 | + $client->setName($name); |
|
| 83 | + $client->setRedirectUri($redirectUri); |
|
| 84 | + $client->setSecret($this->secureRandom->generate(64, self::validChars)); |
|
| 85 | + $client->setClientIdentifier($this->secureRandom->generate(64, self::validChars)); |
|
| 86 | + $client = $this->clientMapper->insert($client); |
|
| 87 | 87 | |
| 88 | - $result = [ |
|
| 89 | - 'id' => $client->getId(), |
|
| 90 | - 'name' => $client->getName(), |
|
| 91 | - 'redirectUri' => $client->getRedirectUri(), |
|
| 92 | - 'clientId' => $client->getClientIdentifier(), |
|
| 93 | - 'clientSecret' => $client->getSecret(), |
|
| 94 | - ]; |
|
| 88 | + $result = [ |
|
| 89 | + 'id' => $client->getId(), |
|
| 90 | + 'name' => $client->getName(), |
|
| 91 | + 'redirectUri' => $client->getRedirectUri(), |
|
| 92 | + 'clientId' => $client->getClientIdentifier(), |
|
| 93 | + 'clientSecret' => $client->getSecret(), |
|
| 94 | + ]; |
|
| 95 | 95 | |
| 96 | - return new JSONResponse($result); |
|
| 97 | - } |
|
| 96 | + return new JSONResponse($result); |
|
| 97 | + } |
|
| 98 | 98 | |
| 99 | - public function deleteClient(int $id): JSONResponse { |
|
| 100 | - $client = $this->clientMapper->getByUid($id); |
|
| 101 | - $this->accessTokenMapper->deleteByClientId($id); |
|
| 102 | - $this->defaultTokenMapper->deleteByName($client->getName()); |
|
| 103 | - $this->clientMapper->delete($client); |
|
| 104 | - return new JSONResponse([]); |
|
| 105 | - } |
|
| 99 | + public function deleteClient(int $id): JSONResponse { |
|
| 100 | + $client = $this->clientMapper->getByUid($id); |
|
| 101 | + $this->accessTokenMapper->deleteByClientId($id); |
|
| 102 | + $this->defaultTokenMapper->deleteByName($client->getName()); |
|
| 103 | + $this->clientMapper->delete($client); |
|
| 104 | + return new JSONResponse([]); |
|
| 105 | + } |
|
| 106 | 106 | } |
@@ -20,26 +20,26 @@ |
||
| 20 | 20 | */ |
| 21 | 21 | |
| 22 | 22 | return [ |
| 23 | - 'routes' => [ |
|
| 24 | - [ |
|
| 25 | - 'name' => 'Settings#addClient', |
|
| 26 | - 'url' => '/clients', |
|
| 27 | - 'verb' => 'POST', |
|
| 28 | - ], |
|
| 29 | - [ |
|
| 30 | - 'name' => 'Settings#deleteClient', |
|
| 31 | - 'url' => '/clients/{id}', |
|
| 32 | - 'verb' => 'DELETE' |
|
| 33 | - ], |
|
| 34 | - [ |
|
| 35 | - 'name' => 'LoginRedirector#authorize', |
|
| 36 | - 'url' => '/authorize', |
|
| 37 | - 'verb' => 'GET', |
|
| 38 | - ], |
|
| 39 | - [ |
|
| 40 | - 'name' => 'OauthApi#getToken', |
|
| 41 | - 'url' => '/api/v1/token', |
|
| 42 | - 'verb' => 'POST' |
|
| 43 | - ], |
|
| 44 | - ], |
|
| 23 | + 'routes' => [ |
|
| 24 | + [ |
|
| 25 | + 'name' => 'Settings#addClient', |
|
| 26 | + 'url' => '/clients', |
|
| 27 | + 'verb' => 'POST', |
|
| 28 | + ], |
|
| 29 | + [ |
|
| 30 | + 'name' => 'Settings#deleteClient', |
|
| 31 | + 'url' => '/clients/{id}', |
|
| 32 | + 'verb' => 'DELETE' |
|
| 33 | + ], |
|
| 34 | + [ |
|
| 35 | + 'name' => 'LoginRedirector#authorize', |
|
| 36 | + 'url' => '/authorize', |
|
| 37 | + 'verb' => 'GET', |
|
| 38 | + ], |
|
| 39 | + [ |
|
| 40 | + 'name' => 'OauthApi#getToken', |
|
| 41 | + 'url' => '/api/v1/token', |
|
| 42 | + 'verb' => 'POST' |
|
| 43 | + ], |
|
| 44 | + ], |
|
| 45 | 45 | ]; |