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()
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()
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ı
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ı
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()
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")
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")
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"))
def tableCheck(database_path,table_name): sqlObj = sql_functions(database_path) if sqlObj.getTableInfo(table_name) == []: return False else: return True
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