Advertisement
Guest User

Untitled

a guest
Aug 11th, 2016
86
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 6.27 KB | None | 0 0
  1. # -*- coding: utf-8 -*-
  2. """
  3. Created on Thu Aug 11 14:23:05 2016
  4.  
  5. @author: doarni
  6. """
  7. from SMSlogin import Ui_Form
  8. from PyQt4 import QtCore, QtGui
  9. from PyQt4.QtCore import QThread
  10. from PyQt4.QtGui import *
  11. import sys
  12. import os
  13. import ctypes
  14. import psycopg2
  15. from passlib.hash import sha256_crypt
  16.  
  17. class LoginWindow(QtGui.QWidget):
  18.  
  19. def __init__(self):
  20. QtGui.QWidget.__init__(self)
  21. self.ui = Ui_Form()
  22. self.ui.setupUi(self)
  23. con = None
  24. self.ui.loginbtn.clicked.connect(self.handleLOGINBTN)
  25. self.ui.registerbtn.clicked.connect(self.handleREGISTERNEW)
  26. self.ui.newuserbtn.clicked.connect(self.handleNEWUSER)
  27. self.tries = 0
  28.  
  29. def clearwindow(self):
  30. self.ui.lineEdit.clear()
  31. self.ui.lineEdit_2.clear()
  32. self.ui.lineEdit_3.clear()
  33.  
  34. def handleLOGINBTN(self):
  35. def locked():
  36. msgbox = ctypes.windll.user32.MessageBoxW
  37. ret = msgbox(None, 'This account has been locked, please contact an Administrator for assitance', 'Alert!',0x30)
  38. def noaccount():
  39. msgbox = ctypes.windll.user32.MessageBoxW
  40. ret = msgbox(None, 'Username / Password does not exist. Please try again.', 'Hey!',0x30)
  41. username = self.ui.lineEdit.text()
  42. self.password = self.ui.lineEdit_2.text()
  43. if self.tries < 5:
  44. try:
  45. self.postgres_login_check(username)
  46. except:
  47. noaccount()
  48. LoginWindow.handleNEWUSER(self)
  49. if self.tries >= 5:
  50. self.postgres_lock_account(username)
  51. locked()
  52. sys.exit()
  53.  
  54.  
  55. def handleNEWUSER(self):
  56. username = self.ui.lineEdit.text()
  57. password = self.ui.lineEdit_2.text()
  58. email = self.ui.lineEdit_3.text()
  59. IDYES = 6
  60. IDNO = 7
  61. MB_YESNO = 4
  62. MB_ICONWARNING = 48
  63. def ask():
  64. msgbox2 = ctypes.windll.user32.MessageBoxW
  65. ret2 = msgbox2(0, 'Would you like to create an account?', 'Hey!', MB_YESNO | MB_ICONWARNING)
  66. if ret2 == IDYES:
  67. if username == '':
  68. LoginWindow.clearwindow(self)
  69. if password == '':
  70. LoginWindow.clearwindow(self)
  71. if email == '':
  72. ctypes.windll.user32.MessageBoxW(None, 'You never entered anything..', 'Um..',0x30)
  73. LoginWindow.clearwindow(self)
  74. pass
  75. pass
  76. pass
  77. else:
  78. self.postgres_register(username, password, email)
  79. else:
  80. pass
  81. ask()
  82.  
  83. def handleREGISTERNEW(self):
  84. username = self.ui.lineEdit.text()
  85. password = self.ui.lineEdit_2.text()
  86. email = self.ui.lineEdit_3.text()
  87. def empty():
  88. msgbox = ctypes.windll.user32.MessageBoxW
  89. ret = msgbox(None, 'Username / Password /Email Empty. Please try again.', 'Hey!',0x30)
  90. def emptystill():
  91. msgbox = ctypes.windll.user32.MessageBoxW
  92. ret = msgbox(None, 'You never entered anything..', 'Um..',0x30)
  93. pass
  94. if username != '' and password != '' and email != '':
  95. self.postgres_register(username, password, email)
  96. else:
  97. emptystill()
  98. LoginWindow.clearwindow(self)
  99.  
  100. def postgres_lock_account(self, username):
  101. con = psycopg2.connect("dbname=postgres user=doarni host=vsbslgprd01.zmr.zimmer.com password=ZimmerBiomet")
  102. cur = con.cursor()
  103. try:
  104. cur.execute("""update doarni.login set locked = '2' WHERE username = '"""+username+"""'""")
  105. con.commit()
  106. print("locked")
  107. con.close()
  108. except:
  109. print("user not found")
  110. con.close()
  111.  
  112. def postgres_login_check(self, username):
  113. def passwordwrong():
  114. msgbox = ctypes.windll.user32.MessageBoxW
  115. ret = msgbox(None, 'Password incorrect. Please try again.', 'Hey!',0x30)
  116. def locked():
  117. msgbox = ctypes.windll.user32.MessageBoxW
  118. ret = msgbox(None, 'This account has been locked, please contact an Administrator for assitance', 'Alert!',0x30)
  119. con = psycopg2.connect("dbname=postgres user=doarni host=vsbslgprd01.zmr.zimmer.com password=ZimmerBiomet")
  120. cur = con.cursor()
  121. try:
  122. cur.execute("""SELECT * from doarni.login WHERE username = '"""+str(username)+"""'""")
  123. data = cur.fetchall()
  124. print("hash found")
  125. con.close()
  126. except:
  127. print("hash not found / throw error")
  128. passwordwrong()
  129. self.tries += 1
  130. con.close()
  131. if str(data[0][2])=='2':
  132. locked()
  133. pass
  134. passwordhash = str(data[0][1])
  135. if sha256_crypt.verify(self.password, passwordhash) == True:
  136. print('TRUE')
  137. else:
  138. passwordwrong()
  139. self.tries += 1
  140. print('FALSE')
  141.  
  142. def postgres_register(self, username, password, email):
  143. def registered():
  144. msgbox = ctypes.windll.user32.MessageBoxW
  145. ret = msgbox(None, 'Your account has been created!', 'Yay!',0x30)
  146. def register_err():
  147. msgbox = ctypes.windll.user32.MessageBoxW
  148. 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)
  149. hashword = sha256_crypt.encrypt(password)
  150. con = psycopg2.connect("dbname=postgres user=doarni host=vsbslgprd01.zmr.zimmer.com password=ZimmerBiomet")
  151. cur = con.cursor()
  152. try:
  153. cur.execute("""insert into doarni.login values ('"""+str(username)+"""', '"""+str(hashword)+"""', '1', '"""+str(email)+"""')""")
  154. con.commit()
  155. print("appended")
  156. con.close()
  157. registered()
  158. except:
  159. print("failed to append")
  160. con.close()
  161.  
  162.  
  163. if __name__ == "__main__":
  164. app = QApplication(sys.argv)
  165. window = LoginWindow()
  166. window.show()
  167. sys.exit(app.exec_())
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement