Python-Menu/project/login.py

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