56 lines
1.9 KiB
Python
56 lines
1.9 KiB
Python
import tkinter as tk
|
|
from tkinter import messagebox
|
|
from database import connect
|
|
|
|
class LoginPage(tk.Frame):
|
|
def __init__(self, parent, controller):
|
|
super().__init__(parent)
|
|
self.controller = controller
|
|
|
|
# Center Content
|
|
center_frame = tk.Frame(self)
|
|
center_frame.place(relx=0.5, rely=0.5, anchor="center")
|
|
|
|
tk.Label(center_frame, text="LOGIN CAFE", font=("Arial", 20, "bold")).pack(pady=20)
|
|
|
|
tk.Label(center_frame, text="Username").pack(anchor="w")
|
|
self.user = tk.Entry(center_frame, width=30)
|
|
self.user.pack(pady=5)
|
|
|
|
tk.Label(center_frame, text="Password").pack(anchor="w")
|
|
self.passw = tk.Entry(center_frame, show="*", width=30)
|
|
self.passw.pack(pady=5)
|
|
|
|
tk.Button(center_frame, text="Login", bg="#4CAF50", fg="white", width=20, command=self.login).pack(pady=20)
|
|
|
|
def login(self):
|
|
username = self.user.get()
|
|
password = self.passw.get()
|
|
|
|
db = connect()
|
|
cur = db.cursor()
|
|
cur.execute("SELECT role FROM users WHERE username=? AND password=?", (username, password))
|
|
res = cur.fetchone()
|
|
db.close()
|
|
|
|
if not res:
|
|
messagebox.showerror("Error", "Username/Password salah!")
|
|
return
|
|
|
|
role = res[0]
|
|
|
|
# Reset input
|
|
self.user.delete(0, tk.END)
|
|
self.passw.delete(0, tk.END)
|
|
|
|
# Arahkan sesuai Role (Nama Class harus sama dengan di main.py)
|
|
if role == "admin":
|
|
self.controller.show_frame("AdminPage")
|
|
elif role == "pembeli":
|
|
self.controller.show_frame("PembeliMenu")
|
|
elif role == "kasir":
|
|
self.controller.show_frame("KasirPage")
|
|
elif role == "pemilik":
|
|
self.controller.show_frame("PemilikPage")
|
|
elif role == "waiter":
|
|
self.controller.show_frame("WaiterPage") |