From 1460e417c15d58972f97624f1df5d0b18300f6e0 Mon Sep 17 00:00:00 2001 From: Philipp Holzer Date: Wed, 1 May 2019 00:32:33 +0200 Subject: [PATCH 1/2] Move mod/amcd to src/Module/AccMgmtControlDoc --- mod/amcd.php | 49 --------- src/App/Router.php | 167 ++++++++++++++++--------------- src/Module/AccMgmtControlDoc.php | 67 +++++++++++++ 3 files changed, 151 insertions(+), 132 deletions(-) delete mode 100644 mod/amcd.php create mode 100644 src/Module/AccMgmtControlDoc.php diff --git a/mod/amcd.php b/mod/amcd.php deleted file mode 100644 index ca5aa07aae..0000000000 --- a/mod/amcd.php +++ /dev/null @@ -1,49 +0,0 @@ -collectRoutes. - * - * @package Friendica\App - */ -class Router -{ - /** @var RouteCollector */ - protected $routeCollector; - - /** - * Static declaration of Friendica routes. - * - * Supports: - * - Route groups - * - Variable parts - * Disregards: - * - HTTP method other than GET - * - Named parameters - * - * Handler must be the name of a class extending Friendica\BaseModule. - * - * @brief Static declaration of Friendica routes. - */ - public function collectRoutes() - { - $this->routeCollector->addRoute(['GET', 'POST'], '/itemsource[/{guid}]', Module\Itemsource::class); - } - - public function __construct(RouteCollector $routeCollector = null) - { - if (!$routeCollector) { - $routeCollector = new RouteCollector(new Std(), new GroupCountBased()); - } - - $this->routeCollector = $routeCollector; - } - - public function getRouteCollector() - { - return $this->routeCollector; - } - - /** - * Returns the relevant module class name for the given page URI or NULL if no route rule matched. - * - * @param string $cmd The path component of the request URL without the query string - * @return string|null A Friendica\BaseModule-extending class name if a route rule matched - */ - public function getModuleClass($cmd) - { - $cmd = '/' . ltrim($cmd, '/'); - - $dispatcher = new \FastRoute\Dispatcher\GroupCountBased($this->routeCollector->getData()); - - $moduleClass = null; - - // @TODO: Enable method-specific modules - $httpMethod = 'GET'; - $routeInfo = $dispatcher->dispatch($httpMethod, $cmd); - if ($routeInfo[0] === Dispatcher::FOUND) { - $moduleClass = $routeInfo[1]; - } - - return $moduleClass; - } -} +collectRoutes. + * + * @package Friendica\App + */ +class Router +{ + /** @var RouteCollector */ + protected $routeCollector; + + /** + * Static declaration of Friendica routes. + * + * Supports: + * - Route groups + * - Variable parts + * Disregards: + * - HTTP method other than GET + * - Named parameters + * + * Handler must be the name of a class extending Friendica\BaseModule. + * + * @brief Static declaration of Friendica routes. + */ + public function collectRoutes() + { + $this->routeCollector->addRoute(['GET', 'POST'], '/itemsource[/{guid}]', Module\Itemsource::class); + $this->routeCollector->addRoute(['GET'], '/amcd', Module\AccMgmtControlDoc::class); + } + + public function __construct(RouteCollector $routeCollector = null) + { + if (!$routeCollector) { + $routeCollector = new RouteCollector(new Std(), new GroupCountBased()); + } + + $this->routeCollector = $routeCollector; + } + + public function getRouteCollector() + { + return $this->routeCollector; + } + + /** + * Returns the relevant module class name for the given page URI or NULL if no route rule matched. + * + * @param string $cmd The path component of the request URL without the query string + * @return string|null A Friendica\BaseModule-extending class name if a route rule matched + */ + public function getModuleClass($cmd) + { + $cmd = '/' . ltrim($cmd, '/'); + + $dispatcher = new \FastRoute\Dispatcher\GroupCountBased($this->routeCollector->getData()); + + $moduleClass = null; + + // @TODO: Enable method-specific modules + $httpMethod = 'GET'; + $routeInfo = $dispatcher->dispatch($httpMethod, $cmd); + if ($routeInfo[0] === Dispatcher::FOUND) { + $moduleClass = $routeInfo[1]; + } + + return $moduleClass; + } +} diff --git a/src/Module/AccMgmtControlDoc.php b/src/Module/AccMgmtControlDoc.php new file mode 100644 index 0000000000..bc7c8e811f --- /dev/null +++ b/src/Module/AccMgmtControlDoc.php @@ -0,0 +1,67 @@ + 1, + 'sessionstatus' => [ + 'method' => 'GET', + 'path' => '/session', + ], + 'auth-methods' => [ + 'username-password-form' => [ + 'connect' => [ + 'method' => 'POST', + 'path' => '/login', + 'params' => [ + 'username' => 'login-name', + 'password' => 'password', + ], + 'onsuccess' => [ + 'action' => 'reload', + ], + ], + 'disconnect' => [ + 'method' => 'GET', + 'path' => '/logout', + ], + ], + ], + 'methods' => [ + 'username-password-form' => [ + 'connect' => [ + 'method' => 'POST', + 'path' => '/login', + 'params' => [ + 'username' => 'login-name', + 'password' => 'password', + ], + 'onsuccess' => [ + 'action' => 'reload', + ], + ], + 'disconnect' => [ + 'method' => 'GET', + 'path' => '/logout', + ], + ], + ], + ]; + + echo json_encode($output); + exit(); + } +} From 08d4c7f1a9da670b0dcf22daac5c05b88df2ddff Mon Sep 17 00:00:00 2001 From: Philipp Holzer Date: Wed, 1 May 2019 17:05:46 +0200 Subject: [PATCH 2/2] Rename to AccountManagementControlDocument --- src/App/Router.php | 2 +- ...gmtControlDoc.php => AccountManagementControlDocument.php} | 4 +--- 2 files changed, 2 insertions(+), 4 deletions(-) rename src/Module/{AccMgmtControlDoc.php => AccountManagementControlDocument.php} (94%) diff --git a/src/App/Router.php b/src/App/Router.php index 0785de1b98..039d3e2cf9 100644 --- a/src/App/Router.php +++ b/src/App/Router.php @@ -41,7 +41,7 @@ class Router public function collectRoutes() { $this->routeCollector->addRoute(['GET', 'POST'], '/itemsource[/{guid}]', Module\Itemsource::class); - $this->routeCollector->addRoute(['GET'], '/amcd', Module\AccMgmtControlDoc::class); + $this->routeCollector->addRoute(['GET'], '/amcd', Module\AccountManagementControlDocument::class); } public function __construct(RouteCollector $routeCollector = null) diff --git a/src/Module/AccMgmtControlDoc.php b/src/Module/AccountManagementControlDocument.php similarity index 94% rename from src/Module/AccMgmtControlDoc.php rename to src/Module/AccountManagementControlDocument.php index bc7c8e811f..2e2a9e496d 100644 --- a/src/Module/AccMgmtControlDoc.php +++ b/src/Module/AccountManagementControlDocument.php @@ -9,12 +9,10 @@ use Friendica\BaseModule; * * @see https://wiki.mozilla.org/Labs/Weave/Identity/Account_Manager/Spec/3#Contents_of_the_Account_Management_Control_Document */ -class AccMgmtControlDoc extends BaseModule +class AccountManagementControlDocument extends BaseModule { public static function rawContent() { - parent::rawContent(); - $output = [ 'version' => 1, 'sessionstatus' => [