[X2Go-Commits] pyhoca-gui.git - twofactorauth (branch) updated: 670fdf479ed7f837331eed42d1a01eae735cadd8

X2Go dev team git-admin at x2go.org
Sat Sep 14 15:54:13 CEST 2013


The branch, twofactorauth has been updated
       via  670fdf479ed7f837331eed42d1a01eae735cadd8 (commit)
      from  2689544a7184a8509b4c5ed4021b1f560f4894e6 (commit)

Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.

- Log -----------------------------------------------------------------
-----------------------------------------------------------------------

Summary of changes:
 pyhoca-gui               |    1 +
 pyhoca/wxgui/frontend.py |   29 +++++++++++++++++++++++++----
 pyhoca/wxgui/logon.py    |   38 +++++++++++++++++++++++++-------------
 3 files changed, 51 insertions(+), 17 deletions(-)

The diff of changes is:
diff --git a/pyhoca-gui b/pyhoca-gui
index 2b1508f..039a5b9 100755
--- a/pyhoca-gui
+++ b/pyhoca-gui
@@ -106,6 +106,7 @@ def parseargs():
 
     logger = x2go.X2goLogger(tag='PyHoca-GUI')
     liblogger = x2go.X2goLogger()
+    print logger.loglevel
 
     if a.debug:
         logger.set_loglevel_debug()
diff --git a/pyhoca/wxgui/frontend.py b/pyhoca/wxgui/frontend.py
index b0297e2..5be8778 100644
--- a/pyhoca/wxgui/frontend.py
+++ b/pyhoca/wxgui/frontend.py
@@ -177,9 +177,10 @@ class PyHocaGUI(wx.App, x2go.X2goClient):
         self._pyhoca_logger('PyHoca GUI is starting up', loglevel=x2go.loglevel_INFO, )
         self._pyhoca_logger('registering PyHocaGUI control sessions', loglevel=x2go.loglevel_INFO, )
 
-        self._chooser_selected_profile_name = None
+        #self._chooser_selected_profile_name = None
         self.taskbar = taskbar.PyHocaGUI_TaskBarIcon(self)
-        self.taskbar.Bind(wx.EVT_TASKBAR_LEFT_DOWN, self.taskbar.CreateSessionManagerPopupMenu)        
+        self.taskbar.Bind(wx.EVT_TASKBAR_LEFT_DOWN, self.taskbar.CreateSessionManagerPopupMenu)
+        self._sub_windows = []
         self._eventid_profilenames_map = {}
         self._eventid_sessionnames_map = {}
 
@@ -193,13 +194,28 @@ class PyHocaGUI(wx.App, x2go.X2goClient):
 
             for s in self._X2goClient__client_registered_sessions:
                 session_uuid = s.get_uuid()
+                self._pyhoca_logger('auto-connecting to %s session profile' % s.get_profile_name(), loglevel=x2go.log.loglevel_NOTICE)
                 gevent.spawn(self._auto_connect, session_uuid)
 
+        # prepare start/resume options
         self.start_on_connect = self.args.start_on_connect
         self.resume_newest_on_connect =self.args.resume_newest_on_connect
         self.resume_oldest_on_connect =self.args.resume_oldest_on_connect
         self.resume_all_on_connect =self.args.resume_all_on_connect
 
+        if self.args.session_profile:
+            for profile_name in self.args.session_profile.split(','):
+                if not self._X2goClient__client_registered_sessions_of_name(profile_name):
+                    continue
+                _dummy_id = wx.NewId()
+                self._eventid_profilenames_map[_dummy_id] = profile_name
+                evt = wx.CommandEvent()
+                evt.SetId(_dummy_id)
+                self.start_on_connect = True
+                self.resume_newest_on_connect = True
+                self._pyhoca_logger('opening default session profile %s' % profile_name, loglevel=x2go.log.loglevel_NOTICE)
+                self.OnSessionAuthenticate(evt)
+
     def _auto_connect(self, session_uuid):
 
         try:
@@ -211,6 +227,9 @@ class PyHocaGUI(wx.App, x2go.X2goClient):
     # wx.App's OnExit method
     def OnExit(self):
         x2go.x2go_cleanup()
+        for _win in self._sub_windows:
+            _win.Destroy()
+        self.Destroy()
 
     # the taskbar's OnExit method...
     def OnTaskbarExit(self, evt):
@@ -255,7 +274,8 @@ class PyHocaGUI(wx.App, x2go.X2goClient):
         self.OnSessionResume(evt)
 
     def _post_authenticate(self, evt, session_uuid):
-        # try SSH key auth first
+
+        _resumed = False
         if self.resume_newest_on_connect:
             _resumed = self._resume_newest_on_connect(evt, session_uuid)
         elif self.resume_oldest_on_connect:
@@ -277,7 +297,8 @@ class PyHocaGUI(wx.App, x2go.X2goClient):
             self._X2goClient__connect_session(session_uuid)
             self._post_authenticate(evt, session_uuid)
         except x2go.AuthenticationException:
-            logon.PyHocaGUI_DialogBoxPassword(self, caller=self, current_profile_name=profile_name)
+            _logon_window = logon.PyHocaGUI_DialogBoxPassword(self, profile_name, caller=self )
+            self._sub_windows.append(_logon_window)
         if self._X2goClient__is_session_connected(session_uuid):
             self._pyhoca_logger('authentication to server has been successful', x2go.loglevel_INFO, )
         else:
diff --git a/pyhoca/wxgui/logon.py b/pyhoca/wxgui/logon.py
index 6f3e240..21e3201 100644
--- a/pyhoca/wxgui/logon.py
+++ b/pyhoca/wxgui/logon.py
@@ -79,12 +79,10 @@ class PyHocaGUI_LogonStatusBar(wx.StatusBar):
         self.SetFieldsCount(2)
         self.SetStatusWidths([-1,200])
 
-
         self.timer = wx.PyTimer(self.Notify)
         self.timer.Start(1000)
         self.Notify()
 
-
     def Notify(self):
         """\
         STILL UNDOCUMENTED
@@ -100,7 +98,7 @@ class PyHocaGUI_DialogBoxPassword(sc.SizedFrame):
     STILL UNDOCUMENTED
 
     """
-    def __init__(self, _PyHocaGUI, current_profile_name, caller=None, ):
+    def __init__(self, _PyHocaGUI, profile_name, caller=None, ):
         """\
         Dialog box to enter the username and password for the selected
         session profile.
@@ -110,19 +108,26 @@ class PyHocaGUI_DialogBoxPassword(sc.SizedFrame):
         self._pyhoca_logger = self._PyHocaGUI._pyhoca_logger
         self._pyhoca_logger('password dialog box started', x2go.loglevel_INFO, )
 
-        self.current_profile_name = current_profile_name
-        self.current_profile_config = self._PyHocaGUI.session_profiles.get_profile_config(current_profile_name)
+        self.current_profile_name = profile_name
+        self.current_profile_config = self._PyHocaGUI.session_profiles.get_profile_config(profile_name)
+        self._authentication_failed = False
 
-        captionText = "Authentication X2go Session: " + current_profile_name
+        captionText = profile_name
         sc.SizedFrame.__init__(self, None, -1, captionText,
                         style=wx.DEFAULT_DIALOG_STYLE | wx.RESIZE_BORDER)
-        self.CentreOnScreen()
-        self.SetSize((350,250))
+        #self.CentreOnScreen()
+        self.SetSize((220,96))
 
         pane = self.GetContentsPane()
         pane.SetSizerType("form")
         pwbox = self.enterPasswordForm(pane)
-        self.Fit()
+        #self.Fit()
+        maxX, maxY = wx.GetDisplaySize()
+        if x2go.X2GOCLIENT_OS == 'Linux':
+            self.Move((maxX-225,35))
+        elif x2go.X2GOCLIENT_OS == 'Windows':
+            self.Move((maxX-225,maxY-35))
+
         self.Show()
 
     def enterPasswordForm(self, pnl):
@@ -130,7 +135,8 @@ class PyHocaGUI_DialogBoxPassword(sc.SizedFrame):
         STILL UNDOCUMENTED
 
         """
-        wx.StaticText(pnl, -1, '  Username'),
+        #wx.StaticText(pnl, -1, 'Authentication X2go Session...', (25, 80))
+        wx.StaticText(pnl, -1, 'Username', (5, 160))
         self.username_ctl = wx.TextCtrl(pnl, -1)
         self.username_ctl.SetSizerProps(expand=True)
         if self.current_profile_config.has_key('user'):
@@ -138,8 +144,11 @@ class PyHocaGUI_DialogBoxPassword(sc.SizedFrame):
         else:
             self.username_ctl.SetValue(self._PyHocaGUI.args.username)
 
-        wx.StaticText(pnl, -1, '  Password'),
+        wx.StaticText(pnl, -1, 'Password', (20, 240))
         self.passwd_ctl = wx.TextCtrl(pnl, -1, style=wx.TE_PASSWORD)
+        self.passwd_ctl.SetSizerProps(expand=True)
+        if self._authentication_failed:
+            wx.StaticText(pnl, -1, 'Authentication Failed', (5, 320)),
 
         self.ConnectButton = wx.Button(pnl, -1, "Authenticate")
         self.ConnectButton.Bind(wx.EVT_BUTTON, self.OnAuthenticate)
@@ -166,8 +175,11 @@ class PyHocaGUI_DialogBoxPassword(sc.SizedFrame):
             self.Iconize()
 
         session_uuid = self._PyHocaGUI._X2goClient__client_registered_sessions_of_name(self.current_profile_name)[0].get_uuid()
-        self._PyHocaGUI._X2goClient__connect_session(session_uuid, username=username, password=password, force_password_auth=True)
-        self._PyHocaGUI._post_authenticate(evt, session_uuid)
+        try:
+            self._PyHocaGUI._X2goClient__connect_session(session_uuid, username=username, password=password, force_password_auth=True)
+            self._PyHocaGUI._post_authenticate(evt, session_uuid)
+        except x2go.AuthenticationException:
+            self._authentication_failed = True
         self.Destroy()
 
     def OnCancel(self, evt):


hooks/post-receive
-- 
pyhoca-gui.git (Python X2Go Client (wxPython GUI))

This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "pyhoca-gui.git" (Python X2Go Client (wxPython GUI)).




More information about the x2go-commits mailing list