[X2Go-Commits] pyhoca-gui.git - twofactorauth (branch) updated: 2689544a7184a8509b4c5ed4021b1f560f4894e6

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


The branch, twofactorauth has been updated
       via  2689544a7184a8509b4c5ed4021b1f560f4894e6 (commit)
      from  a1c77b0af5b5f817b501d40574ca382d58922345 (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               |    4 +++-
 pyhoca/wxgui/frontend.py |   49 +++++++++++++++++++++++++++++++++++-----------
 pyhoca/wxgui/logon.py    |    6 +-----
 3 files changed, 42 insertions(+), 17 deletions(-)

The diff of changes is:
diff --git a/pyhoca-gui b/pyhoca-gui
index 53c2e62..2b1508f 100755
--- a/pyhoca-gui
+++ b/pyhoca-gui
@@ -77,7 +77,9 @@ x2go_gui_options = [
                    {'args':['-P','--session-profile'], 'default': None, 'help': 'directly connect to a session profile', },
                    {'args':['--auto-connect'], 'default': False, 'action': 'store_true', 'help': 'connect sessions via SSH pubkey authentication if possible', },
                    {'args':['--start-on-connect'], 'default': False, 'action': 'store_true', 'help': 'start a session directly after authentication', },
-                   {'args':['--resume-on-connect'], 'default': False, 'action': 'store_true', 'help': 'if there is only one session it will be auto-resume', },
+                   {'args':['--resume-newest-on-connect', '--resume-on-connect'], 'default': False, 'action': 'store_true', 'help': ' on connect auto-resume the newest suspended session', },
+                   {'args':['--resume-oldest-on-connect'], 'default': False, 'action': 'store_true', 'help': ' on connect auto-resume the oldest suspended session', },
+                   {'args':['--resume-all-on-connect'], 'default': False, 'action': 'store_true', 'help': 'auto-resume all suspended session on connect', },
                  ]
 
 def parseargs():
diff --git a/pyhoca/wxgui/frontend.py b/pyhoca/wxgui/frontend.py
index 9e8f5d7..b0297e2 100644
--- a/pyhoca/wxgui/frontend.py
+++ b/pyhoca/wxgui/frontend.py
@@ -196,7 +196,9 @@ class PyHocaGUI(wx.App, x2go.X2goClient):
                 gevent.spawn(self._auto_connect, session_uuid)
 
         self.start_on_connect = self.args.start_on_connect
-        self.resume_on_connect =self.args.resume_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
 
     def _auto_connect(self, session_uuid):
 
@@ -224,15 +226,45 @@ class PyHocaGUI(wx.App, x2go.X2goClient):
         if not self._X2goClient__list_sessions(session_uuid):
             self.OnSessionStart(evt)
 
-    def _resume_on_connect(self, evt, session_uuid):
+    def _resume_newest_on_connect(self, evt, session_uuid):
         session_infos = self._X2goClient__list_sessions(session_uuid)
-        if session_infos:
+        if session_infos: 
             newest_session_name = x2go.utils.session_names_by_timestamp(session_infos)[-1]
-            self._eventid_sessionnames_map[evt.GetId()] = newest_session_name
-            self.OnSessionResume(evt)
+            self._resume_on_connect(evt, session_uuid, newest_session_name)
             return True
         return False
 
+    def _resume_oldest_on_connect(self, evt, session_uuid):
+        session_infos = self._X2goClient__list_sessions(session_uuid)
+        if session_infos:
+            newest_session_name = x2go.utils.session_names_by_timestamp(session_infos)[0]
+            self._resume_on_connect(evt, session_uuid, newest_session_name)
+            return True
+        return False
+
+    def _resume_all_on_connect(self, evt, session_uuid):
+        session_infos = self._X2goClient__list_sessions(session_uuid)
+        if session_infos:
+            for session_name in session_infos.keys():
+                self._resume_on_connect(evt, session_uuid, session_name)
+            return True
+        return False
+
+    def _resume_on_connect(self, evt, session_uuid, session_name):
+        self._eventid_sessionnames_map[evt.GetId()] = session_name
+        self.OnSessionResume(evt)
+
+    def _post_authenticate(self, evt, session_uuid):
+        # try SSH key auth first
+        if self.resume_newest_on_connect:
+            _resumed = self._resume_newest_on_connect(evt, session_uuid)
+        elif self.resume_oldest_on_connect:
+            _resumed = self._resume_oldest_on_connect(evt, session_uuid)
+        elif self.resume_all_on_connect:
+            _resumed = self._resume_all_on_connect(evt, session_uuid)
+        if not _resumed and self.start_on_connect:
+            self._start_on_connect(evt, session_uuid)
+
     def OnSessionAuthenticate(self, evt):
         """\
         STILL UNDOCUMENTED
@@ -242,15 +274,10 @@ class PyHocaGUI(wx.App, x2go.X2goClient):
         self.current_profile_name = profile_name
         session_uuid = self._X2goClient__register_session(profile_name=self.current_profile_name)
         try:
-            # try SSH key auth first
             self._X2goClient__connect_session(session_uuid)
-            if self.resume_on_connect:
-                _resumed = self._resume_on_connect(evt, session_uuid)
-            if not _resumed and self.start_on_connect:
-                self._start_on_connect(evt, session_uuid)
+            self._post_authenticate(evt, session_uuid)
         except x2go.AuthenticationException:
             logon.PyHocaGUI_DialogBoxPassword(self, caller=self, current_profile_name=profile_name)
-
         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 9285d46..6f3e240 100644
--- a/pyhoca/wxgui/logon.py
+++ b/pyhoca/wxgui/logon.py
@@ -167,11 +167,7 @@ class PyHocaGUI_DialogBoxPassword(sc.SizedFrame):
 
         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)
-        if self._PyHocaGUI.resume_on_connect:
-            _resumed = self._PyHocaGUI._resume_on_connect(evt, session_uuid)
-        if not _resumed and self._PyHocaGUI.start_on_connect:
-            self._PyHocaGUI._start_on_connect(evt, session_uuid)
-
+        self._PyHocaGUI._post_authenticate(evt, session_uuid)
         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