Python-Menu/project/login.py

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")