61 lines
1.9 KiB
Python
61 lines
1.9 KiB
Python
import tkinter as tk
|
|
from tkinter import messagebox
|
|
from database import connect
|
|
|
|
# Pastikan import ini sesuai
|
|
from admin_menu import AdminPage
|
|
from pembeli_menu import PembeliPage
|
|
from kasir import KasirPage
|
|
from pemilik import PemilikPage
|
|
from waiter_dashboard import WaiterPage
|
|
|
|
class LoginPage(tk.Frame):
|
|
def __init__(self, parent, controller):
|
|
super().__init__(parent)
|
|
self.controller = controller
|
|
|
|
tk.Label(self, text="LOGIN SYSTEM", font=("Arial", 20, "bold")).pack(pady=40)
|
|
|
|
frame_login = tk.Frame(self)
|
|
frame_login.pack()
|
|
|
|
tk.Label(frame_login, text="Username:").pack()
|
|
self.user = tk.Entry(frame_login)
|
|
self.user.pack(pady=5)
|
|
|
|
tk.Label(frame_login, text="Password:").pack()
|
|
self.passw = tk.Entry(frame_login, show="*")
|
|
self.passw.pack(pady=5)
|
|
|
|
tk.Button(frame_login, text="LOGIN", command=self.login, width=20, bg="#2196F3", fg="white").pack(pady=20)
|
|
|
|
def login(self):
|
|
u = self.user.get()
|
|
p = self.passw.get()
|
|
|
|
db = connect()
|
|
cur = db.cursor()
|
|
cur.execute("SELECT role FROM users WHERE username=? AND password=?", (u, p))
|
|
res = cur.fetchone()
|
|
db.close()
|
|
|
|
if not res:
|
|
messagebox.showerror("Gagal", "Username/Password salah!")
|
|
return
|
|
|
|
role = res[0]
|
|
# Reset input
|
|
self.user.delete(0, tk.END)
|
|
self.passw.delete(0, tk.END)
|
|
|
|
# Redirect sesuai Role
|
|
if role == "admin":
|
|
self.controller.show_frame("AdminPage")
|
|
elif role == "pembeli":
|
|
self.controller.show_frame("PembeliPage")
|
|
elif role == "kasir":
|
|
self.controller.show_frame("KasirPage")
|
|
elif role == "pemilik":
|
|
self.controller.show_frame("PemilikPage")
|
|
elif role == "waiter":
|
|
self.controller.show_frame("WaiterPage") |