From ff5e0f3d601b0f930a699cc0992d8e22a05f3ce0 Mon Sep 17 00:00:00 2001 From: Scott Baker Date: Thu, 22 May 2014 14:40:27 -0700 Subject: [PATCH] prevent readonly user from saving deployment sites --- planetstack/core/admin.py | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/planetstack/core/admin.py b/planetstack/core/admin.py index 5aeb784..5c52578 100644 --- a/planetstack/core/admin.py +++ b/planetstack/core/admin.py @@ -65,7 +65,6 @@ class ReadOnlyAwareAdmin(admin.ModelAdmin): request.readonly = True return super(ReadOnlyAwareAdmin, self).change_view(request, object_id, extra_context=extra_context) - def __user_is_readonly(self, request): return request.user.isReadOnlyUser() @@ -499,13 +498,17 @@ class DeploymentAdminForm(forms.ModelForm): return deployment +class DeploymentAdminROForm(DeploymentAdminForm): + def save(self, commit=True): + raise PermissionDenied + class SiteAssocInline(PlStackTabularInline): model = Site.deployments.through extra = 0 suit_classes = 'suit-tab suit-tab-sites' class DeploymentAdmin(PlanetStackBaseAdmin): - form = DeploymentAdminForm + #form = DeploymentAdminForm model = Deployment fieldList = ['name','sites'] fieldsets = [(None, {'fields': fieldList, 'classes':['suit-tab suit-tab-sites']})] @@ -516,6 +519,13 @@ class DeploymentAdmin(PlanetStackBaseAdmin): suit_form_tabs =(('sites','Deployment Details'),('nodes','Nodes'),('deploymentprivileges','Privileges'),('tags','Tags')) + def get_form(self, request, obj=None, **kwargs): + if request.user.isReadOnlyUser(): + kwargs["form"] = DeploymentAdminROForm + else: + kwargs["form"] = DeploymentAdminForm + return super(DeploymentAdmin,self).get_form(request, obj, **kwargs) + class ServiceAttrAsTabROInline(ReadOnlyTabularInline): model = ServiceAttribute fields = ['name','value'] -- 2.47.0