[X2Go-Commits] x2gobroker.git - master-inai (branch) updated: 689eb8340b47a1188a1b628d244e001054a5ac35

X2Go dev team git-admin at x2go.org
Tue Apr 23 21:08:22 CEST 2013


The branch, master-inai has been updated
       via  689eb8340b47a1188a1b628d244e001054a5ac35 (commit)
      from  a0d62e0be475fa27152decbc15b009cdd937bb1d (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:
 x2gobroker/{backends => authmechs}/__init__.py     |    0
 x2gobroker/{__init__.py => authmechs/base.py}      |    5 +-
 x2gobroker/{__init__.py => authmechs/htpasswd.py}  |    6 +-
 x2gobroker/{backends/ldap.py => authmechs/pam.py}  |   17 ++---
 .../{backends/ldap.py => authmechs/testsuite.py}   |   16 ++---
 x2gobroker/backends/base.py                        |   72 ++++++++------------
 6 files changed, 50 insertions(+), 66 deletions(-)
 copy x2gobroker/{backends => authmechs}/__init__.py (100%)
 copy x2gobroker/{__init__.py => authmechs/base.py} (90%)
 copy x2gobroker/{__init__.py => authmechs/htpasswd.py} (83%)
 copy x2gobroker/{backends/ldap.py => authmechs/pam.py} (74%)
 copy x2gobroker/{backends/ldap.py => authmechs/testsuite.py} (77%)

The diff of changes is:
diff --git a/x2gobroker/backends/__init__.py b/x2gobroker/authmechs/__init__.py
similarity index 100%
copy from x2gobroker/backends/__init__.py
copy to x2gobroker/authmechs/__init__.py
diff --git a/x2gobroker/__init__.py b/x2gobroker/authmechs/base.py
similarity index 90%
copy from x2gobroker/__init__.py
copy to x2gobroker/authmechs/base.py
index ad8c1e4..cf58d59 100644
--- a/x2gobroker/__init__.py
+++ b/x2gobroker/authmechs/base.py
@@ -18,6 +18,7 @@
 # Free Software Foundation, Inc.,
 # 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA.
 
-__VERSION__ = '0.0.0.1'
-
+class X2GoBrokerAuthMech(object):
 
+    def authenticate(self, username, password):
+        return False
\ No newline at end of file
diff --git a/x2gobroker/__init__.py b/x2gobroker/authmechs/htpasswd.py
similarity index 83%
copy from x2gobroker/__init__.py
copy to x2gobroker/authmechs/htpasswd.py
index ad8c1e4..0778ca0 100644
--- a/x2gobroker/__init__.py
+++ b/x2gobroker/authmechs/htpasswd.py
@@ -18,6 +18,10 @@
 # Free Software Foundation, Inc.,
 # 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA.
 
-__VERSION__ = '0.0.0.1'
+class X2GoBrokerAuthMech(object):
 
+    def authenticate(self, username, password):
+
+        ### TODO: implement an authentication mechanism that can use htpasswd files
+        return False
 
diff --git a/x2gobroker/backends/ldap.py b/x2gobroker/authmechs/pam.py
similarity index 74%
copy from x2gobroker/backends/ldap.py
copy to x2gobroker/authmechs/pam.py
index 62b9801..77927f4 100644
--- a/x2gobroker/backends/ldap.py
+++ b/x2gobroker/authmechs/pam.py
@@ -18,16 +18,13 @@
 # Free Software Foundation, Inc.,
 # 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA.
 
-"""\
-X2goBrokerLDAP class - a production X2GoBroker implementations that uses LDAP as configuration backend
+class X2GoBrokerAuthMech(object):
 
-"""
-__NAME__ = 'x2gobroker-pylib'
+    def authenticate(self, username, password):
 
-# modules
-import x2gobroker.base
+        # do a simple PAM authentication against the PAM service ,,x2gobroker''
+        if username and password:
+            if pam.authenticate(username, password, service="x2gobroker"):
+                return True
 
-class X2GoBroker(x2gobroker.base.X2GoBroker):
-    """\
-
-    """
+        return False
diff --git a/x2gobroker/backends/ldap.py b/x2gobroker/authmechs/testsuite.py
similarity index 77%
copy from x2gobroker/backends/ldap.py
copy to x2gobroker/authmechs/testsuite.py
index 62b9801..c2aea0b 100644
--- a/x2gobroker/backends/ldap.py
+++ b/x2gobroker/authmechs/testsuite.py
@@ -18,16 +18,12 @@
 # Free Software Foundation, Inc.,
 # 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA.
 
-"""\
-X2goBrokerLDAP class - a production X2GoBroker implementations that uses LDAP as configuration backend
+class X2GoBrokerAuthMech(object):
 
-"""
-__NAME__ = 'x2gobroker-pylib'
+    def authenticate(self, username, password):
 
-# modules
-import x2gobroker.base
+        # return C{True} for user test with password sweet... (used by the unit tests)
+        if username == 'test' and password == 'sweet':
+            return True
+        return False
 
-class X2GoBroker(x2gobroker.base.X2GoBroker):
-    """\
-
-    """
diff --git a/x2gobroker/backends/base.py b/x2gobroker/backends/base.py
index f6f0dd6..fb27617 100644
--- a/x2gobroker/backends/base.py
+++ b/x2gobroker/backends/base.py
@@ -48,7 +48,8 @@ class X2GoBroker(object):
     """
 
     backend_name = 'base'
-    service_module = None
+    nameservice_module = None
+    authmech_module = None
 
     def __init__(self, config_file=None, config_defaults=None):
         """\
@@ -280,36 +281,21 @@ class X2GoBroker(object):
         #}
         return 'OK'
 
-    def _auth_mech_testsuite(self, username='', password=''):
-        if username == 'test' and password == 'sweet':
+    def _import_authmech_module(self, mech='pam'):
+        try:
+            if self.authmech_module is None:
+                exec("import x2gobroker.authmechs.{mech} as _authmech_module".format(mech=mech))
+                self.authmech_module = _authmech_module
             return True
-
-    def _auth_mech_pam(self, username='', password=''):
-
-        # do a simple PAM authentication against the PAM service ,,x2gobroker''
-        if username and password:
-            if pam.authenticate(username, password, service="x2gobroker"):
-                return True
-
-    def _auth_mech_htpasswd(self, username='', password=''):
-
-        ### TODO: implement an authentication mechanism that can use htpasswd files
-        return False
+        except ImportError:
+            return False
 
     def _do_authenticate(self, username='', password=''):
 
-        _auth_mech = self.get_authentication_mechanism()
-
-        if _auth_mech == 'pam':
-            return self._auth_mech_pam(username=username, password=password)
-
-        elif _auth_mech == 'htpasswd':
-            return self._auth_mech_htpasswd(username=username, password=password)
-
-        elif _auth_mech == 'testsuite':
-            return self._auth_mech_testsuite(username=username, password=password)
-
-        return False
+        if self._import_authmech_module(mech=self.get_authentication_mechanism()):
+            return self.authmech_module.X2GoBrokerAuthMech().authenticate(username, password)
+        else:
+            return False
 
     def get_authentication_mechanism(self):
         """\
@@ -366,11 +352,11 @@ class X2GoBroker(object):
 
         return unicode(_group_db)
 
-    def _import_service_module(self, service='libnss'):
+    def _import_nameservice_module(self, service='libnss'):
         try:
-            if self.service_module is None:
-                exec("import x2gobroker.nameservices.{service} as _service_module".format(service=service))
-                self.service_module = _service_module
+            if self.nameservice_module is None:
+                exec("import x2gobroker.nameservices.{service} as _nameservice_module".format(service=service))
+                self.nameservice_module = _nameservice_module
             return True
         except ImportError:
             return False
@@ -386,8 +372,8 @@ class X2GoBroker(object):
         @rtype: C{bool}
 
         """
-        if self._import_service_module(service=self.get_userdb_service()):
-            return self.service_module.X2GoBrokerNameService().has_user(username=username)
+        if self._import_nameservice_module(service=self.get_userdb_service()):
+            return self.nameservice_module.X2GoBrokerNameService().has_user(username=username)
         else:
             return False
 
@@ -399,8 +385,8 @@ class X2GoBroker(object):
         @rtype: C{list}
 
         """
-        if self._import_service_module(service=self.get_userdb_service()):
-            return self.service_module.X2GoBrokerNameService().get_users()
+        if self._import_nameservice_module(service=self.get_userdb_service()):
+            return self.nameservice_module.X2GoBrokerNameService().get_users()
         else:
             return False
 
@@ -415,8 +401,8 @@ class X2GoBroker(object):
         @rtype: C{bool}
 
         """
-        if self._import_service_module(service=self.get_groupdb_service()):
-            return self.service_module.X2GoBrokerNameService().has_group(group=group)
+        if self._import_nameservice_module(service=self.get_groupdb_service()):
+            return self.nameservice_module.X2GoBrokerNameService().has_group(group=group)
         else:
             return False
 
@@ -428,8 +414,8 @@ class X2GoBroker(object):
         @rtype: C{list}
 
         """
-        if self._import_service_module(service=self.get_groupdb_service()):
-            return self.service_module.X2GoBrokerNameService().get_groups()
+        if self._import_nameservice_module(service=self.get_groupdb_service()):
+            return self.nameservice_module.X2GoBrokerNameService().get_groups()
         else:
             return False
 
@@ -441,8 +427,8 @@ class X2GoBroker(object):
         @rtype: C{bool}
 
         """
-        if self._import_service_module(service=self.get_groupdb_service()):
-            return self.service_module.X2GoBrokerNameService().is_group_member(username=username, group=group, primary_groups=primary_groups)
+        if self._import_nameservice_module(service=self.get_groupdb_service()):
+            return self.nameservice_module.X2GoBrokerNameService().is_group_member(username=username, group=group, primary_groups=primary_groups)
         else:
             return []
 
@@ -459,8 +445,8 @@ class X2GoBroker(object):
         @rtype: C{list}
 
         """
-        if self._import_service_module(service=self.get_groupdb_service()):
-            return self.service_module.X2GoBrokerNameService().get_group_members(group=group, primary_groups=primary_groups)
+        if self._import_nameservice_module(service=self.get_groupdb_service()):
+            return self.nameservice_module.X2GoBrokerNameService().get_group_members(group=group, primary_groups=primary_groups)
         else:
             return []
 


hooks/post-receive
-- 
x2gobroker.git (HTTP(S) Session broker for X2Go)

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 "x2gobroker.git" (HTTP(S) Session broker for X2Go).




More information about the x2go-commits mailing list