The branch, statusflag has been updated via 26bbbeff46c29c039dd9574d1c1b57284c360d61 (commit) from b52e51c2d66eb72980f93efafe27d64d58597c32 (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/base.py | 60 +++++++++++++++++++++++++-- x2gobroker/tests/test_backend_base.py | 33 +++++++++++++++ x2gobroker/tests/test_web_plain_zeroconf.py | 2 - 3 files changed, 89 insertions(+), 6 deletions(-) The diff of changes is: diff --git a/x2gobroker/backends/base.py b/x2gobroker/backends/base.py index 9c2e5b7..1bde0e7 100644 --- a/x2gobroker/backends/base.py +++ b/x2gobroker/backends/base.py @@ -297,10 +297,7 @@ class X2GoBroker(object): def _do_authenticate(self, username='', password=''): - if self.config.has_value(self.backend_name, 'auth-mech'): - _auth_mech = self.config.get_value(self.backend_name, 'auth-mech').lower() - else: - _auth_mech = "pam" + _auth_mech = self.get_authentication_mechanism() if _auth_mech == 'pam': return self._auth_mech_pam(username=username, password=password) @@ -313,6 +310,61 @@ class X2GoBroker(object): return False + def get_authentication_mechanism(self): + """\ + Get the name of the authentication mechanism that is configured for this + X2Go Session Broker instance. + + @return: auth-mech name + @rtype: C{unicode} + + """ + _default_auth_mech = "pam" + _auth_mech = "" + if self.config.has_value('global', 'default-auth-mech'): + _default_auth_mech = self.config.get_value('global', 'default-auth-mech').lower() + + if self.config.has_value(self.backend_name, 'auth-mech'): + _auth_mech = self.config.get_value(self.backend_name, 'auth-mech').lower() + + return unicode(_auth_mech) or unicode(_default_auth_mech) + + def get_userdb_backend(self): + """\ + Get the name of the backend being used for retrieving user information from the + system. + + @return: user database backend name + @rtype: C{unicode} + + """ + _user_db = "libnss" + if self.config.has_value('global', 'default-user-db'): + _user_db = self.config.get_value('global', 'default-user-db').lower() + + if self.config.has_value(self.backend_name, 'user-db'): + _user_db = self.config.get_value(self.backend_name, 'user-db').lower() + + return unicode(_user_db) + + def get_groupdb_backend(self): + """\ + Get the name of the backend being used for retrieving group information from the + system. + + @return: group database backend name + @rtype: C{unicode} + + """ + _group_db = "libnss" + if self.config.has_value('global', 'default-group-db'): + _group_db = self.config.get_value('global', 'default-group-db').lower() + + if self.config.has_value(self.backend_name, 'group-db'): + _group_db = self.config.get_value(self.backend_name, 'group-db').lower() + + return unicode(_group_db) + def check_access(self, username='', password='', authid=None, ): """\ Check if a given user with a given password may gain access to the diff --git a/x2gobroker/tests/test_backend_base.py b/x2gobroker/tests/test_backend_base.py index b629156..33f5efe 100644 --- a/x2gobroker/tests/test_backend_base.py +++ b/x2gobroker/tests/test_backend_base.py @@ -61,6 +61,39 @@ enable = true self.assertEqual(base_backend.is_enabled(), True) tf.close() + ### TEST CONFIGURATION: <backend> >> enable = true|false + + def test_globalandbackendoptions(self): + _config_defaults = copy.deepcopy(x2gobroker.defaults.X2GOBROKER_CONFIG_DEFAULTS) + _config_defaults.update({'base': {'enable': True, }, }) + _config = """ +[global] +default-auth-mech = foo-auth-mech + +[base] +enable = true +""" + tf = tempfile.NamedTemporaryFile() + print >> tf, _config + tf.seek(0) + base_backend = x2gobroker.backends.base.X2GoBroker(config_file=tf.name) + self.assertEqual(base_backend.get_authentication_mechanism(), 'foo-auth-mech') + _config = """ +[global] +default-auth-mech = foo-auth-mech + +[base] +enable = true +auth-mech = bar-auth-mech +""" + tf = tempfile.NamedTemporaryFile() + print >> tf, _config + tf.seek(0) + base_backend = x2gobroker.backends.base.X2GoBroker(config_file=tf.name, config_defaults=_config_defaults) + self.assertEqual(base_backend.get_authentication_mechanism(), 'bar-auth-mech') + tf.close() + + ### TEST CONFIGURATION: global >> check-credentials = false def test_check_access_nocreds(self): diff --git a/x2gobroker/tests/test_web_plain_zeroconf.py b/x2gobroker/tests/test_web_plain_zeroconf.py index 287ab89..4d6020e 100644 --- a/x2gobroker/tests/test_web_plain_zeroconf.py +++ b/x2gobroker/tests/test_web_plain_zeroconf.py @@ -31,8 +31,6 @@ from x2gobroker.web.plain import * urls = ( '/plain/(.*)', 'X2GoBrokerWebPlain',) app = web.application(urls, globals()) -x2gobroker.defaults.X2GOBROKER_CONFIG_DEFAULTS.update({'base': {'enable': True, 'auth-mech': 'pam', }, }) - class TestX2GoBrokerWebPlainZeroconf(unittest.TestCase): ### TEST TASK: listsessions (you can influence the session command via the X2Go Broker's configurationfile) 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).