Beispiel #1
0
    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()
Beispiel #2
0
    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()
Beispiel #3
0
    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)
Beispiel #4
0
    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)
Beispiel #5
0
    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])
Beispiel #6
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
Beispiel #9
0
    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)
Beispiel #10
0
    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)
Beispiel #11
0
    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()
Beispiel #12
0
    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()
Beispiel #13
0
    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()
Beispiel #14
0
    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)
Beispiel #15
0
    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()
Beispiel #16
0
    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()
Beispiel #17
0
    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;}")
Beispiel #18
0
    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()
Beispiel #19
0
    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)
Beispiel #20
0
    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)
Beispiel #21
0
    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)
Beispiel #22
0
    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.")