예제 #1
0
파일: login.py 프로젝트: GorioB/uftrs-app
	def submitResetPass(self, *args):
		username = self.reset_userSelector.text
		answer = self.reset_answer.get()
		newPass = self.reset_newPass.get()
		newPass2 = self.reset_newPass2.get()

		# Error checking: username doesn't exist
		if not User.userExists(username):
			self.reset_notifier.config(text="Username does not exist.", foreground='red')
			return
		# Error checking: wrong answer
		elif not User.verifySecretAnswer(username, answer):
			self.reset_notifier.config(text="Wrong answer.", foreground="red")
			return
		# Error checking: blank fields
		elif username=="" or answer=="" or newPass=="" or newPass2=="":
			self.reset_notifier.config(text="Please fill up all fields.", foreground="red")
			return
		elif newPass!=newPass2:
			self.reset_notifier.config(text="New passwords don't match.", foreground="red")
			return

		user = User(username, "")
		user.changePassword(newPass)
		self.reset_notifier.config(text="Password successfully changed.", foreground='darkgreen')
		self.clearResetPasswordEntries()
예제 #2
0
파일: login.py 프로젝트: GorioB/uftrs-app
	def submitChangePass(self,*a):
		user = User(self.change_user.get(), self.change_oldPass.get())
		newPass = self.change_newPass.get()
		newPass2 = self.change_newPass2.get()

		# Error checking: username doesn't exist
		if not user.userExists(user.username):
			self.change_notifier.config(text='Username does not exist.', foreground='red')
			return
		# Error checking: wrong password
		elif not user.auth():
			self.change_notifier.config(text='Wrong password.', foreground='red')
			return
		# Error checking: blank fields
		elif newPass=="" or newPass2=="":
			self.change_notifier.config(text='Please fill up all fields.', foreground='red')
			return
		# Error checking: unmatched new passwords
		elif newPass!=newPass2:
			self.change_notifier.config(text="New passwords don't match.", foreground='red')
			return

		user.changePassword(newPass)
		self.change_notifier.config(text="Password successfully changed.", foreground='darkgreen')
		self.clearChangePasswordEntries()
예제 #3
0
파일: login.py 프로젝트: GorioB/uftrs-app
	def submitCreateUser(self,*a):
		admin = User(self.create_adminUser.get(), self.create_adminPass.get())
		newUser = User(self.create_newUser.get(), self.create_newPass.get())
		newUserSecretQ = self.create_secretQ.get()
		newUserSecretA = self.create_secretA.get()
		reEnteredPass = self.create_newPass2.get()

		# Error checking: wrong admin username-password combo
		if not admin.auth():
			self.create_notifier.config(text='Wrong administrator credentials.', foreground='red')
			return
		# Error checking: entered admin account isn't root
		elif not admin.checkIfRoot():
			message = 'User ' + admin.username + ' is not an administrator.'
			self.create_notifier.config(text=message, foreground='red')
			return
		# Error checking: blank fields in new user input fields
		if newUser.username=="" or newUser.password=="" or newUserSecretA=="" or newUserSecretQ=="" or reEnteredPass=="":
			self.create_notifier.config(text='Please fill up all fields.', foreground='red')
			return
		# Error checking: username already taken
		elif User.userExists(newUser.username):
			message = 'Username ' + newUser.username + ' is already taken.'
			self.create_notifier.config(text=message, foreground='red')
			return
		# Error checking: two password fields don't match
		elif newUser.password!=reEnteredPass:
			self.create_notifier.config(text="Passwords don't match", foreground='red')
			return

		# Create the new user
		newUser.saveUser(newUserSecretQ, newUserSecretA, isRoot=self.create_isAdmin.get())
		self.create_notifier.config(text="New user created.", foreground='darkgreen')
		self.clearCreateAccountEntries()
		# Refresh the Reset Password tab's user drop down menu choices
		self.reset_userSelector.comboBox.config(values=User.listUsernames())
예제 #4
0
파일: login.py 프로젝트: GorioB/uftrs-app
	def submitLogIn(self,*a):
		user = User(self.logIn_username.get(), self.logIn_password.get())
		if not user.auth():
			self.logIn_notifier.config(text='Wrong credentials. Try again.', foreground='red')
		else:
			# Destroy log in screen
			self.notebook.pack_forget()

			# Move on to main program
			self.parent.geometry("800x500")
			self.mainProgram = mainProgram = MainProgram(self.parent)
			mainProgram.pack(fill=BOTH,expand=1)
			self.mainProgram.bind("<<Logout>>",self.logoutCB)
			mainProgram.app._activeUser = user
			self.clearAllEntries()
예제 #5
0
파일: login.py 프로젝트: GorioB/uftrs-app
	def submitFirstUser(self,*a):
		user = User(self.first_username.get(), self.first_pass.get())
		reEnteredPass = self.first_pass2.get()
		secretQ = self.first_question.get()
		secretA = self.first_answer.get()

		if user.password!=reEnteredPass:
			self.first_notifier.config(text="Passwords don't match.", foreground='red')
			return
		elif user.username=="" or user.password=="" or reEnteredPass=="" or secretQ=="" or secretA=="":
			self.first_notifier.config(text="Please fill up all fields.", foreground='red')
			return

		# Save the user into the database
		user.saveUser(secretQ, secretA, 1)

		# Move on to login screen
		self.frame.pack_forget()
		self.frame.destroy()
		self.initUI()