示例#1
0
    def __init__(self, userIndex, *args, **kwargs):
        super().__init__()

        self.dir_path = get_dir_path()
        self.userIndex = userIndex
        self.databasePath = "{}Databases/user{}.db".format(
            self.dir_path,
            hex(self.userIndex)[2:])

        self.dbObj = sql_functions(
            self.databasePath
        )  #Kullanıcının günlük aktivite bilgilerinin saklandığı veritabanına bağlanılır

        self.rangeCount = 0
        self.last = None

        self.ranges = list()
        self.jobNames = list()
        self.data_dict = None

        self.dataTypes = [(str, "str"), (str, "str"), (int, "int"),
                          (int, "int"), (int, "int"), (int, "int")]
        self.predictionVariables = [
            "Aktivite Adı", "İsteklilik", "Yorgunluk", "Moral", "Son Verim"
        ]
        self.dayVariables = [
            "Date", "TimeRange", "Willingness", "Fatigue", "Morale",
            "Efficiency"
        ]
        self.sleepVariables = ["Date", "SleepRange", "SleepEfficiency"]
        self.newDateDBConfigurationText = "('Job','TEXT'),('TimeRange','TEXT'),('Willingness','INT'), ('Fatigue','INT'), ('Morale','INT'),('Efficiency','INT')"
        self.setWindowTitle("Proje")

        self.initUI()
示例#2
0
    def __init__(self, UserIndex, *args, **kwargs):
        super().__init__()
        self.path = get_dir_path()
        self.UserIndex = UserIndex
        __usersDB = sql_functions("{}Databases/users.db".format(self.path))
        __userData = __usersDB.get_row_with_ID("Users", self.UserIndex)
        __usersDB.disconnect_from_database()
        self.installEventFilter(self)
        self.setWindowTitle("Profil Sayfası")
        self.setMaximumWidth(557)
        self.registrationDate = __userData[0]
        self.email = __userData[1]
        self.nickname = __userData[2]
        self.name = __userData[3]
        self.surname = __userData[4]
        self.__passwordHashed = __userData[5]  #Gizlilik amaçlı

        self.formatImagePath = "{}Images/userImages/genderlessUser.png".format(
            self.path)
        self.userImagePath = "{}Images/userImages/user{}.png".format(
            self.path,
            hex(self.UserIndex)[2:])
        self.psudoImagePath = ""
        self.setStyleSheet("""
        background-color: #C6E2FF;
        """)
        self.initUI()
示例#3
0
 def __init__(self, *args, **kwargs):
     super().__init__()
     self.setWindowTitle("Kullanıcı Girişi")
     self.dir_path = get_dir_path()
     self.userDatabaseControl()
     self.userDB = sql_functions("{}Databases/users.db".format(
         self.dir_path))  #Kullanıcı veritabanı ile bağlantının kurulması
     self.setMaximumSize(356, 206)  #Ekran boyutları
     self.initUI()  #Arayüz tasarım kodlarının çalıştırılması
示例#4
0
    def __init__(self, *args, **kwargs):
        super().__init__()
        self.dir_path = get_dir_path()  # Ana kod dizinin bulunması
        self.userDB = sql_functions("{}Databases/users.db".format(
            self.dir_path))  # Kullanıcı veritabanına bağlanılır
        self.setWindowTitle("Kayıt Formu")  # Pencere başlığı
        # Ekran boyutları
        self.setMinimumSize(343, 316)
        self.setMaximumSize(343, 316)

        self.initUI()  # Arayüz kodlarının çalıştırılması
示例#5
0
    def __init__(self, dayTableColumns, sleepTableColumns, rawDatabasePath,
                 *args, **kwargs):
        self.dayTableColumns = dayTableColumns
        self.sleepTableColumns = sleepTableColumns

        if os.path.isfile(rawDatabasePath):
            self.rawDatabasePath = rawDatabasePath
            self.__RawDB = sql_functions(self.rawDatabasePath)
        else:
            raise FileNotFoundError("Geçersiz veritabanı konumu.")

        self.__data_dict = dict()
示例#6
0
    def saveChanges(self):
        change = False
        email = self.emailLine.text()
        nickname = self.nicknameLine.text()
        name = self.nameLine.text()
        surname = self.surnameLine.text()
        if (email != self.email or nickname != self.nickname
                or name != self.name or surname != self.surname):
            if ((email and nickname and name and surname) != ""):
                if "@" in email:
                    print("we are in")
                    __usersDB = sql_functions("{}Databases/users.db".format(
                        self.path))
                    __usersDB.update_data("Users", "Email", "Date", email,
                                          self.registrationDate)
                    __usersDB.update_data("Users", "Username", "Date",
                                          nickname, self.registrationDate)
                    __usersDB.update_data("Users", "Name", "Date", name,
                                          self.registrationDate)
                    __usersDB.update_data("Users", "Surname", "Date", surname,
                                          self.registrationDate)
                    self.email = email
                    self.nickname = name
                    self.name = name
                    self.surname = surname

                    change = True

                else:
                    self.notify("Geçersiz e-posta adresi.",
                                situation="negative")
            else:
                self.notify("Geçersiz girdi.", situation="negative")

        if self.psudoImagePath != "":
            image = Image.open(self.psudoImagePath)
            image.save(self.userImagePath)
            self.psudoImagePath = ""
            change = True

        if change:
            self.notify("Değişiklikler başarı ile kaydedildi.",
                        situation="positive")
示例#7
0
    def changePasswordFunctionDatabaseSide(self):
        oldPass = self.oldPassword.text()
        if sha256_crypt.verify(oldPass, self.__passwordHashed):
            print("[+] old password enterance verified")
            if self.newPassword.text() == self.newPasswordVerify.text():
                print("[+] new password entrance verified")
                newPass = self.newPassword.text()
                self.__passwordHashed = sha256_crypt.encrypt(newPass)
                print("[I] hashed new password : "******"{}Databases/users.db".format(
                    self.path))
                __usersDB.update_data("Users", "Password", "Date",
                                      self.__passwordHashed,
                                      self.registrationDate)
                self.notify("Şifre başarı ile değiştirildi.",
                            situation="positive")
                self.changePasswordFunctionVisiualSide(reverse=True)
                self.cleanPasswordChangeLineEdits()

            else:
                self.notify("Başarısız şifre doğrulama.", situation="negative")
        else:
            self.notify("Yanlış şifre.Tekrar deneyiniz.", situation="negative")
示例#8
0
def usersConf():
    # Bu fonksiyon bir nevi setup fonksiyonudur.UserLogin ilk çalıştığında çalışır 
    # ve kullanıcıların kayıt bilgilerinin saklanacağı veritabanının konfigürasyonu yapılır.
    mainDirPath = get_dir_path()
    userDb = sql_functions("{}Databases/users.db".format(mainDirPath))
    userDb.create_table("Users",("Date","TEXT"),("Email","TEXT"),("Username","TEXT"),("Name","TEXT"),("Surname","TEXT"),("Password","TEXT"))
示例#9
0
def tableCheck(database_path,table_name):
    sqlObj = sql_functions(database_path)
    if sqlObj.getTableInfo(table_name) == []:
        return False
    else:
        return True
示例#10
0
    def register(self):  #Girilen bilgilerin veritabanına kayıt edilmesi
        email = self.emailLineEdit.text()
        nickname = self.nicknameLineEdit.text()
        name = self.nameLineEdit.text()
        surname = self.surnameLineEdit.text()
        password = self.passwordLineEdit.text()
        password = sha256_crypt.encrypt(
            password)  #Girilen şifrenin SHA256 ile şifrelenmesi

        date = str(datetime.datetime.now())
        #Hataların handle edilmesi ve kullanıcıya hata bilgisinin döndürülmesi
        if nickname in [
                tup[0]
                for tup in self.userDB.get_column_by_name("users", "Username")
        ]:
            self.nicknameLineEdit.setText(
                "Girilen kullanıcı adı daha önce kullanılmıştır.Yeni bir kullanıcı adı giriniz ."
            )

        elif email in [
                tup[0]
                for tup in self.userDB.get_column_by_name("users", "Email")
        ]:
            self.emailLineEdit.setText(
                "Girilen E-Posta adresi daha önce kayıt olmuştur.Yeni bir E-Posta adresi giriniz . "
            )

        elif not ("@" in email):
            self.emailLineEdit.setText("Geçersiz E-Posta adresi ...")

        elif len(nickname) == 0:
            self.nameLineEdit.setText("Lütfen bir kullancı adı giriniz .")

        elif len(surname) == 0:
            self.nameLineEdit.setText("Lütfen isminizi giriniz .")

        elif len(name) == 0:
            self.nameLineEdit.setText("Lütfen isminizi giriniz .")
        elif len(password) == 0:
            self.passwordLineEdit.setText("Lütfen bir şifre giriniz .")
        else:  #Veri girişi hatasız ise bu bölüm çalışır
            self.userDB.insert_data(
                "users", date, email, nickname, name, surname,
                password)  #Kullanıcı Veritabanına bilgi akışı
            userIndex = [
                tup[0]
                for tup in self.userDB.get_column_by_name("users", "Username")
            ].index(
                nickname
            )  #Kullanıcının, kayıt olan kaçıncı kullanıcı olduğunun bulunmaı
            userDailyDb = sql_functions(
                "{}Databases/user{}.db".format(self.dir_path,
                                               hex(userIndex)[2:])
            )  #Kullanıcıya özel ,günlük aktivite bilgilerinin saklanacağı veritabanının yaratılması
            userDailyDb.create_table(
                "SleepTable", ("Date", "TEXT"), ("SleepRange", "TEXT"),
                ("SleepEfficiency", "INT"
                 ))  #Uyku bilgilerinin saklanacağı tablonun konfigurasyonu

            #Kullanıcıya kayıt bilgisinin başarı durumunun bildirilmesi
            self.registeredNotificationLabel.setText(
                "Kayıt işlemi başarı ile gerçekleştirildi.")
            self.registeredNotificationLabel.setStyleSheet("""
            font-family:Courier;
            font-size:10px;
            font-weight:650;
            color :#5A2C63;
            background-color:#C4FFC1;
            border-left:4px solid  	#35632c;
            padding : 4px;
            """)
            self.registeredNotificationImage.setPixmap(
                QPixmap("{}Images/tickIconAdjusted.png".format(self.dir_path)))
            QTimer.singleShot(
                3000, lambda: self.registeredNotificationLabel.setText(""))
            QTimer.singleShot(
                3000,
                lambda: self.registeredNotificationLabel.setStyleSheet(""))
            QTimer.singleShot(
                3000,
                lambda: self.registeredNotificationImage.setPixmap(QPixmap()))
            QTimer.singleShot(
                3000, lambda: self.backLogin())  #Giriş ekranına geri gelinir