diff options
author | Michael DeHaan <mdehaan@mdehaan.rdu.redhat.com> | 2007-09-10 17:27:24 -0400 |
---|---|---|
committer | Michael DeHaan <mdehaan@mdehaan.rdu.redhat.com> | 2007-09-10 17:27:24 -0400 |
commit | 6c49d8034f6df531ca7825bf43c26f7c2297615e (patch) | |
tree | 647d89f55857e706838bc4f73fd62e755a071d41 /cobbler/remote.py | |
parent | d875f3bf66625fd5548e57fd30574b9a9623bb63 (diff) | |
download | third_party-cobbler-6c49d8034f6df531ca7825bf43c26f7c2297615e.tar.gz third_party-cobbler-6c49d8034f6df531ca7825bf43c26f7c2297615e.tar.xz third_party-cobbler-6c49d8034f6df531ca7825bf43c26f7c2297615e.zip |
Allow for configuration for RW xmlrpc users in /etc/cobbler/auth.conf.
Diffstat (limited to 'cobbler/remote.py')
-rw-r--r-- | cobbler/remote.py | 25 |
1 files changed, 21 insertions, 4 deletions
diff --git a/cobbler/remote.py b/cobbler/remote.py index 7fb73a3..ea11506 100644 --- a/cobbler/remote.py +++ b/cobbler/remote.py @@ -23,6 +23,7 @@ from rhpl.translate import _, N_, textdomain, utf8 import xmlrpclib import logging import base64 +import ConfigParser import api as cobbler_api import yaml # Howell Clark version @@ -30,6 +31,14 @@ import utils from cexceptions import * import sub_process +config_parser = ConfigParser.ConfigParser() +auth_conf = open("/etc/cobbler/auth.conf") +config_parser.readfp(auth_conf) +auth_conf.close() + +user_database = config_parser.items("xmlrpc_service_users") + + # FIXME: make configurable? TOKEN_TIMEOUT = 60*60 # 60 minutes @@ -281,10 +290,15 @@ class CobblerReadWriteXMLRPCInterface: Returns whether this user/pass combo should be given access to the cobbler read-write API. - FIXME: always returns True, implement this. + FIXME: currently looks for users in /etc/cobbler/auth.conf + Would be very nice to allow for PAM and/or just Kerberos. """ - if user == "exampleuser": - return True + for x in user_database: + (db_user,db_password) = x + db_user = db_user.strip() + db_password = db_password.strip() + if db_user == user and db_password == password and db_password.lower() != "disabled": + return True else: return False @@ -334,6 +348,9 @@ class CobblerReadWriteXMLRPCServer(SimpleXMLRPCServer.SimpleXMLRPCServer): if __name__ == "__main__": + testuser = "mdehaan" + testpass = "llamas2007" + logger = logging.getLogger("cobbler.cobblerd") logger.setLevel(logging.DEBUG) ch = logging.FileHandler("/var/log/cobbler/cobblerd.log") @@ -344,7 +361,7 @@ if __name__ == "__main__": api = cobbler_api.BootAPI() remote = CobblerReadWriteXMLRPCInterface(api,logger) - token = remote.login("exampleuser","examplepass") + token = remote.login(testuser,testpass) print token rc = remote.test(token) print "test result: %s" % rc |