lcl: support new auth system

This commit is contained in:
Romain Bignon 2013-07-21 19:10:16 +02:00
commit bb430b3078
3 changed files with 17 additions and 8 deletions

View file

@ -75,13 +75,21 @@ class SkipPage(BasePage):
class LoginPage(BasePage):
def on_loaded(self):
try:
self.browser.select_form(name='form')
except:
pass
else:
self.browser.submit(nologin=True)
def myXOR(self,value,seed):
s=''
for i in xrange(len(value)):
s+=chr(seed^ord(value[i]))
return s
def login(self, agency, login, passwd):
def login(self, login, passwd, agency):
try:
vk=LCLVirtKeyboard(self)
except VirtKeyboardError,err:
@ -106,8 +114,11 @@ class LoginPage(BasePage):
self.browser.select_form(
predicate=lambda x: x.attrs.get('id','')=='formAuthenticate')
self.browser.form.set_all_readonly(False)
self.browser['agenceId'] = agency
self.browser['compteId'] = login
if len(agency) > 0:
self.browser['agenceId'] = agency.encode('utf-8')
self.browser['compteId'] = login.encode('utf-8')
else:
self.browser['identifiant'] = login.encode('utf-8')
self.browser['postClavierXor'] = base64.b64encode(self.myXOR(password,seed))
try:
self.browser.submit(nologin=True)