Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- # -*- coding: utf-8 -*-
- """
- Created on Thu Aug 11 14:23:05 2016
- @author: doarni
- """
- from SMSlogin import Ui_Form
- from PyQt4 import QtCore, QtGui
- from PyQt4.QtCore import QThread
- from PyQt4.QtGui import *
- import sys
- import os
- import ctypes
- import psycopg2
- from passlib.hash import sha256_crypt
- class LoginWindow(QtGui.QWidget):
- def __init__(self):
- QtGui.QWidget.__init__(self)
- self.ui = Ui_Form()
- self.ui.setupUi(self)
- con = None
- self.ui.loginbtn.clicked.connect(self.handleLOGINBTN)
- self.ui.registerbtn.clicked.connect(self.handleREGISTERNEW)
- self.ui.newuserbtn.clicked.connect(self.handleNEWUSER)
- self.tries = 0
- def clearwindow(self):
- self.ui.lineEdit.clear()
- self.ui.lineEdit_2.clear()
- self.ui.lineEdit_3.clear()
- def handleLOGINBTN(self):
- def locked():
- msgbox = ctypes.windll.user32.MessageBoxW
- ret = msgbox(None, 'This account has been locked, please contact an Administrator for assitance', 'Alert!',0x30)
- def noaccount():
- msgbox = ctypes.windll.user32.MessageBoxW
- ret = msgbox(None, 'Username / Password does not exist. Please try again.', 'Hey!',0x30)
- username = self.ui.lineEdit.text()
- self.password = self.ui.lineEdit_2.text()
- if self.tries < 5:
- try:
- self.postgres_login_check(username)
- except:
- noaccount()
- LoginWindow.handleNEWUSER(self)
- if self.tries >= 5:
- self.postgres_lock_account(username)
- locked()
- sys.exit()
- def handleNEWUSER(self):
- username = self.ui.lineEdit.text()
- password = self.ui.lineEdit_2.text()
- email = self.ui.lineEdit_3.text()
- IDYES = 6
- IDNO = 7
- MB_YESNO = 4
- MB_ICONWARNING = 48
- def ask():
- msgbox2 = ctypes.windll.user32.MessageBoxW
- ret2 = msgbox2(0, 'Would you like to create an account?', 'Hey!', MB_YESNO | MB_ICONWARNING)
- if ret2 == IDYES:
- if username == '':
- LoginWindow.clearwindow(self)
- if password == '':
- LoginWindow.clearwindow(self)
- if email == '':
- ctypes.windll.user32.MessageBoxW(None, 'You never entered anything..', 'Um..',0x30)
- LoginWindow.clearwindow(self)
- pass
- pass
- pass
- else:
- self.postgres_register(username, password, email)
- else:
- pass
- ask()
- def handleREGISTERNEW(self):
- username = self.ui.lineEdit.text()
- password = self.ui.lineEdit_2.text()
- email = self.ui.lineEdit_3.text()
- def empty():
- msgbox = ctypes.windll.user32.MessageBoxW
- ret = msgbox(None, 'Username / Password /Email Empty. Please try again.', 'Hey!',0x30)
- def emptystill():
- msgbox = ctypes.windll.user32.MessageBoxW
- ret = msgbox(None, 'You never entered anything..', 'Um..',0x30)
- pass
- if username != '' and password != '' and email != '':
- self.postgres_register(username, password, email)
- else:
- emptystill()
- LoginWindow.clearwindow(self)
- def postgres_lock_account(self, username):
- con = psycopg2.connect("dbname=postgres user=doarni host=vsbslgprd01.zmr.zimmer.com password=ZimmerBiomet")
- cur = con.cursor()
- try:
- cur.execute("""update doarni.login set locked = '2' WHERE username = '"""+username+"""'""")
- con.commit()
- print("locked")
- con.close()
- except:
- print("user not found")
- con.close()
- def postgres_login_check(self, username):
- def passwordwrong():
- msgbox = ctypes.windll.user32.MessageBoxW
- ret = msgbox(None, 'Password incorrect. Please try again.', 'Hey!',0x30)
- def locked():
- msgbox = ctypes.windll.user32.MessageBoxW
- ret = msgbox(None, 'This account has been locked, please contact an Administrator for assitance', 'Alert!',0x30)
- con = psycopg2.connect("dbname=postgres user=doarni host=vsbslgprd01.zmr.zimmer.com password=ZimmerBiomet")
- cur = con.cursor()
- try:
- cur.execute("""SELECT * from doarni.login WHERE username = '"""+str(username)+"""'""")
- data = cur.fetchall()
- print("hash found")
- con.close()
- except:
- print("hash not found / throw error")
- passwordwrong()
- self.tries += 1
- con.close()
- if str(data[0][2])=='2':
- locked()
- pass
- passwordhash = str(data[0][1])
- if sha256_crypt.verify(self.password, passwordhash) == True:
- print('TRUE')
- else:
- passwordwrong()
- self.tries += 1
- print('FALSE')
- def postgres_register(self, username, password, email):
- def registered():
- msgbox = ctypes.windll.user32.MessageBoxW
- ret = msgbox(None, 'Your account has been created!', 'Yay!',0x30)
- def register_err():
- msgbox = ctypes.windll.user32.MessageBoxW
- ret = msgbox(None, 'There was a problem connecting to the server, please try again. If this happenes again please contact and Administrator!', 'Uh Oh..',0x30)
- hashword = sha256_crypt.encrypt(password)
- con = psycopg2.connect("dbname=postgres user=doarni host=vsbslgprd01.zmr.zimmer.com password=ZimmerBiomet")
- cur = con.cursor()
- try:
- cur.execute("""insert into doarni.login values ('"""+str(username)+"""', '"""+str(hashword)+"""', '1', '"""+str(email)+"""')""")
- con.commit()
- print("appended")
- con.close()
- registered()
- except:
- print("failed to append")
- con.close()
- if __name__ == "__main__":
- app = QApplication(sys.argv)
- window = LoginWindow()
- window.show()
- sys.exit(app.exec_())
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement