forked from indymedia/epicyon
				
			Remove salts dictionary
							parent
							
								
									1cafe0c8dd
								
							
						
					
					
						commit
						5dafb9d201
					
				
							
								
								
									
										12
									
								
								daemon.py
								
								
								
								
							
							
						
						
									
										12
									
								
								daemon.py
								
								
								
								
							|  | @ -2814,7 +2814,6 @@ class PubServer(BaseHTTPRequestHandler): | ||||||
|                     if self.server.tokens.get(loginNickname): |                     if self.server.tokens.get(loginNickname): | ||||||
|                         del self.server.tokensLookup[self.server.tokens[loginNickname]] |                         del self.server.tokensLookup[self.server.tokens[loginNickname]] | ||||||
|                         del self.server.tokens[loginNickname] |                         del self.server.tokens[loginNickname] | ||||||
|                         del self.server.salts[loginNickname] |  | ||||||
|                     self.send_response(303) |                     self.send_response(303) | ||||||
|                     self.send_header('Content-Length', '0') |                     self.send_header('Content-Length', '0') | ||||||
|                     self.send_header('Set-Cookie', 'epicyon=; SameSite=Strict') |                     self.send_header('Set-Cookie', 'epicyon=; SameSite=Strict') | ||||||
|  | @ -2835,14 +2834,14 @@ class PubServer(BaseHTTPRequestHandler): | ||||||
|                     self.send_response(303) |                     self.send_response(303) | ||||||
|                     # This produces a deterministic token based on nick+password+salt |                     # This produces a deterministic token based on nick+password+salt | ||||||
|                     saltFilename=self.server.baseDir+'/accounts/'+loginNickname+'@'+self.server.domain+'/.salt' |                     saltFilename=self.server.baseDir+'/accounts/'+loginNickname+'@'+self.server.domain+'/.salt' | ||||||
|  |                     salt=createPassword(32) | ||||||
|                     if os.path.isfile(saltFilename): |                     if os.path.isfile(saltFilename): | ||||||
|                         with open(saltFilename, 'r') as fp: |                         with open(saltFilename, 'r') as fp: | ||||||
|                             self.server.salts[loginNickname] = fp.read() |                             salt = fp.read() | ||||||
|                     else: |                     else: | ||||||
|                         self.server.salts[loginNickname]=createPassword(32) |  | ||||||
|                         with open(saltFilename, 'w') as fp: |                         with open(saltFilename, 'w') as fp: | ||||||
|                             fp.write(self.server.salts[loginNickname]) |                             fp.write(salt) | ||||||
|                     self.server.tokens[loginNickname]=sha256((loginNickname+loginPassword+self.server.salts[loginNickname]).encode('utf-8')).hexdigest() |                     self.server.tokens[loginNickname]=sha256((loginNickname+loginPassword+salt).encode('utf-8')).hexdigest() | ||||||
|                     self.server.tokensLookup[self.server.tokens[loginNickname]]=loginNickname |                     self.server.tokensLookup[self.server.tokens[loginNickname]]=loginNickname | ||||||
|                     self.send_header('Set-Cookie', 'epicyon='+self.server.tokens[loginNickname]+'; SameSite=Strict') |                     self.send_header('Set-Cookie', 'epicyon='+self.server.tokens[loginNickname]+'; SameSite=Strict') | ||||||
|                     self.send_header('Location', '/users/'+loginNickname+'/inbox') |                     self.send_header('Location', '/users/'+loginNickname+'/inbox') | ||||||
|  | @ -3140,7 +3139,7 @@ class PubServer(BaseHTTPRequestHandler): | ||||||
|                     if '@' in nickname: |                     if '@' in nickname: | ||||||
|                         nickname=nickname.split('@')[0] |                         nickname=nickname.split('@')[0] | ||||||
|                     if moderationButton=='suspend': |                     if moderationButton=='suspend': | ||||||
|                         suspendAccount(self.server.baseDir,nickname,self.server.salts) |                         suspendAccount(self.server.baseDir,nickname) | ||||||
|                     if moderationButton=='unsuspend': |                     if moderationButton=='unsuspend': | ||||||
|                         unsuspendAccount(self.server.baseDir,nickname) |                         unsuspendAccount(self.server.baseDir,nickname) | ||||||
|                     if moderationButton=='block': |                     if moderationButton=='block': | ||||||
|  | @ -4128,7 +4127,6 @@ def runDaemon(projectVersion, \ | ||||||
|     httpd.allowDeletion=allowDeletion |     httpd.allowDeletion=allowDeletion | ||||||
|     httpd.lastLoginTime=0 |     httpd.lastLoginTime=0 | ||||||
|     httpd.maxReplies=maxReplies |     httpd.maxReplies=maxReplies | ||||||
|     httpd.salts={} |  | ||||||
|     httpd.tokens={} |     httpd.tokens={} | ||||||
|     httpd.tokensLookup={} |     httpd.tokensLookup={} | ||||||
|     httpd.instanceOnlySkillsSearch=instanceOnlySkillsSearch |     httpd.instanceOnlySkillsSearch=instanceOnlySkillsSearch | ||||||
|  |  | ||||||
|  | @ -566,11 +566,8 @@ def unsuspendAccount(baseDir: str,nickname: str) -> None: | ||||||
|                 suspendedFile.write(suspended) |                 suspendedFile.write(suspended) | ||||||
|         suspendedFile.close() |         suspendedFile.close() | ||||||
| 
 | 
 | ||||||
| def suspendAccount(baseDir: str,nickname: str,salts: {}) -> None: | def suspendAccount(baseDir: str,nickname: str) -> None: | ||||||
|     """Suspends the given account |     """Suspends the given account | ||||||
|     This also changes the salt used by the authentication token |  | ||||||
|     so that the person can't continue to use the system without |  | ||||||
|     going through the login screen |  | ||||||
|     """ |     """ | ||||||
|     # Don't suspend the admin |     # Don't suspend the admin | ||||||
|     adminNickname=getConfigParam(baseDir,'admin') |     adminNickname=getConfigParam(baseDir,'admin') | ||||||
|  | @ -597,13 +594,11 @@ def suspendAccount(baseDir: str,nickname: str,salts: {}) -> None: | ||||||
|         if suspendedFile: |         if suspendedFile: | ||||||
|             suspendedFile.write(nickname+'\n') |             suspendedFile.write(nickname+'\n') | ||||||
|             suspendedFile.close() |             suspendedFile.close() | ||||||
|             salts[nickname]=createPassword(32)             |  | ||||||
|     else: |     else: | ||||||
|         suspendedFile=open(suspendedFilename,'w+') |         suspendedFile=open(suspendedFilename,'w+') | ||||||
|         if suspendedFile: |         if suspendedFile: | ||||||
|             suspendedFile.write(nickname+'\n') |             suspendedFile.write(nickname+'\n') | ||||||
|             suspendedFile.close() |             suspendedFile.close() | ||||||
|             salts[nickname]=createPassword(32)             |  | ||||||
| 
 | 
 | ||||||
| def canRemovePost(baseDir: str,nickname: str,domain: str,port: int,postId: str) -> bool: | def canRemovePost(baseDir: str,nickname: str,domain: str,port: int,postId: str) -> bool: | ||||||
|     """Returns true if the given post can be removed |     """Returns true if the given post can be removed | ||||||
|  |  | ||||||
		Loading…
	
		Reference in New Issue