summaryrefslogtreecommitdiffstats
path: root/cobbler
diff options
context:
space:
mode:
authorMichael DeHaan <mdehaan@redhat.com>2007-12-05 11:46:38 -0500
committerMichael DeHaan <mdehaan@redhat.com>2007-12-05 11:46:38 -0500
commit762de2e043b967bdf0bdc1be8189ab21b055a808 (patch)
tree38d29d16c66bcc5ae7a8c65b21725b8fa2a11a88 /cobbler
parent58cae26af9b3a868041b52fc0dde6047faff73a3 (diff)
downloadthird_party-cobbler-762de2e043b967bdf0bdc1be8189ab21b055a808.tar.gz
third_party-cobbler-762de2e043b967bdf0bdc1be8189ab21b055a808.tar.xz
third_party-cobbler-762de2e043b967bdf0bdc1be8189ab21b055a808.zip
mod_python version of webui now operational at http://server/cobbler/web with pluggable authn/authz and using same tokens through entire communication chain. Should probably implement a session logout though.
Diffstat (limited to 'cobbler')
-rw-r--r--cobbler/remote.py8
-rw-r--r--cobbler/webui/CobblerWeb.py34
-rw-r--r--cobbler/webui/master.py30
3 files changed, 37 insertions, 35 deletions
diff --git a/cobbler/remote.py b/cobbler/remote.py
index dcc01d1..081f8c8 100644
--- a/cobbler/remote.py
+++ b/cobbler/remote.py
@@ -456,9 +456,9 @@ class CobblerReadWriteXMLRPCInterface(CobblerXMLRPCInterface):
self.logger.debug("invalid token: %s" % token)
raise CX(_("invalid token: %s" % token))
- def check_access(self,token,resource):
+ def check_access(self,token,resource,arg1=None,arg2=None):
validated = self.__validate_token(token)
- return self.__authorize(token,resource)
+ return self.__authorize(token,resource,arg1,arg2)
def __get_user_from_token(self,token):
if not self.token_cache.has_key(token):
@@ -481,9 +481,9 @@ class CobblerReadWriteXMLRPCInterface(CobblerXMLRPCInterface):
self.logger.info("login failed: %s" % login_user)
raise CX(_("login failed: %s") % login_user)
- def __authorize(self,token,resource):
+ def __authorize(self,token,resource,arg1=None,arg2=None):
user = self.__get_user_from_token(token)
- if self.authz.authorize(user,resource):
+ if self.authz.authorize(user,resource,arg1,arg2):
return True
else:
raise CX(_("user does not have access to resource: %s") % resource)
diff --git a/cobbler/webui/CobblerWeb.py b/cobbler/webui/CobblerWeb.py
index a69df82..9985994 100644
--- a/cobbler/webui/CobblerWeb.py
+++ b/cobbler/webui/CobblerWeb.py
@@ -20,7 +20,9 @@ from cobbler.utils import *
import logging
import sys
-LOGGING_ENABLED = False
+# FIXME: make logging use apache logging
+
+LOGGING_ENABLED = True
if LOGGING_ENABLED:
# set up logging
@@ -179,10 +181,10 @@ class CobblerWeb(object):
# Index
# ------------------------------------------------------------------------ #
- def index(self):
+ def index(self,**args):
return self.__render( 'index.tmpl', { } )
- def menu(self):
+ def menu(self,**args):
return self.__render( 'blank.tmpl', { } )
# ------------------------------------------------------------------------ #
@@ -206,7 +208,7 @@ class CobblerWeb(object):
# Distributions
# ------------------------------------------------------------------------ #
- def distro_list(self,page=None,limit=None):
+ def distro_list(self,page=None,limit=None,**spam):
if not self.__xmlrpc_setup():
return self.xmlrpc_auth_failure()
@@ -223,7 +225,7 @@ class CobblerWeb(object):
else:
return self.__render('empty.tmpl', {})
- def distro_edit(self, name=None):
+ def distro_edit(self, name=None,**spam):
if not self.__xmlrpc_setup():
return self.xmlrpc_auth_failure()
@@ -330,7 +332,7 @@ class CobblerWeb(object):
return (page, results_per_page, pages)
- def system_list(self,page=None,limit=None):
+ def system_list(self,page=None,limit=None,**spam):
if not self.__xmlrpc_setup():
return self.xmlrpc_auth_failure()
@@ -456,7 +458,7 @@ class CobblerWeb(object):
return self.system_list()
- def system_edit(self, name=None):
+ def system_edit(self, name=None,**spam):
if not self.__xmlrpc_setup():
return self.xmlrpc_auth_failure()
@@ -474,7 +476,7 @@ class CobblerWeb(object):
# ------------------------------------------------------------------------ #
# Profiles
# ------------------------------------------------------------------------ #
- def profile_list(self,page=None,limit=None):
+ def profile_list(self,page=None,limit=None,**spam):
if not self.__xmlrpc_setup():
return self.xmlrpc_auth_failure()
@@ -491,10 +493,10 @@ class CobblerWeb(object):
else:
return self.__render('empty.tmpl', {})
- def subprofile_edit(self, name=None):
+ def subprofile_edit(self, name=None,**spam):
return self.profile_edit(name,1)
- def profile_edit(self, name=None, subprofile=0):
+ def profile_edit(self, name=None, subprofile=0, **spam):
if not self.__xmlrpc_setup():
return self.xmlrpc_auth_failure()
@@ -611,7 +613,7 @@ class CobblerWeb(object):
# Repos
# ------------------------------------------------------------------------ #
- def repo_list(self,page=None,limit=None):
+ def repo_list(self,page=None,limit=None,**spam):
if not self.__xmlrpc_setup():
return self.xmlrpc_auth_failure()
@@ -628,7 +630,7 @@ class CobblerWeb(object):
else:
return self.__render('empty.tmpl', {})
- def repo_edit(self, name=None):
+ def repo_edit(self, name=None,**spam):
if not self.__xmlrpc_setup():
return self.xmlrpc_auth_failure()
@@ -706,14 +708,14 @@ class CobblerWeb(object):
# Kickstart files
# ------------------------------------------------------------------------ #
- def ksfile_list(self):
+ def ksfile_list(self,**spam):
if not self.__xmlrpc_setup():
return self.xmlrpc_auth_failure()
return self.__render( 'ksfile_list.tmpl', {
'ksfiles': self.remote.get_kickstart_templates(self.token)
} )
- def ksfile_edit(self, name=None):
+ def ksfile_edit(self, name=None,**spam):
if not self.__xmlrpc_setup():
return self.xmlrpc_auth_failure()
return self.__render( 'ksfile_edit.tmpl', {
@@ -757,7 +759,7 @@ class CobblerWeb(object):
mac = self.remote.get_random_mac()
return mac
- def error_page(self, message):
+ def error_page(self, message, **spam):
# hack to remove some junk from remote fault errors so they
# look as if they were locally generated and not exception-based.
@@ -769,7 +771,7 @@ class CobblerWeb(object):
'message': message
} )
- def xmlrpc_auth_failure(self):
+ def xmlrpc_auth_failure(self, **spam):
return self.__render( 'error_page.tmpl', {
'message': "XMLRPC Authentication Error. See Apache logs for details."
} )
diff --git a/cobbler/webui/master.py b/cobbler/webui/master.py
index 356fceb..d4b1d2b 100644
--- a/cobbler/webui/master.py
+++ b/cobbler/webui/master.py
@@ -33,10 +33,10 @@ VFN=valueForName
currentTime=time.time
__CHEETAH_version__ = '2.0'
__CHEETAH_versionTuple__ = (2, 0, 0, 'final', 0)
-__CHEETAH_genTime__ = 1196374123.089437
-__CHEETAH_genTimestamp__ = 'Thu Nov 29 17:08:43 2007'
+__CHEETAH_genTime__ = 1196809899.3260081
+__CHEETAH_genTimestamp__ = 'Tue Dec 4 18:11:39 2007'
__CHEETAH_src__ = 'webui_templates/master.tmpl'
-__CHEETAH_srcLastModified__ = 'Wed Nov 7 12:24:52 2007'
+__CHEETAH_srcLastModified__ = 'Tue Dec 4 17:33:59 2007'
__CHEETAH_docstring__ = 'Autogenerated by CHEETAH: The Python-Powered Template Engine'
if __CHEETAH_versionTuple__ < RequiredCheetahVersionTuple:
@@ -152,56 +152,56 @@ class master(Template):
<li><a href="''')
_v = VFFSL(SL,"base_url",True) # '$base_url' on line 32, col 22
if _v is not None: write(_filter(_v, rawExpr='$base_url')) # from line 32, col 22.
- write('''/settings_view" class="menu">Settings</a></li>
+ write('''?mode=settings_view" class="menu">Settings</a></li>
<li><hr/></li>
<li>LIST</li>
<li><a href="''')
_v = VFFSL(SL,"base_url",True) # '$base_url' on line 35, col 22
if _v is not None: write(_filter(_v, rawExpr='$base_url')) # from line 35, col 22.
- write('''/distro_list" class="menu">Distros</a></li>
+ write('''?mode=distro_list" class="menu">Distros</a></li>
<li><a href="''')
_v = VFFSL(SL,"base_url",True) # '$base_url' on line 36, col 22
if _v is not None: write(_filter(_v, rawExpr='$base_url')) # from line 36, col 22.
- write('''/profile_list" class="menu">Profiles</a></li>
+ write('''?mode=profile_list" class="menu">Profiles</a></li>
<li><a href="''')
_v = VFFSL(SL,"base_url",True) # '$base_url' on line 37, col 22
if _v is not None: write(_filter(_v, rawExpr='$base_url')) # from line 37, col 22.
- write('''/system_list" class="menu">Systems</a></li>
+ write('''?mode=system_list" class="menu">Systems</a></li>
<li><a href="''')
_v = VFFSL(SL,"base_url",True) # '$base_url' on line 38, col 22
if _v is not None: write(_filter(_v, rawExpr='$base_url')) # from line 38, col 22.
- write('''/ksfile_list" class="menu">Kickstarts</a></li>
+ write('''?mode=ksfile_list" class="menu">Kickstarts</a></li>
<li><a href="''')
_v = VFFSL(SL,"base_url",True) # '$base_url' on line 39, col 22
if _v is not None: write(_filter(_v, rawExpr='$base_url')) # from line 39, col 22.
- write('''/repo_list" class="menu">Repos</a></li>
+ write('''?mode=repo_list" class="menu">Repos</a></li>
<li><hr/></li>
<li>ADD</li>
<li><a href="''')
_v = VFFSL(SL,"base_url",True) # '$base_url' on line 42, col 22
if _v is not None: write(_filter(_v, rawExpr='$base_url')) # from line 42, col 22.
- write('''/distro_edit" class="menu">Distro</a></li>
+ write('''?mode=distro_edit" class="menu">Distro</a></li>
<li><a href="''')
_v = VFFSL(SL,"base_url",True) # '$base_url' on line 43, col 22
if _v is not None: write(_filter(_v, rawExpr='$base_url')) # from line 43, col 22.
- write('''/profile_edit" class="menu">Profile</a></li>
+ write('''?mode=profile_edit" class="menu">Profile</a></li>
<li><a href="''')
_v = VFFSL(SL,"base_url",True) # '$base_url' on line 44, col 22
if _v is not None: write(_filter(_v, rawExpr='$base_url')) # from line 44, col 22.
- write('''/subprofile_edit" class="menu">Subprofile</a></li>
+ write('''?mode=subprofile_edit" class="menu">Subprofile</a></li>
<li><a href="''')
_v = VFFSL(SL,"base_url",True) # '$base_url' on line 45, col 22
if _v is not None: write(_filter(_v, rawExpr='$base_url')) # from line 45, col 22.
- write('''/system_edit" class="menu">System</a></li>
+ write('''?mode=system_edit" class="menu">System</a></li>
<li><a href="''')
_v = VFFSL(SL,"base_url",True) # '$base_url' on line 46, col 22
if _v is not None: write(_filter(_v, rawExpr='$base_url')) # from line 46, col 22.
- write('''/repo_edit" class="menu">Repo</a></li>
+ write('''?mode=repo_edit" class="menu">Repo</a></li>
<li><hr/><br/></li>
<li><a class="button sync" href="''')
_v = VFFSL(SL,"base_url",True) # '$base_url' on line 48, col 42
if _v is not None: write(_filter(_v, rawExpr='$base_url')) # from line 48, col 42.
- write('''/sync">Sync</a></li>
+ write('''?mode=sync">Sync</a></li>
</ul>
</div>