From 32ee8047eba06c9f1c7575b66fc0f9195657ac04 Mon Sep 17 00:00:00 2001 From: Bobby <30593201+luciferreeves@users.noreply.github.com> Date: Mon, 22 Dec 2025 13:46:50 +0530 Subject: auth engine, basic login working --- controllers/auth.go | 53 ++++++++++++++++++++++++++++++++++++++++++++++++++++ controllers/login.go | 17 ----------------- controllers/mail.go | 1 + 3 files changed, 54 insertions(+), 17 deletions(-) create mode 100644 controllers/auth.go delete mode 100644 controllers/login.go create mode 100644 controllers/mail.go (limited to 'controllers') diff --git a/controllers/auth.go b/controllers/auth.go new file mode 100644 index 0000000..3351058 --- /dev/null +++ b/controllers/auth.go @@ -0,0 +1,53 @@ +package controllers + +import ( + "lain/config" + "lain/repository" + "lain/session" + "lain/types" + "lain/utils/crypto" + "lain/utils/meta" + "lain/utils/shortcuts" + + "github.com/gofiber/fiber/v2" +) + +func LoginPage(context *fiber.Ctx) error { + meta.SetPageTitle(context, "Login") + + return shortcuts.Render(context, "auth/login", fiber.Map{ + "AllowedDomains": config.Server.AllowedDomains, + }) +} + +func Login(context *fiber.Ctx) error { + var formData types.LoginForm + if err := context.BodyParser(&formData); err != nil { + return BadRequest(context, err) + } + + encryptedPassword, err := crypto.Encrypt(formData.Password) + if err != nil { + return InternalServerError(context, err) + } + formData.Password = encryptedPassword + + preferences, err := repository.GetPreferences(formData) + if err != nil { + return InternalServerError(context, err) + } + + if err = session.CreateSession(context, preferences.Email); err != nil { + return InternalServerError(context, err) + } + + return shortcuts.Redirect(context, "mail.inbox") +} + +func Logout(context *fiber.Ctx) error { + if err := session.DestroySession(context); err != nil { + return InternalServerError(context, err) + } + + return shortcuts.Redirect(context, "auth.login") +} diff --git a/controllers/login.go b/controllers/login.go deleted file mode 100644 index 2690538..0000000 --- a/controllers/login.go +++ /dev/null @@ -1,17 +0,0 @@ -package controllers - -import ( - "lain/config" - "lain/utils/meta" - "lain/utils/shortcuts" - - "github.com/gofiber/fiber/v2" -) - -func LoginPage(context *fiber.Ctx) error { - meta.SetPageTitle(context, "Login") - - return shortcuts.Render(context, "auth/login", fiber.Map{ - "AllowedDomains": config.Server.AllowedDomains, - }) -} diff --git a/controllers/mail.go b/controllers/mail.go new file mode 100644 index 0000000..2d32936 --- /dev/null +++ b/controllers/mail.go @@ -0,0 +1 @@ +package controllers -- cgit v1.2.3