[X2Go-Commits] python-x2go.git - build-baikal (branch) updated: 63c93d1376cf14bfc549ecdb33189212d3c1dc0b

X2Go dev team git-admin at x2go.org
Wed Jan 8 15:27:16 CET 2014


The branch, build-baikal has been updated
       via  63c93d1376cf14bfc549ecdb33189212d3c1dc0b (commit)
      from  78f0a40ac8dc79a9338cc949ddbacf213421ab31 (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:
 x2go/session.py |   37 +++++++++++++++++++++++++++++--------
 1 file changed, 29 insertions(+), 8 deletions(-)

The diff of changes is:
diff --git a/x2go/session.py b/x2go/session.py
index fd51534..6687105 100644
--- a/x2go/session.py
+++ b/x2go/session.py
@@ -343,6 +343,7 @@ class X2goSession(paramiko.SSHClient):
 
     _session_auth_rsakey = None
     _remote_home = None
+    _remote_x2gousers = None
 
     def __init__(self,
                  geometry="800x600", depth=24, link="adsl", pack="16m-jpeg-9", 
@@ -442,9 +443,9 @@ class X2goSession(paramiko.SSHClient):
         else:
             raise x2go_exceptions.X2goSessionException('the Paramiko/SSH client is not connected')
 
-    def _x2go_sftp_put(self, local_path, remote_path, loglevel=log.loglevel_INFO):
+    def _x2go_sftp_put(self, local_path, remote_path):
 
-        self.logger('sFTP-put: %s -> %s:%s' % (local_path, self.session_info.hostname, remote_path), loglevel)
+        self.logger('sFTP-put: %s -> %s:%s' % (local_path, self.session_info.hostname, remote_path), loglevel=log.loglevel_DEBUG)
         self.sftp_client.put(local_path, remote_path)
 
     def _x2go_sftp_write(self, remote_path, content, loglevel=log.loglevel_INFO):
@@ -455,9 +456,9 @@ class X2goSession(paramiko.SSHClient):
         remote_fileobj.write(content)
         remote_fileobj.close()
 
-    def _x2go_sftp_remove(self, remote_path, loglevel=log.loglevel_INFO):
+    def _x2go_sftp_remove(self, remote_path):
 
-        self.logger('sFTP-write: removing remote file %s on host %s' % (remote_path, self.session_info.hostname), loglevel)
+        self.logger('sFTP-write: removing remote file %s on host %s' % (remote_path, self.session_info.hostname), loglevel=log.loglevel_DEBUG)
         self.sftp_client.remove(remote_path)
 
     @property
@@ -466,11 +467,23 @@ class X2goSession(paramiko.SSHClient):
         if self._remote_home is None:
             (stdin, stdout, stderr) = self._x2go_exec_command('echo $HOME')
             self._remote_home = stdout.read().split()[0]
+            self.logger('remote user\' home directory: %s' % self._remote_home, loglevel=log.loglevel_DEBUG)
             return self._remote_home
         else:
             return self._remote_home
 
     @property
+    def _x2go_remote_x2gousers(self):
+
+        if self._remote_x2gousers is None:
+            (stdin, stdout, stderr) = self._x2go_exec_command('getent group x2gousers | cut -d":" -f4')
+            self._remote_x2gousers = stdout.read().split('\n')[0].split(',')
+            self.logger('remote x2gousers group: %s' % self._remote_x2gousers, loglevel=log.loglevel_DEBUG)
+            return self._remote_x2gousers
+        else:
+            return self._remote_x2gousers
+
+    @property
     def _x2go_session_auth_rsakey(self):
         if self._session_auth_rsakey is None:
             self._session_auth_rsakey = paramiko.RSAKey.generate(defaults.RSAKEY_STRENGTH)
@@ -593,6 +606,8 @@ class X2goSession(paramiko.SSHClient):
         self.guardian_thread.start()
         self.guardian_thread.active_threads.append(self.get_transport())
 
+        return (self.get_transport() is not None)
+
     def start(self, **kwargs):
         """\
         Start a new X2go session. 
@@ -603,6 +618,10 @@ class X2goSession(paramiko.SSHClient):
         """
         self.params.update(kwargs)
 
+        _remote_username = self.get_transport().get_username()
+        if _remote_username not in self._x2go_remote_x2gousers:
+            raise x2go_exceptions.X2goSessionException('remote user %s is not member of X2go server group x2gousers' % _remote_username)
+
         setkbd = "0"
         if self.params.kblayout or self.params.kbtype:
             setkbd = "1"
@@ -620,8 +639,9 @@ class X2goSession(paramiko.SSHClient):
                    ]
 
         (stdin, stdout, stderr) = self._x2go_exec_command(cmd_line)
+
         self.session_info.initialize(stdout.read(),
-                                     username=self.get_transport().get_username(), 
+                                     username=_remote_username,
                                      hostname=self.get_transport().getpeername(),
                                     )
 
@@ -636,7 +656,9 @@ class X2goSession(paramiko.SSHClient):
         self.proxy = self.proxy_class(session_info=self.session_info, ssh_transport=self.get_transport(), logger=self.logger)
         self.proxy_subprocess = self.proxy.start()
 
+
         self.associated = True
+        return self.ok()
 
     def start_sound(self):
         """\
@@ -1031,11 +1053,10 @@ class X2goSession(paramiko.SSHClient):
             self.session_info.remote_container = '%s/%s/C-%s' % (self._x2go_remote_home, _X2GO_SESSION_ROOTDIR,
                                                                  self.session_info.name,
                                                                 )
-
-            return True
+            return self.ok()
 
         else:
-            return False
+            raise X2goSessionException('This X2go session instance is not associated to any server-side X2go session.')
 
     def suspend(self, session_name=None):
         """\


hooks/post-receive
-- 
python-x2go.git (Python X2Go Client API)

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 "python-x2go.git" (Python X2Go Client API).




More information about the x2go-commits mailing list