.BANCHO. Add more privileges check through direct privilege value
This commit is contained in:
		@@ -11,14 +11,17 @@ def handle(userToken, packetData):
 | 
			
		||||
	userID = userToken.userID
 | 
			
		||||
	username = userToken.username
 | 
			
		||||
 | 
			
		||||
	# Update privileges
 | 
			
		||||
	userToken.updatePrivileges()
 | 
			
		||||
 | 
			
		||||
	# Make sure we are not banned
 | 
			
		||||
	if userUtils.isBanned(userID):
 | 
			
		||||
	if userUtils.isBanned(priv=userToken.privileges):
 | 
			
		||||
		userToken.enqueue(serverPackets.loginBanned())
 | 
			
		||||
		return
 | 
			
		||||
 | 
			
		||||
	# Send restricted message if needed
 | 
			
		||||
	if not userToken.restricted:
 | 
			
		||||
		if userUtils.isRestricted(userID):
 | 
			
		||||
		if userUtils.isRestricted(priv=userToken.privileges):
 | 
			
		||||
			userToken.setRestricted()
 | 
			
		||||
 | 
			
		||||
	# Change action packet
 | 
			
		||||
 
 | 
			
		||||
@@ -64,9 +64,9 @@ def handle(tornadoRequest):
 | 
			
		||||
 | 
			
		||||
		# Make sure we are not banned or locked
 | 
			
		||||
		priv = userUtils.getPrivileges(userID)
 | 
			
		||||
		if userUtils.isBanned(userID) == True and priv & privileges.USER_PENDING_VERIFICATION == 0:
 | 
			
		||||
		if userUtils.isBanned(priv=priv) == True and not userUtils.isPending(priv=priv):
 | 
			
		||||
			raise exceptions.loginBannedException()
 | 
			
		||||
		if userUtils.isLocked(userID) == True and priv & privileges.USER_PENDING_VERIFICATION == 0:
 | 
			
		||||
		if userUtils.isLocked(priv=priv) == True and not userUtils.isPending(priv=priv):
 | 
			
		||||
			raise exceptions.loginLockedException()
 | 
			
		||||
 | 
			
		||||
		# 2FA check
 | 
			
		||||
@@ -195,6 +195,10 @@ def handle(tornadoRequest):
 | 
			
		||||
			location = locationHelper.getLocation(requestIP)
 | 
			
		||||
			countryLetters = locationHelper.getCountry(requestIP)
 | 
			
		||||
			country = countryHelper.getCountryID(countryLetters)
 | 
			
		||||
 | 
			
		||||
			# Set country in db if user has no country (first bancho login)
 | 
			
		||||
			if userUtils.getCountry(userID) == "XX":
 | 
			
		||||
				userUtils.setCountry(userID, countryLetters)
 | 
			
		||||
		else:
 | 
			
		||||
			# Set location to 0,0 and get country from db
 | 
			
		||||
			log.warning("Location skipped")
 | 
			
		||||
@@ -206,10 +210,6 @@ def handle(tornadoRequest):
 | 
			
		||||
		responseToken.setLocation(location)
 | 
			
		||||
		responseToken.setCountry(country)
 | 
			
		||||
 | 
			
		||||
		# Set country in db if user has no country (first bancho login)
 | 
			
		||||
		if userUtils.getCountry(userID) == "XX":
 | 
			
		||||
			userUtils.setCountry(userID, countryLetters)
 | 
			
		||||
 | 
			
		||||
		# Send to everyone our userpanel if we are not restricted or tournament
 | 
			
		||||
		if not responseToken.restricted:
 | 
			
		||||
			glob.streams.broadcast("main", serverPackets.userPanel(userID))
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user