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\AccountManagementControlDocument::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/AccountManagementControlDocument.php b/src/Module/AccountManagementControlDocument.php new file mode 100644 index 0000000000..2e2a9e496d --- /dev/null +++ b/src/Module/AccountManagementControlDocument.php @@ -0,0 +1,65 @@ + 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(); + } +}