diff options
author | Michael DeHaan <mdehaan@redhat.com> | 2008-04-02 18:29:06 -0400 |
---|---|---|
committer | Michael DeHaan <mdehaan@redhat.com> | 2008-04-02 18:29:06 -0400 |
commit | 3c08531c4e913268b94618b9939a44161d2dc556 (patch) | |
tree | d67d81dbe260c99c5ef4cb0e6f9eb6d47946e15f | |
parent | 3e29f5d729da704f608b2cd2dc7cf16a42d934f4 (diff) | |
download | third_party-cobbler-3c08531c4e913268b94618b9939a44161d2dc556.tar.gz third_party-cobbler-3c08531c4e913268b94618b9939a44161d2dc556.tar.xz third_party-cobbler-3c08531c4e913268b94618b9939a44161d2dc556.zip |
Added some code to allow assignment of default ownership from settings for new
objects. Also, ownership field for new objects in the WebUI is prepopulated with the username of the logged in user, to prevent accidental lockouts. All of this is untested at this point -- will be polished up soon.
-rw-r--r-- | cobbler/item_distro.py | 4 | ||||
-rw-r--r-- | cobbler/item_profile.py | 4 | ||||
-rw-r--r-- | cobbler/item_system.py | 4 | ||||
-rw-r--r-- | cobbler/settings.py | 1 | ||||
-rw-r--r-- | cobbler/webui/CobblerWeb.py | 4 | ||||
-rw-r--r-- | config/settings | 1 | ||||
-rw-r--r-- | tests/tests.py | 4 | ||||
-rw-r--r-- | webui_templates/distro_edit.tmpl | 2 | ||||
-rw-r--r-- | webui_templates/profile_edit.tmpl | 2 | ||||
-rw-r--r-- | webui_templates/repo_edit.tmpl | 2 | ||||
-rw-r--r-- | webui_templates/system_edit.tmpl | 2 |
11 files changed, 22 insertions, 8 deletions
diff --git a/cobbler/item_distro.py b/cobbler/item_distro.py index c40f002..3b82595 100644 --- a/cobbler/item_distro.py +++ b/cobbler/item_distro.py @@ -32,7 +32,7 @@ class Distro(item.Item): Reset this object. """ self.name = None - self.owners = [] + self.owners = self.settings.default_ownership self.kernel = (None, '<<inherit>>')[is_subobject] self.initrd = (None, '<<inherit>>')[is_subobject] self.kernel_options = ({}, '<<inherit>>')[is_subobject] @@ -61,7 +61,7 @@ class Distro(item.Item): """ self.parent = self.load_item(seed_data,'parent') self.name = self.load_item(seed_data,'name') - self.owners = self.load_item(seed_data,'owners',[]) + self.owners = self.load_item(seed_data,'owners',self.settings.default_ownership) self.kernel = self.load_item(seed_data,'kernel') self.initrd = self.load_item(seed_data,'initrd') self.kernel_options = self.load_item(seed_data,'kernel_options') diff --git a/cobbler/item_profile.py b/cobbler/item_profile.py index 3145b82..9135e53 100644 --- a/cobbler/item_profile.py +++ b/cobbler/item_profile.py @@ -34,7 +34,7 @@ class Profile(item.Item): Reset this object. """ self.name = None - self.owners = [] # should not be inheritable + self.owners = self.settings.default_ownership self.distro = (None, '<<inherit>>')[is_subobject] self.kickstart = (self.settings.default_kickstart , '<<inherit>>')[is_subobject] self.kernel_options = ({}, '<<inherit>>')[is_subobject] @@ -58,7 +58,7 @@ class Profile(item.Item): self.parent = self.load_item(seed_data,'parent','') self.name = self.load_item(seed_data,'name') - self.owners = self.load_item(seed_data,'owners',[]) + self.owners = self.load_item(seed_data,'owners',self.settings.default_ownership) self.distro = self.load_item(seed_data,'distro') self.kickstart = self.load_item(seed_data,'kickstart') self.kernel_options = self.load_item(seed_data,'kernel_options') diff --git a/cobbler/item_system.py b/cobbler/item_system.py index 6b2315a..7346d33 100644 --- a/cobbler/item_system.py +++ b/cobbler/item_system.py @@ -30,7 +30,7 @@ class System(item.Item): def clear(self,is_subobject=False): self.name = None - self.owners = None + self.owners = self.settings.default_ownership self.profile = None self.kernel_options = {} self.ks_meta = {} @@ -81,7 +81,7 @@ class System(item.Item): self.parent = self.load_item(seed_data, 'parent') self.name = self.load_item(seed_data, 'name') - self.owners = self.load_item(seed_data, 'owners', []) + self.owners = self.load_item(seed_data, 'owners', self.settings.default_ownership) self.profile = self.load_item(seed_data, 'profile') self.kernel_options = self.load_item(seed_data, 'kernel_options', {}) self.ks_meta = self.load_item(seed_data, 'ks_meta', {}) diff --git a/cobbler/settings.py b/cobbler/settings.py index 7681188..4372f3a 100644 --- a/cobbler/settings.py +++ b/cobbler/settings.py @@ -33,6 +33,7 @@ DEFAULTS = { "default_virt_type" : "auto", "default_virt_file_size" : "5", "default_virt_ram" : "512", + "default_ownership" : [ "admin" ], "dhcpd_conf" : "/etc/dhcpd.conf", "dhcpd_bin" : "/usr/sbin/dhcpd", "dnsmasq_bin" : "/usr/sbin/dnsmasq", diff --git a/cobbler/webui/CobblerWeb.py b/cobbler/webui/CobblerWeb.py index 8813006..ee2d700 100644 --- a/cobbler/webui/CobblerWeb.py +++ b/cobbler/webui/CobblerWeb.py @@ -168,6 +168,7 @@ class CobblerWeb(object): return self.__render( 'distro_edit.tmpl', { + 'user' : self.username, 'edit' : True, 'editable' : can_edit, 'distro': input_distro, @@ -408,6 +409,7 @@ class CobblerWeb(object): can_edit = self.remote.check_access_no_fail(self.token,"new_system",None) return self.__render( 'system_edit.tmpl', { + 'user' : self.username, 'edit' : True, 'editable' : can_edit, 'system': input_system, @@ -450,6 +452,7 @@ class CobblerWeb(object): can_edit = self.remote.check_access_no_fail(self.token,"new_profile",None) return self.__render( 'profile_edit.tmpl', { + 'user' : self.username, 'edit' : True, 'editable' : can_edit, 'profile': input_profile, @@ -598,6 +601,7 @@ class CobblerWeb(object): return self.__render( 'repo_edit.tmpl', { + 'user' : self.username, 'repo': input_repo, 'editable' : can_edit } ) diff --git a/config/settings b/config/settings index 2fd2736..f4c2487 100644 --- a/config/settings +++ b/config/settings @@ -9,6 +9,7 @@ default_virt_bridge: xenbr0 default_virt_type: auto default_virt_file_size: 5 default_virt_ram: 512 +default_ownership: [ "admin" ] dhcpd_bin: /usr/sbin/dhcpd dhcpd_conf: /etc/dhcpd.conf dnsmasq_bin: /usr/sbin/dnsmasq diff --git a/tests/tests.py b/tests/tests.py index f9bc368..2c055ba 100644 --- a/tests/tests.py +++ b/tests/tests.py @@ -169,10 +169,10 @@ class Ownership(BootTest): # basmeent2 can not edit. for user in [ "admin1", "superlab1", "superlab2", "basement1" ]: - self.assertTrue(1==authorize(self.api, user, "modify_kickstart", xo), "%s can modify_kickstart" % user) + self.assertTrue(1==authorize(self.api, user, "modify_kickstart", "/tmp/test_cobbler_kickstart"), "%s can modify_kickstart" % user) for user in [ "basement2", "dne" ]: - self.assertTrue(0==authorize(self.api, user, "modify_kickstart", xo), "%s can modify_kickstart" % user) + self.assertTrue(0==authorize(self.api, user, "modify_kickstart", "/tmp/test_cobbler_kickstart"), "%s can modify_kickstart" % user) # ensure admin1 can edit (he's an admin) and do other tasks # same applies to basement1 who is explicitly added as a user diff --git a/webui_templates/distro_edit.tmpl b/webui_templates/distro_edit.tmpl index 80536f5..5d19a43 100644 --- a/webui_templates/distro_edit.tmpl +++ b/webui_templates/distro_edit.tmpl @@ -188,6 +188,8 @@ function disablename(value) <input type="text" size="255" style="width: 400px;" name="owners" id="owners" #if $distro value="$ownerslist" + #else + value="$user" #end if /> <p class="context-tip">Applies only if using authz_ownership module, comma-delimited</p> diff --git a/webui_templates/profile_edit.tmpl b/webui_templates/profile_edit.tmpl index 82be534..2f7a732 100644 --- a/webui_templates/profile_edit.tmpl +++ b/webui_templates/profile_edit.tmpl @@ -324,6 +324,8 @@ function disablename(value) <input type="text" size="255" style="width: 400px;" name="owners" id="owners" #if $profile value="$ownerslist" + #else + value="$user" #end if /> diff --git a/webui_templates/repo_edit.tmpl b/webui_templates/repo_edit.tmpl index b58e54f..469854a 100644 --- a/webui_templates/repo_edit.tmpl +++ b/webui_templates/repo_edit.tmpl @@ -179,6 +179,8 @@ function disablename(value) <input type="text" size="255" style="width: 400px;" name="owners" id="owners" #if $repo value="$ownerslist" + #else + value="$user" #end if /> <p class="context-tip">Applies only if using authz_ownership module, comma-delimited</p> diff --git a/webui_templates/system_edit.tmpl b/webui_templates/system_edit.tmpl index cdb1adc..5396f1d 100644 --- a/webui_templates/system_edit.tmpl +++ b/webui_templates/system_edit.tmpl @@ -225,6 +225,8 @@ function page_onload() { <input type="text" size="255" style="width: 400px;" name="owners" id="owners" #if $system value="$ownerslist" + #else + value="$user" #end if /> <p class="context-tip">Applies only if using authz_ownership module, comma-delimited</p> |