diff --git a/public/site/config/config.php b/public/site/config/config.php index 2896a5f..7e92b30 100644 --- a/public/site/config/config.php +++ b/public/site/config/config.php @@ -27,6 +27,7 @@ return [ ], 'routes' => [ require(__DIR__ . '/routes/logout.php'), + require(__DIR__ . '/routes/login.php'), require(__DIR__ . '/routes/toggle-favorite.php'), require(__DIR__ . '/routes/upload-images.php'), require(__DIR__ . '/routes/save-page.php'), diff --git a/public/site/config/routes/login.php b/public/site/config/routes/login.php new file mode 100644 index 0000000..2569ba2 --- /dev/null +++ b/public/site/config/routes/login.php @@ -0,0 +1,35 @@ + "login.json", + "method" => "POST", + "action" => function () { + $json = file_get_contents("php://input"); + $data = json_decode($json); + + $kirby = kirby(); + + $email = $data->email; + $password = $data->password; + + if(V::email($email)) { + try { + $kirby->auth()->login($email, $password); + return json_encode([ + "status" => "success", + "role" => (string) $kirby->user()->role() + ]); + } catch (Exception $e) { + return json_encode([ + "status" => "error", + "message" => "Email ou mot de passe invalide.
Contactez l'administrateur pour demander la réinitialisation de vos informations de connexion." + ]); + } + } else { + return json_encode([ + "status" => "error", + "message" => "Email invalide." + ]); + } + }, +]; diff --git a/public/site/config/routes/logout.php b/public/site/config/routes/logout.php index 9f92b94..2f71026 100644 --- a/public/site/config/routes/logout.php +++ b/public/site/config/routes/logout.php @@ -10,6 +10,6 @@ return [ session_start(); } - go(site()->panel()->url()); + go(site()->url() . '/login'); }, ]; diff --git a/src/views/Login.vue b/src/views/Login.vue index 4e9750a..211f9e0 100644 --- a/src/views/Login.vue +++ b/src/views/Login.vue @@ -2,17 +2,19 @@
@@ -27,11 +29,77 @@ required /> - +

+
+ +