-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathchangepassword.py
76 lines (69 loc) · 2.99 KB
/
changepassword.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
#REPLACE WITH REAL TEACHER PAGE
import pickle
import tkinter
from tkinter import ttk
import sv_ttk
import mysql.connector
from mysql.connector import Error
from tkinter import messagebox
try:
#db=mysql.connector.connect(host='mysql-336e5914-anirudhpranesh-be68.f.aivencloud.com', port=13426, user='avnadmin', password='AVNS_QI3ZZve-eNqFc8_bsLQ', database='scholarmate_db') #aiven conn.
db=mysql.connector.connect(host='localhost', user='root', password='Admin@1122', database='scholarmate_db') #local host conn.
except:
messagebox.showerror(title="Error", message="No internet connection. Please connect to internet")
cur=db.cursor()
def save():
try:
file=open('client_details.dat','rb')
details=pickle.load(file)
file.close()
details=list(details[0])
old_username=details[2]
old_pwd=details[3]
new_username=username_entry.get()
new_pwd=password_entry.get()
confirm_pwd=passwordconfirm_entry.get()
if new_pwd != '' and new_username != '' and confirm_pwd != '':
if new_pwd == confirm_pwd:
sql = (
"UPDATE credentials SET username=%s, passkey=%s "
"WHERE username=%s AND passkey=%s;"
)
cur.execute(sql, (new_username, new_pwd, old_username, old_pwd))
db.commit()
db.close()
details[2]=new_username
details[3]=new_pwd
file=open('client_details.dat','wb')
pickle.dump(details, file)
file.close()
messagebox.showinfo('Password and username changed', 'Sucessfully changed username and password')
else:
messagebox.showwarning('Incorrect password', 'Password entered is incorrect')
else:
messagebox.showerror('Error', 'Enter a valid username/password')
except Error as e:
messagebox.showerror('ERROR', f'Unexpected error : {e}')
window=tkinter.Tk()
frame=ttk.Frame()
window.title('Password Change')
window.geometry('650x650')
login_label = ttk.Label(frame, text='Change your username/password : ', font=('Arial', 23))
username_label = ttk.Label(frame, text='New username : ', font=('Arial', 20))
username_entry = ttk.Entry(frame)
password_label = ttk.Label(frame, text='New password : ', font=('Arial', 20))
password_entry = ttk.Entry(frame)
passwordconfirm_label = ttk.Label(frame, text='Confirm new password : ', font=('Arial', 20))
passwordconfirm_entry = ttk.Entry(frame, show='*')
save_button = ttk.Button(frame, text='Save changes', command=save)
login_label.grid(row=1, column=4, columnspan=2, pady=10, sticky='news')
username_label.grid(row=2, column=4)
username_entry.grid(row=2, column=5, pady=10)
password_label.grid(row=3, column=4)
password_entry.grid(row=3, column=5, pady=20)
passwordconfirm_label.grid(row=4, column=4)
passwordconfirm_entry.grid(row=4, column=5)
save_button.grid(row=5, column=4, columnspan=2, ipady=4, ipadx=8, pady=30)
frame.pack()
sv_ttk.set_theme("dark")
frame.mainloop()