comparison libervia.py @ 415:fadbba1d793f

server_side: added support for SSL and related parameters: Full parameters list: -t, --connection_type= 'http', 'https' or 'both' (to launch both servers). [default: both] -p, --port= The port number to listen HTTP on. [default: 8080] -s, --port_https= The port number to listen HTTPS on. [default: 8443] -c, --ssl_certificate= PEM certificate with both private and public parts. [default: libervia.pem] -r, --redirect_to_https= automatically redirect from HTTP to HTTPS. [default: 0] -w, --security_warning= warn user that he is about to connect on HTTP. [default: 1]
author souliane <souliane@mailoo.org>
date Tue, 18 Mar 2014 15:59:38 +0100
parents ee8ebfe23e16
children 20c508f9b32a
comparison
equal deleted inserted replaced
414:ae598511850d 415:fadbba1d793f
307 panel.addWidget(wid) 307 panel.addWidget(wid)
308 308
309 def displayNotification(self, title, body): 309 def displayNotification(self, title, body):
310 self.notification.notify(title, body) 310 self.notification.notify(title, body)
311 311
312 def _isRegisteredCB(self, registered): 312 def _isRegisteredCB(self, result):
313 registered, warning = result
313 if not registered: 314 if not registered:
314 self._register_box = RegisterBox(self.logged) 315 self._register_box = RegisterBox(self.logged)
315 self._register_box.centerBox() 316 self._register_box.centerBox()
316 self._register_box.show() 317 self._register_box.show()
317 self._tryAutoConnect() 318 if warning:
319 dialog.InfoDialog(_('Security warning'), warning).show()
320 self._tryAutoConnect(skip_validation=not not warning)
318 else: 321 else:
319 self._register.call('isConnected', self._isConnectedCB) 322 self._register.call('isConnected', self._isConnectedCB)
320 323
321 def _isConnectedCB(self, connected): 324 def _isConnectedCB(self, connected):
322 if not connected: 325 if not connected:
355 self._paramUpdate(param['name'], value, param['category'], refresh) 358 self._paramUpdate(param['name'], value, param['category'], refresh)
356 for param in self.params_ui: 359 for param in self.params_ui:
357 self.bridge.call('asyncGetParamA', lambda value: params_ui_cb(self.params_ui[param], value), 360 self.bridge.call('asyncGetParamA', lambda value: params_ui_cb(self.params_ui[param], value),
358 self.params_ui[param]['name'], self.params_ui[param]['category']) 361 self.params_ui[param]['name'], self.params_ui[param]['category'])
359 362
360 def _tryAutoConnect(self): 363 def _tryAutoConnect(self, skip_validation=False):
361 """This method retrieve the eventual URL parameters to auto-connect the user.""" 364 """This method retrieve the eventual URL parameters to auto-connect the user.
365 @param skip_validation: if True, set the form values but do not validate it
366 """
362 params = getURLParams(Window.getLocation().getSearch()) 367 params = getURLParams(Window.getLocation().getSearch())
363 if "login" in params: 368 if "login" in params:
364 self._register_box._form.login_box.setText(params["login"]) 369 self._register_box._form.login_box.setText(params["login"])
365 self._register_box._form.login_pass_box.setFocus(True) 370 self._register_box._form.login_pass_box.setFocus(True)
366 if "passwd" in params: 371 if "passwd" in params:
367 # try to connect 372 # try to connect
368 self._register_box._form.login_pass_box.setText(params["passwd"]) 373 self._register_box._form.login_pass_box.setText(params["passwd"])
369 self._register_box._form.onLogin(None) 374 if not skip_validation:
375 self._register_box._form.onLogin(None)
370 return True 376 return True
371 else: 377 else:
372 # this would eventually set the browser saved password 378 # this would eventually set the browser saved password
373 Timer(5, lambda: self._register_box._form.login_pass_box.setFocus(True)) 379 Timer(5, lambda: self._register_box._form.login_pass_box.setFocus(True))
374 380