draft login, forgott end points

This commit is contained in:
Dennis Eichhorn 2020-08-11 20:38:08 +02:00
parent 50d09e2ae3
commit 00fe4a3acf
4 changed files with 133 additions and 0 deletions

View File

@ -6,6 +6,33 @@ use phpOMS\Account\PermissionType;
use phpOMS\Router\RouteVerb;
return [
'^.*/login(\?.*|$)' => [
[
'dest' => '\Modules\Admin\Controller\ApiController:apiLogin',
'verb' => RouteVerb::SET,
'permission' => [
],
],
],
'^.*/logout(\?.*|$)' => [
[
'dest' => '\Modules\Admin\Controller\ApiController:apiLogout',
'verb' => RouteVerb::SET,
'permission' => [
],
],
],
'^.*/forgott(\?.*|$)' => [
[
'dest' => '\Modules\Admin\Controller\ApiController:apiForgott',
'verb' => RouteVerb::SET,
'permission' => [
],
],
],
'^.*/admin/settings(\?.*|$)' => [
[
'dest' => '\Modules\Admin\Controller\ApiController:apiSettingsSet',

View File

@ -6,6 +6,15 @@ use phpOMS\Account\PermissionType;
use phpOMS\Router\RouteVerb;
return [
'^.*/forgott.*$' => [
[
'dest' => '\Modules\Admin\Controller\BackendController:viewForgott',
'verb' => RouteVerb::GET,
'permission' => [
],
],
],
'^.*/admin/settings/general.*$' => [
[
'dest' => '\Modules\Admin\Controller\BackendController:viewSettingsGeneral',

View File

@ -54,6 +54,10 @@ use phpOMS\Uri\HttpUri;
use phpOMS\Utils\Parser\Markdown\Markdown;
use phpOMS\Validation\Network\Email;
use phpOMS\Version\Version;
use phpOMS\Auth\LoginReturnType;
use phpOMS\Model\Message\Notify;
use phpOMS\Model\Message\Reload;
use phpOMS\Model\Message\NotifyType;
/**
* Admin controller class.
@ -73,6 +77,83 @@ use phpOMS\Version\Version;
*/
final class ApiController extends Controller
{
/**
* Api method to login
*
* @param RequestAbstract $request Request
* @param ResponseAbstract $response Response
* @param mixed $data Generic data
*
* @return void
*
* @api
*
* @since 1.0.0
*/
public function apiLogin(RequestAbstract $request, ResponseAbstract $response, $data = null) : void
{
$response->getHeader()->set('Content-Type', MimeType::M_JSON . '; charset=utf-8', true);
$login = AccountMapper::login((string) ($request->getData('user') ?? ''), (string) ($request->getData('pass') ?? ''));
if ($login >= LoginReturnType::OK) {
$this->app->sessionManager->set('UID', $login, true);
$this->app->sessionManager->save();
$response->set($request->getUri()->__toString(), new Reload());
} else {
$response->set($request->getUri()->__toString(), new Notify(
'Login failed due to wrong login information',
NotifyType::INFO
));
}
}
/**
* Api method to login
*
* @param RequestAbstract $request Request
* @param ResponseAbstract $response Response
* @param mixed $data Generic data
*
* @return void
*
* @api
*
* @since 1.0.0
*/
public function apiLogout(RequestAbstract $request, ResponseAbstract $response, $data = null) : void
{
$response->getHeader()->set('Content-Type', MimeType::M_JSON . '; charset=utf-8', true);
$this->app->sessionManager->remove('UID');
$this->app->sessionManager->save();
$response->getHeader()->set('Content-Type', MimeType::M_JSON . '; charset=utf-8', true);
$response->set($request->getUri()->__toString(), [
'status' => NotificationLevel::OK,
'title' => 'Logout successfull',
'message' => 'You are redirected to the login page',
'response' => null,
]);
}
/**
* Api method to login
*
* @param RequestAbstract $request Request
* @param ResponseAbstract $response Response
* @param mixed $data Generic data
*
* @return void
*
* @api
*
* @since 1.0.0
*/
public function apiForgott(RequestAbstract $request, ResponseAbstract $response, $data = null) : void
{
}
/**
* Api method to get settings
*

View File

@ -45,6 +45,22 @@ use phpOMS\Views\View;
*/
final class BackendController extends Controller
{
/**
* Method which shows the password forgotten
*
* @param RequestAbstract $request Request
* @param ResponseAbstract $response Response
* @param mixed $data Generic data
*
* @return RenderableInterface Response can be rendered
*
* @since 1.0.0
*/
public function viewForgott(RequestAbstract $request, ResponseAbstract $response, $data = null) : RenderableInterface
{
return new View();
}
/**
* Method which generates the general settings view.
*