logic fixing
This commit is contained in:
parent
d74be80085
commit
f92bfbcb4f
|
|
@ -7,10 +7,11 @@ import { cookies } from 'next/headers'
|
|||
export async function login(prevState: any, formData: FormData) {
|
||||
const username = formData.get('username') as string
|
||||
const password = formData.get('password') as string
|
||||
const kodeUnikNik = formData.get('kode_unik_nik') as string
|
||||
const remember = formData.get('remember') === 'on'
|
||||
|
||||
if (!username || !password) {
|
||||
return { message: 'Username and password are required' }
|
||||
if (!username || !password || !kodeUnikNik) {
|
||||
return { message: 'Username, password, dan Kode Unik / NIK wajib diisi' }
|
||||
}
|
||||
|
||||
try {
|
||||
|
|
@ -23,6 +24,10 @@ export async function login(prevState: any, formData: FormData) {
|
|||
.single()
|
||||
|
||||
if (petugas) {
|
||||
if (petugas.kode_unik !== kodeUnikNik) {
|
||||
return { message: 'Kode Unik tidak valid' }
|
||||
}
|
||||
|
||||
// Set session/cookie for Admin
|
||||
// In a real app, use a secure session library. For this demo, simple cookies.
|
||||
const cookieStore = await cookies()
|
||||
|
|
@ -45,6 +50,10 @@ export async function login(prevState: any, formData: FormData) {
|
|||
.single()
|
||||
|
||||
if (user) {
|
||||
if (user.NIK !== kodeUnikNik) {
|
||||
return { message: 'NIK tidak valid' }
|
||||
}
|
||||
|
||||
// Set session/cookie for User
|
||||
const cookieStore = await cookies()
|
||||
cookieStore.set('user_session', JSON.stringify({
|
||||
|
|
@ -57,7 +66,7 @@ export async function login(prevState: any, formData: FormData) {
|
|||
redirect('/user-dashboard') // Redirect to user dashboard
|
||||
}
|
||||
|
||||
return { message: 'Invalid username or password' }
|
||||
return { message: 'Username atau password salah' }
|
||||
|
||||
} catch (error: any) {
|
||||
if (error.message === 'NEXT_REDIRECT') {
|
||||
|
|
|
|||
16
app/page.tsx
16
app/page.tsx
|
|
@ -135,6 +135,22 @@ export default function LoginPage() {
|
|||
</div>
|
||||
</div>
|
||||
|
||||
<div className="space-y-2">
|
||||
<Label htmlFor="kode_unik_nik" className="text-xs font-bold uppercase tracking-wider text-gray-700">Kode Unik / NIK</Label>
|
||||
<div className="relative">
|
||||
<div className="absolute left-3 top-2.5 text-gray-400">
|
||||
<svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" strokeWidth="2" strokeLinecap="round" strokeLinejoin="round"><path d="M12 22s8-4 8-10V5l-8-3-8 3v7c0 6 8 10 8 10z"></path></svg>
|
||||
</div>
|
||||
<Input
|
||||
id="kode_unik_nik"
|
||||
name="kode_unik_nik"
|
||||
placeholder="Masukkan Kode Unik / NIK"
|
||||
required
|
||||
className="pl-10 h-12 bg-gray-50 border-gray-200 focus:border-black focus:ring-black transition-all"
|
||||
/>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div className="flex items-center justify-between">
|
||||
<div className="flex items-center space-x-2">
|
||||
<Checkbox id="remember" name="remember" className="data-[state=checked]:bg-black data-[state=checked]:border-black" />
|
||||
|
|
|
|||
Loading…
Reference in New Issue