def login(self): login = self.logEntry.get() password = self.passwordEntry.get() if '' in (login, password): messagebox.showerror(lp[self.language]['error'], lp[self.language]['fill_all_entries']) Window.delete_entries(self.passwordEntry) return log_in_db = DbManager.get_column_values('Users', 'login') if login not in log_in_db: messagebox.showerror( lp[self.language]['error'], lp[self.language]['incorrect_login'].format(login=login)) Window.delete_entries(self.logEntry, self.passwordEntry) return if password != DbManager.get_column_value_where( 'Users', 'password', 'login', login): messagebox.showerror(lp[self.language]['error'], lp[self.language]['incorrect_password']) Window.delete_entries(self.passwordEntry) return self.user = { 'id': DbManager.get_column_value_where('Users', 'id', 'login', login), 'login': login, 'password': password, 'email': DbManager.get_column_value_where('Users', 'email', 'login', login), 'pin': DbManager.get_column_value_where('Users', 'pin', 'login', login) } MailManager.send_mail(self.language, self.user['email'], msg_type='alert', data=login) self.root.destroy() main_window = MainWindow(self.language, self.user) main_window.root.mainloop()
def remind_password(self): login = self.widgetsForEntries[1].get() email = self.widgetsForEntries[3].get() if '' in (login, email): messagebox.showerror(lp[self.language]['error'], lp[self.language]['fill_all_entries']) return if not re.match(r'[^@]+@[^@]+\.[^@]+', email): messagebox.showerror(lp[self.language]['error'], lp[self.language]['invalid_email']) return log_in_db = DbManager.get_column_values('Users', 'login') if login not in log_in_db: messagebox.showerror( lp[self.language]['error'], lp[self.language]['incorrect_login'].format(login=login)) return if email != DbManager.get_column_value_where('Users', 'email', 'login', login): messagebox.showerror( lp[self.language]['error'], lp[self.language]['email_doesnt_match'].format(email=email)) return password = DbManager.get_column_value_where('Users', 'password', 'login', login) if MailManager.send_mail(self.language, email, msg_type='password_request', data=password, data2=login): messagebox.showinfo( lp[self.language]['password_reminder_req'], lp[self.language]['password_reminder_accepted']) Window.close_top_level(self, self.btnsToDisable)
def register(self): login = self.regLogEntry.get() password = self.regPasswordEntry.get() password_confirm = self.regPasswordConfirmEntry.get() email = self.regEmailEntry.get() pin = self.regPinEntry.get() if '' in (login, password, password_confirm, email, pin): messagebox.showerror(lp[self.language]['error'], lp[self.language]['fill_all_entries']) Window.delete_entries(self.regPasswordEntry, self.regPasswordConfirmEntry, self.regPinEntry) return login_in_db = DbManager.get_column_values('Users', 'login') if login in login_in_db: messagebox.showerror( lp[self.language]['error'], lp[self.language]['login_used'].format(login=login)) Window.delete_entries(self.regLogEntry, self.regPasswordEntry, self.regPasswordConfirmEntry, self.regEmailEntry, self.regPinEntry) return if len(password) < 8: # password minimum length messagebox.showerror(lp[self.language]['error'], lp[self.language]['min_8_chars']) Window.delete_entries(self.regPasswordEntry, self.regPasswordConfirmEntry, self.regPinEntry) return if password != password_confirm: messagebox.showerror(lp[self.language]['error'], lp[self.language]['confirm_dont_match']) Window.delete_entries(self.regPasswordEntry, self.regPasswordConfirmEntry, self.regEmailEntry, self.regPinEntry) return if not re.match(r'[^@]+@[^@]+\.[^@]+', email): messagebox.showerror(lp[self.language]['error'], lp[self.language]['invalid_email']) Window.delete_entries(self.regPasswordEntry, self.regPasswordConfirmEntry, self.regEmailEntry, self.regPinEntry) return verification_code = random.randint(100000, 999999) MailManager.send_mail(self.language, email, msg_type='thanks', data=login, data2=verification_code) entered_code = simpledialog.askinteger( lp[self.language]['email_verification'], lp[self.language]['please_verify_email']) if entered_code != verification_code: messagebox.showerror(lp[self.language]['error'], lp[self.language]['invalid_veri_code']) Window.delete_entries(self.regLogEntry, self.regPasswordEntry, self.regPasswordConfirmEntry, self.regEmailEntry, self.regPinEntry) return if entered_code == verification_code: DbManager.insert('Users', 'login, password, email, pin', (login, password, email, pin)) Window.delete_entries(self.regLogEntry, self.regPasswordEntry, self.regPasswordConfirmEntry, self.regEmailEntry, self.regPinEntry) messagebox.showinfo( lp[self.language]['success'], lp[self.language]['user_created'].format(user=login))