fix(gatekeeper): trim auth inputs and prioritize access code to prevent autofill traps
Some checks failed
Monorepo Pipeline / ⚡ Prioritize Release (push) Successful in 2s
Monorepo Pipeline / 🧹 Lint (push) Has been cancelled
Monorepo Pipeline / 🧪 Test (push) Has been cancelled
Monorepo Pipeline / 🏗️ Build (push) Has been cancelled
Monorepo Pipeline / 🚀 Release (push) Has been cancelled
Monorepo Pipeline / 🐳 Build Directus (Base) (push) Has been cancelled
Monorepo Pipeline / 🐳 Build Gatekeeper (Product) (push) Has been cancelled
Monorepo Pipeline / 🐳 Build Build-Base (push) Has been cancelled
Monorepo Pipeline / 🐳 Build Production Runtime (push) Has been cancelled
Some checks failed
Monorepo Pipeline / ⚡ Prioritize Release (push) Successful in 2s
Monorepo Pipeline / 🧹 Lint (push) Has been cancelled
Monorepo Pipeline / 🧪 Test (push) Has been cancelled
Monorepo Pipeline / 🏗️ Build (push) Has been cancelled
Monorepo Pipeline / 🚀 Release (push) Has been cancelled
Monorepo Pipeline / 🐳 Build Directus (Base) (push) Has been cancelled
Monorepo Pipeline / 🐳 Build Gatekeeper (Product) (push) Has been cancelled
Monorepo Pipeline / 🐳 Build Build-Base (push) Has been cancelled
Monorepo Pipeline / 🐳 Build Production Runtime (push) Has been cancelled
This commit is contained in:
@@ -17,8 +17,8 @@ export default async function LoginPage({ searchParams }: LoginPageProps) {
|
|||||||
async function login(formData: FormData) {
|
async function login(formData: FormData) {
|
||||||
"use server";
|
"use server";
|
||||||
|
|
||||||
const email = formData.get("email") as string;
|
const email = (formData.get("email") as string || "").trim();
|
||||||
const password = formData.get("password") as string;
|
const password = (formData.get("password") as string || "").trim();
|
||||||
|
|
||||||
const expectedCode = process.env.GATEKEEPER_PASSWORD || "mintel";
|
const expectedCode = process.env.GATEKEEPER_PASSWORD || "mintel";
|
||||||
const adminEmail = process.env.DIRECTUS_ADMIN_EMAIL;
|
const adminEmail = process.env.DIRECTUS_ADMIN_EMAIL;
|
||||||
@@ -31,19 +31,19 @@ export default async function LoginPage({ searchParams }: LoginPageProps) {
|
|||||||
let userIdentity = "";
|
let userIdentity = "";
|
||||||
let userCompany: any = null;
|
let userCompany: any = null;
|
||||||
|
|
||||||
// 1. Check Global Admin (from ENV)
|
// 1. Check Generic Code (Guest) - High Priority to prevent autofill traps
|
||||||
if (
|
if (password === expectedCode) {
|
||||||
|
userIdentity = "Guest";
|
||||||
|
}
|
||||||
|
// 2. Check Global Admin (from ENV)
|
||||||
|
else if (
|
||||||
adminEmail &&
|
adminEmail &&
|
||||||
adminPassword &&
|
adminPassword &&
|
||||||
email === adminEmail &&
|
email === adminEmail.trim() &&
|
||||||
password === adminPassword
|
password === adminPassword.trim()
|
||||||
) {
|
) {
|
||||||
userIdentity = "Admin";
|
userIdentity = "Admin";
|
||||||
}
|
}
|
||||||
// 2. Check Generic Code (Guest)
|
|
||||||
else if (!email && password === expectedCode) {
|
|
||||||
userIdentity = "Guest";
|
|
||||||
}
|
|
||||||
// 3. Check Lightweight Client Users (dedicated collection)
|
// 3. Check Lightweight Client Users (dedicated collection)
|
||||||
if (email && password && process.env.INFRA_DIRECTUS_URL) {
|
if (email && password && process.env.INFRA_DIRECTUS_URL) {
|
||||||
try {
|
try {
|
||||||
|
|||||||
Reference in New Issue
Block a user