def resetPassword(self): conn = connectToDB() cur = conn.cursor() user = self.parent.getPilot() print(user) if (self.txtNewPass.text() == self.txtConfirmPass.text()): if (self.validatePassword()): password = AESCipher('aids').encrypt(self.txtNewPass.text()) encpass = password.decode("utf-8") try: query = "UPDATE users SET password = %s WHERE user_id = %s" value = (encpass, user[0][0]) cur.execute(query, value) conn.commit() self.changeSuccess = changeSuccessClass(parent=self) self.changeSuccess.show() except Exception as e: print(e) self.parent.audit("Pilot " + str(user[0][0]) + " changed his password.") self.close()
def softDelete(self, row): print("Soft Delete:I was called") tempID = self.table_pilots.item(row,0).text()[3:] self.pilotID = int(tempID) lastName = self.table_pilots.item(row,1).text() firstName = self.table_pilots.item(row,2).text() try: conn = connectToDB() cur = conn.cursor() print(str(self.pilotID) + " " + firstName + " " + lastName) cur.execute('UPDATE users SET isActive = 0 WHERE first_name = "%s" AND last_name = "%s" AND user_id = "%s"' % (firstName, lastName, self.pilotID)) conn.commit() self.deleteSuccess = deleteSuccessClass(parent=self) self.deleteSuccess.show() self.deleteSuccess.activateWindow() except Exception as e: self.deleteError = deleteErrorClass(parent=self) self.deleteError.show() self.deleteError.activateWindow() print(e) self.audits("Admin deleted pilot " + firstName + " " + lastName) self.initializeData()
def initializeData(self): con = connectToDB() cur = con.cursor() cur.execute('SELECT user_id, time, actions_made from audit ORDER BY time DESC') result = cur.fetchall() self.getData(result)
def initializeData(self): con = connectToDB() cur = con.cursor() cur.execute('SELECT user_id,last_name,first_name from users WHERE isActive = 1 AND user_type = 1') result = cur.fetchall() self.getData(result)
def compareData(self): conn = connectToDB() cur = conn.cursor() cur.execute('SELECT * FROM operations_compare_form WHERE ops_id = %s', (self.info[0],)) result = cur.fetchall() return(result[0])
def getPilotInfo(self,pilotID): conn = connectToDB() cur = conn.cursor() cur.execute('SELECT user_id, first_name, last_name FROM users WHERE user_id = %s', (pilotID,)) result = cur.fetchall() print(result[0]) return (result[0])
def getData(self): conn = connectToDB() cur = conn.cursor() cur.execute('SELECT * FROM users WHERE user_id = %s', (str(self.pilot[0]), )) result1 = cur.fetchall() self.result = result1[0]
def getAddress(self, result): conn = connectToDB() cur = conn.cursor() cur.execute('SELECT * FROM address WHERE address_id = %s', (result[1], )) addressTuple = cur.fetchall() return addressTuple
def initializeData(self): con = connectToDB() cur = con.cursor() cur.execute('SELECT ops_id, ops_location, time_start FROM operations') result = cur.fetchall() # print(result) self.getData(result)
def getCoPilot(self): conn = connectToDB() cur = conn.cursor() cur.execute('SELECT * FROM user_operations WHERE ops_id = %s AND pilot_role = 1', (self.info[0],)) result = cur.fetchall() pilot = self.getPilotInfo(result[0][0]) return(pilot)
def audit(self, message): uid = self.currentUser[0][0] currentTime = datetime.datetime.now() query = "INSERT INTO audit(user_id, time, actions_made) VALUES (%s, %s, %s)" values = (str(uid), currentTime, str(message)) conn = connectToDB() cur = conn.cursor() cur.execute(query, values) conn.commit()
def firstLogin(self): self.getPilot() conn = connectToDB() cur = conn.cursor() cur.execute("SELECT * FROM audit WHERE user_id = %s" % (self.currentUser[0][0], )) result = cur.fetchall() print(len(result)) if (len(result) == 0): self.changePassword = changePasswordClass(parent=self) self.changePassword.show()
def updatePassword(self): conn = connectToDB() cur = conn.cursor() self.newPass = self.txtNewPass.text() if (self.validatePassword()): encpass = AESCipher('aids').encrypt(self.newPass) query = "UPDATE users SET password = %s WHERE email = %s" values = (encpass, self.email) cur.execute(query, values) conn.commit() self.parent.returnToHome()
def initializeData(self): con = connectToDB() cur = con.cursor() print("adasdasdasdaddaaaaaaa") print(str(self.pilot[0])) cur.execute('SELECT ops_id FROM user_operations WHERE user_id = %s', (str(self.pilot[0]),)) result = cur.fetchall() print(result) opsID = str(result[0][0]) cur.execute('SELECT ops_id, date_of_ops, ops_location FROM operations WHERE ops_id = %s', (opsID,)) result = cur.fetchall() self.getData(result)
def audit(self, message): conn = connectToDB() cur = conn.cursor() cur.execute("SELECT user_id FROM users WHERE user_type = 0") result = cur.fetchall() uid = result[0][0] currentTime = datetime.datetime.now() query = "INSERT INTO audit(user_id, time, actions_made) VALUES (%s, %s, %s)" values = (str(uid), currentTime, str(message)) cur.execute(query,values) conn.commit()
def search(self): print('search') toSearch = self.searchbar.text() conn = connectToDB() cur = conn.cursor() if (toSearch != "" or toSearch.startswith('OP-')): if (toSearch.startswith('OP-') or toSearch.startswith('op-')): toSearch = toSearch[3:] cur.execute('SELECT user_id,last_name,first_name from users WHERE ' '(user_id = "%s" OR last_name = "%s" OR first_name = "%s") AND isActive = "1"' % (toSearch,toSearch,toSearch)) result = cur.fetchall() self.getData(result) else: self.initializeData()
def login(self): conn = connectToDB() cur = conn.cursor() user = self.txt_username.text() password = self.txt_password.text() # print(user + " " + password) cur.execute('SELECT user_id, username,password,user_type FROM users WHERE username = "******"' % (user)) self.result = cur.fetchall() # print(result) if (not self.result): print('NOT TODAY BOIII') self.lbl_response.setStyleSheet("QLabel {\ncolor: red; padding-left: 4px}") self.lbl_response.setText('Invalid username/password') self.txt_username.setStyleSheet("QLineEdit {\nborder: 1.2px solid red; padding-left: 4px}") self.txt_password.setStyleSheet("QLineEdit {\nborder: 1.2px solid red; padding-left: 4px;}") else: dbuser = self.result[0][1] dbuserType = self.result[0][3] dbpass = self.result[0][2] strpass = (AESCipher('aids').decrypt(dbpass)).decode() if (password == strpass): if (dbuserType == 0): self.clearText() print('YEHEEEEEY') self.homepage = adminhomepageClass(parent=self) self.audit("Admin logged in successfully") self.close() self.homepage.show() elif (dbuserType == 1): self.clearText() print('Pilot logging in') self.homepage = pilothomepageClass(parent=self) self.audit(self.currentUser[0][1] + " logged in successfully") self.close() self.homepage.show() else: print('NOT TODAY BOIII') self.lbl_response.setStyleSheet("QLabel {\ncolor: red; padding-left: 4px}") self.lbl_response.setText('Invalid username/password') self.txt_username.setStyleSheet("QLineEdit {\nborder: 1.2px solid red; padding-left: 4px}") self.txt_password.setStyleSheet("QLineEdit {\nborder: 1.2px solid red; padding-left: 4px;}")
def search(self): print('search') toSearch = self.searchbar.text() conn = connectToDB() cur = conn.cursor() if (toSearch != "" or toSearch.startswith('OP-')): if (toSearch.startswith('OP-') or toSearch.startswith('op-')): toSearch = toSearch[3:] cur.execute( 'SELECT ops_id, ops_location, time_start from users WHERE ' 'ops_id = "%s" OR ops_location = "%s" OR time_start = "%s"' % (toSearch, toSearch, toSearch)) result = cur.fetchall() self.getData(result) else: self.initializeData()
def getInfo(self): button = self.sender() row = self.table_pilots.indexAt(button.pos()).row() lastName = self.table_pilots.item(row,1).text() firstName = self.table_pilots.item(row,2).text() conn = connectToDB() cur = conn.cursor() cur.execute('SELECT * FROM users WHERE first_name = "%s" AND last_name = "%s"' % (firstName,lastName)) result = cur.fetchall() # print(result) infoTuple = ((),) for i in result: infoTuple = i return (infoTuple)
def getInfo(self): button = self.sender() row = self.table_pilotOps.indexAt(button.pos()).row() opsID = self.table_pilotOps.item(row,0).text()[3:] location = self.table_pilotOps.item(row,2).text() dateData = self.table_pilotOps.item(row,1).text() date = datetime.datetime.strptime(dateData,"%d %B %Y") conn = connectToDB() cur = conn.cursor() cur.execute('SELECT * FROM operations WHERE ops_location = "%s" AND ops_id = "%s"' % (location,int(opsID))) result = cur.fetchall() # print(result) infoTuple = ((),) for i in result: infoTuple = i return (infoTuple)
def insertToDB(self): try: monthList = { '' : '00', 'January': '01', 'February': '02', 'March': '03', 'April': '04', 'May': '05', 'June': '06', 'July': '07', 'August': '08', 'September': '09', 'October': '10', 'November': '11', 'December': '12' } fname = self.txt_fname.text() lname = self.txt_lname.text() if (self.rbtn_female.isChecked()): gender = 0 elif (self.rbtn_male.isChecked()): gender = 1 else: gender = '' month = self.cmb_month.currentText() day = self.cmb_day.currentText() year = self.cmb_year.currentText() birthday = datetime.datetime.strptime(monthList[month] + day + year, '%m%d%Y').date() address = self.txt_address.text() city = self.txt_city.text() province = self.txt_province.text() zipCode = self.txt_zip.text() email = self.txt_email.text() mobile = self.txt_mobile.text() emContact = self.txt_emContact.text() emNumber = self.txt_emNumber.text() certNo = self.txt_certificate.text() operator = self.txt_operator.text() issueDate = datetime.datetime.strptime(monthList[self.cmb_issue_month.currentText()] + self.cmb_issue_day.currentText() + self.cmb_issue_year.currentText(), '%m%d%Y').date() expire = datetime.datetime.strptime(monthList[self.cmb_expiry_month.currentText()] + self.cmb_expiry_day.currentText() + self.cmb_expiry_year.currentText(), '%m%d%Y').date() conn = connectToDB() cur = conn.cursor() cur.execute('INSERT INTO address(permanent_address, city, province, zipcode) VALUES' '("%s","%s","%s",%s)' % (address, city, province, zipCode)) conn.commit() cur.execute('SELECT address_id FROM address WHERE permanent_address = "%s" AND zipcode = %s' % (address,zipCode)) result = cur.fetchall() address_id = 0 for row in result: for i in row: address_id = i self.username = fname[0:1] + lname[0:] self.password = lname[0:1] + fname[0:] # password = lname encpass = AESCipher('aids').encrypt(self.password) query = """INSERT INTO users(address_id, user_img, last_name, first_name, username, password, user_type, license_date, license_expiry, certif_no, emergency_contact, emergency_number, operator, gender, date_of_birth, email, phone_number) VALUES (%s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s)""" # values = (address_id, lname, fname, self.username, encpass, 1, issueDate, expire, certNo, emContact, emNumber, # operator, gender, birthday, email, mobile) values = (str(address_id), self.dbimage, str(lname), str(fname), str(self.username), encpass, 1, issueDate, expire, str(certNo), str(emContact), str(emNumber), str(operator), gender, birthday, str(email), str(mobile)) cur.execute(query, values) conn.commit() self.addSuccess = addSuccessClass(parent=self) self.addSuccess.setWindowFlags(self.addSuccess.windowFlags() | QtCore.Qt.WindowStaysOnTopHint) self.addSuccess.show() except Exception as e: self.addError = addErrorClass(parent=self) self.addError.setWindowFlags(self.addError.windowFlags() | QtCore.Qt.WindowStaysOnTopHint) self.addError.show() self.audit("Admin added pilot " + fname + " " + lname)
def updateData(self): monthList = { '': '00', 'January': '01', 'February': '02', 'March': '03', 'April': '04', 'May': '05', 'June': '06', 'July': '07', 'August': '08', 'September': '09', 'October': '10', 'November': '11', 'December': '12' } fname = self.txt_fname.text() lname = self.txt_lname.text() if (self.rbtn_female.isChecked()): gender = 0 elif (self.rbtn_male.isChecked()): gender = 1 else: gender = '' month = self.cmb_month.currentText() day = self.cmb_day.currentText() year = self.cmb_year.currentText() birthday = datetime.datetime.strptime(monthList[month] + day + year, '%m%d%Y').date() address = self.txt_address.text() city = self.txt_city.text() province = self.txt_province.text() zipCode = self.txt_zip.text() email = self.txt_email.text() mobile = self.txt_mobile.text() emContact = self.txt_emContact.text() emNumber = self.txt_emNumber.text() certNo = self.txt_certificate.text() operator = self.txt_operator.text() issueDate = datetime.datetime.strptime( monthList[self.cmb_issue_month.currentText()] + self.cmb_issue_day.currentText() + self.cmb_issue_year.currentText(), '%m%d%Y').date() expiry = datetime.datetime.strptime( monthList[self.cmb_expiry_month.currentText()] + self.cmb_expiry_day.currentText() + self.cmb_expiry_year.currentText(), '%m%d%Y').date() conn = connectToDB() cur = conn.cursor() cur.execute( 'UPDATE address SET permanent_address = "%s", city = "%s", province = "%s", zipcode="%s"' ' WHERE address_id = "%s"' % (address, city, province, zipCode, self.aid)) cur.execute( 'UPDATE users SET last_name="%s", first_name="%s", license_date="%s", ' 'license_expiry="%s", certif_no="%s", emergency_contact="%s", emergency_number="%s", ' 'operator="%s", gender="%s", date_of_birth="%s", email="%s", phone_number="%s" WHERE ' 'user_id = "%s"' % (lname, fname, issueDate, expiry, certNo, emContact, emNumber, operator, gender, birthday, email, mobile, self.uid)) conn.commit() self.audit("Admin updated pilot " + fname + " " + lname + "'s information.")