mirror of https://gitlab.com/bashrc2/epicyon
Validate passwords
parent
f3a4190ad0
commit
a3fbea9a69
19
daemon.py
19
daemon.py
|
@ -210,6 +210,7 @@ from shares import expireShares
|
||||||
from categories import setHashtagCategory
|
from categories import setHashtagCategory
|
||||||
from languages import getActorLanguages
|
from languages import getActorLanguages
|
||||||
from languages import setActorLanguages
|
from languages import setActorLanguages
|
||||||
|
from utils import validPassword
|
||||||
from utils import removeLineEndings
|
from utils import removeLineEndings
|
||||||
from utils import getBaseContentFromPost
|
from utils import getBaseContentFromPost
|
||||||
from utils import acctDir
|
from utils import acctDir
|
||||||
|
@ -1490,6 +1491,22 @@ class PubServer(BaseHTTPRequestHandler):
|
||||||
return
|
return
|
||||||
self.server.lastLoginTime = int(time.time())
|
self.server.lastLoginTime = int(time.time())
|
||||||
if register:
|
if register:
|
||||||
|
if not validPassword(loginPassword):
|
||||||
|
self.server.POSTbusy = False
|
||||||
|
if callingDomain.endswith('.onion') and onionDomain:
|
||||||
|
self._redirect_headers('http://' + onionDomain +
|
||||||
|
'/login', cookie,
|
||||||
|
callingDomain)
|
||||||
|
elif (callingDomain.endswith('.i2p') and i2pDomain):
|
||||||
|
self._redirect_headers('http://' + i2pDomain +
|
||||||
|
'/login', cookie,
|
||||||
|
callingDomain)
|
||||||
|
else:
|
||||||
|
self._redirect_headers(httpPrefix + '://' +
|
||||||
|
domainFull + '/login',
|
||||||
|
cookie, callingDomain)
|
||||||
|
return
|
||||||
|
|
||||||
if not registerAccount(baseDir, httpPrefix, domain, port,
|
if not registerAccount(baseDir, httpPrefix, domain, port,
|
||||||
loginNickname, loginPassword,
|
loginNickname, loginPassword,
|
||||||
self.server.manualFollowerApproval):
|
self.server.manualFollowerApproval):
|
||||||
|
@ -4242,7 +4259,7 @@ class PubServer(BaseHTTPRequestHandler):
|
||||||
removeLineEndings(fields['password'])
|
removeLineEndings(fields['password'])
|
||||||
fields['passwordconfirm'] = \
|
fields['passwordconfirm'] = \
|
||||||
removeLineEndings(fields['passwordconfirm'])
|
removeLineEndings(fields['passwordconfirm'])
|
||||||
if len(fields['password']) > 2 and \
|
if validPassword(fields['password']) and \
|
||||||
fields['password'] == fields['passwordconfirm']:
|
fields['password'] == fields['passwordconfirm']:
|
||||||
# set password
|
# set password
|
||||||
storeBasicCredentials(baseDir, nickname,
|
storeBasicCredentials(baseDir, nickname,
|
||||||
|
|
10
tests.py
10
tests.py
|
@ -39,6 +39,7 @@ from follow import clearFollowers
|
||||||
from follow import sendFollowRequestViaServer
|
from follow import sendFollowRequestViaServer
|
||||||
from follow import sendUnfollowRequestViaServer
|
from follow import sendUnfollowRequestViaServer
|
||||||
from siteactive import siteIsActive
|
from siteactive import siteIsActive
|
||||||
|
from utils import validPassword
|
||||||
from utils import userAgentDomain
|
from utils import userAgentDomain
|
||||||
from utils import camelCaseSplit
|
from utils import camelCaseSplit
|
||||||
from utils import decodedHost
|
from utils import decodedHost
|
||||||
|
@ -4252,9 +4253,18 @@ def _testGetLinksFromContent():
|
||||||
assert '>@linked</a>' in content
|
assert '>@linked</a>' in content
|
||||||
|
|
||||||
|
|
||||||
|
def _testValidPassword():
|
||||||
|
print('testValidPassword')
|
||||||
|
assert not validPassword('123')
|
||||||
|
assert not validPassword('')
|
||||||
|
assert not validPassword('Abcdefg1?23456')
|
||||||
|
assert validPassword('Abcdef!g123456')
|
||||||
|
|
||||||
|
|
||||||
def runAllTests():
|
def runAllTests():
|
||||||
print('Running tests...')
|
print('Running tests...')
|
||||||
updateDefaultThemesList(os.getcwd())
|
updateDefaultThemesList(os.getcwd())
|
||||||
|
_testValidPassword()
|
||||||
_testGetLinksFromContent()
|
_testGetLinksFromContent()
|
||||||
_testSetActorLanguages()
|
_testSetActorLanguages()
|
||||||
_testLimitRepetedWords()
|
_testLimitRepetedWords()
|
||||||
|
|
10
utils.py
10
utils.py
|
@ -2614,3 +2614,13 @@ def removeLineEndings(text: str) -> str:
|
||||||
text = text.replace('\n', '')
|
text = text.replace('\n', '')
|
||||||
text = text.replace('\r', '')
|
text = text.replace('\r', '')
|
||||||
return text.strip()
|
return text.strip()
|
||||||
|
|
||||||
|
|
||||||
|
def validPassword(password: str) -> bool:
|
||||||
|
"""Returns true if the given password is valid
|
||||||
|
"""
|
||||||
|
if len(password) < 8:
|
||||||
|
return False
|
||||||
|
if not re.match("^[a-zA-Z0-9!]*$", password):
|
||||||
|
return False
|
||||||
|
return True
|
||||||
|
|
Loading…
Reference in New Issue