コード例 #1
0
    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()
コード例 #2
0
    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)
コード例 #3
0
    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))