diff --git a/planetstack/core/admin.py b/planetstack/core/admin.py
index 3aa33c1..dcee1b7 100644
--- a/planetstack/core/admin.py
+++ b/planetstack/core/admin.py
@@ -150,20 +150,28 @@
     selflink.allow_tags = True
     selflink.short_description = "Details"
 
-class ReadOnlyTabularInline(PlStackTabularInline):
-    can_delete = False
+    def has_add_permission(self, request):
+        return not request.user.isReadOnlyUser()
 
     def get_readonly_fields(self, request, obj=None):
-        return self.fields
+        readonly_fields = list(self.readonly_fields)[:]
+        if request.user.isReadOnlyUser():
+            for field in self.fields:
+                if not field in readonly_fields:
+                    readonly_fields.append(field)
+        return readonly_fields
 
+class PlStackGenericTabularInline(generic.GenericTabularInline):
     def has_add_permission(self, request):
-        return False
+        return not request.user.isReadOnlyUser()
 
-class ReservationROInline(ReadOnlyTabularInline):
-    model = Reservation
-    extra = 0
-    suit_classes = 'suit-tab suit-tab-reservations'
-    fields = ['startTime','slice','duration']
+    def get_readonly_fields(self, request, obj=None):
+        readonly_fields = list(self.readonly_fields)[:]
+        if request.user.isReadOnlyUser():
+            for field in self.fields:
+                if not field in readonly_fields:
+                    readonly_fields.append(field)
+        return readonly_fields
 
 class ReservationInline(PlStackTabularInline):
     model = Reservation
@@ -173,21 +181,7 @@
     def queryset(self, request):
         return Reservation.select_by_user(request.user)
 
-class TagROInline(generic.GenericTabularInline):
-    model = Tag
-    extra = 0
-    suit_classes = 'suit-tab suit-tab-tags'
-    can_delete = False
-    fields = ['service', 'name', 'value']
-
-    def get_readonly_fields(self, request, obj=None):
-        return self.fields
-
-    def has_add_permission(self, request):
-        return False
-
-
-class TagInline(generic.GenericTabularInline):
+class TagInline(PlStackGenericTabularInline):
     model = Tag
     extra = 0
     suit_classes = 'suit-tab suit-tab-tags'
@@ -229,11 +223,6 @@
             NetworkLookerUpper.byNetworkName[network_name] = NetworkLookerUpper(network_name)
         return NetworkLookerUpper.byNetworkName[network_name]
 
-class SliverROInline(ReadOnlyTabularInline):
-    model = Sliver
-    fields = ['ip', 'instance_name', 'slice', 'numberCores', 'deploymentNetwork', 'image', 'node']
-    suit_classes = 'suit-tab suit-tab-slivers'
-
 class SliverInline(PlStackTabularInline):
     model = Sliver
     fields = ['all_ips_string', 'instance_name', 'slice', 'numberCores', 'deploymentNetwork', 'image', 'node']
@@ -294,12 +283,6 @@
         return [(None, {'fields': fields})]
 """
 
-class SiteROInline(ReadOnlyTabularInline):
-    model = Site
-    extra = 0
-    fields = ['name', 'login_base', 'site_url', 'enabled']
-    suit_classes = 'suit-tab suit-tab-sites'
-
 class SiteInline(PlStackTabularInline):
     model = Site
     extra = 0
@@ -308,12 +291,6 @@
     def queryset(self, request):
         return Site.select_by_user(request.user)
 
-class UserROInline(ReadOnlyTabularInline):
-    model = User
-    fields = ['email', 'firstname', 'lastname']
-    extra = 0
-    suit_classes = 'suit-tab suit-tab-users'
-
 class UserInline(PlStackTabularInline):
     model = User
     fields = ['email', 'firstname', 'lastname']
@@ -323,11 +300,6 @@
     def queryset(self, request):
         return User.select_by_user(request.user)
 
-class SliceROInline(ReadOnlyTabularInline):
-    model = Slice
-    suit_classes = 'suit-tab suit-tab-slices'
-    fields = ['name','site', 'serviceClass', 'service']
-
 class SliceInline(PlStackTabularInline):
     model = Slice
     fields = ['name','site', 'serviceClass', 'service']
@@ -337,24 +309,12 @@
     def queryset(self, request):
         return Slice.select_by_user(request.user)
 
-class NodeROInline(ReadOnlyTabularInline):
-    model = Node
-    extra = 0
-    suit_classes = 'suit-tab suit-tab-nodes'
-    fields = ['name','deployment','site']
-
 class NodeInline(PlStackTabularInline):
     model = Node
     extra = 0
     suit_classes = 'suit-tab suit-tab-nodes'
     fields = ['name','deployment','site']
 
-class DeploymentPrivilegeROInline(ReadOnlyTabularInline):
-    model = DeploymentPrivilege
-    extra = 0
-    suit_classes = 'suit-tab suit-tab-deploymentprivileges'
-    fields = ['user','role','deployment']
-
 class DeploymentPrivilegeInline(PlStackTabularInline):
     model = DeploymentPrivilege
     extra = 0
@@ -364,13 +324,6 @@
     def queryset(self, request):
         return DeploymentPrivilege.select_by_user(request.user)
 
-#CLEANUP DOUBLE SitePrivilegeInline
-class SitePrivilegeROInline(ReadOnlyTabularInline):
-    model = SitePrivilege
-    extra = 0
-    suit_classes = 'suit-tab suit-tab-siteprivileges'
-    fields = ['user','site', 'role']
-
 class SitePrivilegeInline(PlStackTabularInline):
     model = SitePrivilege
     extra = 0
@@ -388,13 +341,6 @@
     def queryset(self, request):
         return SitePrivilege.select_by_user(request.user)
 
-class SiteDeploymentROInline(ReadOnlyTabularInline):
-    model = SiteDeployments
-    #model = Site.deployments.through
-    extra = 0
-    suit_classes = 'suit-tab suit-tab-deployments'
-    fields = ['deployment','site']
-
 class SiteDeploymentInline(PlStackTabularInline):
     model = SiteDeployments
     #model = Site.deployments.through
@@ -414,12 +360,6 @@
         return SiteDeployments.select_by_user(request.user)
 
 
-class SlicePrivilegeROInline(ReadOnlyTabularInline):
-    model = SlicePrivilege
-    extra = 0
-    suit_classes = 'suit-tab suit-tab-sliceprivileges'
-    fields = ['user', 'slice', 'role']
-
 class SlicePrivilegeInline(PlStackTabularInline):
     model = SlicePrivilege
     suit_classes = 'suit-tab suit-tab-sliceprivileges'
@@ -437,14 +377,6 @@
     def queryset(self, request):
         return SlicePrivilege.select_by_user(request.user)
 
-class SliceNetworkROInline(ReadOnlyTabularInline):
-    model = Network.slices.through
-    extra = 0
-    verbose_name = "Network Connection"
-    verbose_name_plural = "Network Connections"
-    suit_classes = 'suit-tab suit-tab-slicenetworks'
-    fields = ['network']
-
 class SliceNetworkInline(PlStackTabularInline):
     model = Network.slices.through
     selflink_fieldname = "network"
@@ -454,14 +386,6 @@
     suit_classes = 'suit-tab suit-tab-slicenetworks'
     fields = ['network']
 
-class ImageDeploymentsROInline(ReadOnlyTabularInline):
-    model = ImageDeployments
-    extra = 0
-    verbose_name = "Image Deployments"
-    verbose_name_plural = "Image Deployments"
-    suit_classes = 'suit-tab suit-tab-imagedeployments'
-    fields = ['image', 'deployment', 'glance_image_id']
-
 class ImageDeploymentsInline(PlStackTabularInline):
     model = ImageDeployments
     extra = 0
@@ -602,7 +526,6 @@
     fieldsets = [(None, {'fields': fieldList, 'classes':['suit-tab suit-tab-sites']})]
     inlines = [DeploymentPrivilegeInline,NodeInline,TagInline] # ,ImageDeploymentsInline]
 
-    user_readonly_inlines = [DeploymentPrivilegeROInline,NodeROInline,TagROInline] # ,ImageDeploymentsROInline]
     user_readonly_fields = ['name']
 
     suit_form_tabs =(('sites','Deployment Details'),('nodes','Nodes'),('deploymentprivileges','Privileges'),('tags','Tags')) # ,('imagedeployments','Images'))
@@ -623,12 +546,6 @@
 
         return AdminFormMetaClass
 
-class ServiceAttrAsTabROInline(ReadOnlyTabularInline):
-    model = ServiceAttribute
-    fields = ['name','value']
-    extra = 0
-    suit_classes = 'suit-tab suit-tab-serviceattrs'
-
 class ServiceAttrAsTabInline(PlStackTabularInline):
     model = ServiceAttribute
     fields = ['name','value']
@@ -642,7 +559,6 @@
     inlines = [ServiceAttrAsTabInline,SliceInline]
 
     user_readonly_fields = fieldList
-    user_readonly_inlines = [ServiceAttrAsTabROInline,SliceROInline]
 
     suit_form_tabs =(('general', 'Service Details'),
         ('slices','Slices'),
@@ -666,7 +582,6 @@
     readonly_fields = ['accountLink']
 
     user_readonly_fields = ['name', 'deployments','site_url', 'enabled', 'is_public', 'login_base', 'accountLink']
-    user_readonly_inlines = [SliceROInline,UserROInline,TagROInline, NodeROInline, SitePrivilegeROInline,SiteDeploymentROInline]
 
     list_display = ('name', 'login_base','site_url', 'enabled')
     filter_horizontal = ('deployments',)
@@ -772,7 +687,6 @@
     inlines = [SlicePrivilegeInline,SliverInline, TagInline, ReservationInline,SliceNetworkInline]
 
     user_readonly_fields = fieldList
-    user_readonly_inlines = [SlicePrivilegeROInline,SliverROInline,TagROInline, ReservationROInline, SliceNetworkROInline]
 
     suit_form_tabs =(('general', 'Slice Details'),
         ('slicenetworks','Networks'),
@@ -865,8 +779,7 @@
     inlines = [SliverInline, ImageDeploymentsInline]
 
     user_readonly_fields = ['name', 'disk_format', 'container_format']
-    user_readonly_inlines = [SliverROInline, ImageDeploymentsROInline]
-    
+
 class NodeForm(forms.ModelForm):
     class Meta:
         widgets = {
@@ -921,7 +834,6 @@
     inlines = [TagInline]
 
     user_readonly_fields = ['slice', 'deploymentNetwork', 'node', 'ip', 'instance_name', 'numberCores', 'image']
-    user_readonly_inlines = [TagROInline]
 
     def formfield_for_foreignkey(self, db_field, request, **kwargs):
         if db_field.name == 'slice':
@@ -1018,12 +930,6 @@
     suit_classes = 'suit-tab suit-tab-dashboards'
     fields = ['user', 'dashboardView', 'order']
 
-class UserDashboardViewROInline(ReadOnlyTabularInline):
-    model = UserDashboardView
-    extra = 0
-    suit_classes = 'suit-tab suit-tab-dashboards'
-    fields = ['user', 'dashboardView', 'order']
-
 class UserAdmin(UserAdmin):
     class Meta:
         app_label = "core"
@@ -1059,7 +965,6 @@
     filter_horizontal = ()
 
     user_readonly_fields = fieldListLoginDetails + fieldListContactInfo
-    user_readonly_inlines = [SlicePrivilegeROInline,SitePrivilegeROInline,DeploymentPrivilegeROInline,UserDashboardViewROInline]
 
     suit_form_tabs =(('general','Login Details'),
                      ('contact','Contact Information'),
@@ -1096,8 +1001,10 @@
                 # save the original readonly fields
                 self.readonly_save = self.readonly_fields
                 self.inlines_save = self.inlines
-            self.readonly_fields=self.user_readonly_fields
-            self.inlines = self.user_readonly_inlines
+            if hasattr(self, "user_readonly_fields"):
+                self.readonly_fields=self.user_readonly_fields
+            if hasattr(self, "user_readonly_inlines"):
+                self.inlines = self.user_readonly_inlines
         else:
             if hasattr(self, "readonly_save"):
                 # restore the original readonly fields
@@ -1129,11 +1036,6 @@
 
     suit_form_tabs =(('general','Dashboard View Details'),)
 
-class ServiceResourceROInline(ReadOnlyTabularInline):
-    model = ServiceResource
-    extra = 0
-    fields = ['serviceClass', 'name', 'maxUnitsDeployment', 'maxUnitsNode', 'maxDuration', 'bucketInRate', 'bucketMaxSize', 'cost', 'calendarReservable']
-
 class ServiceResourceInline(PlStackTabularInline):
     model = ServiceResource
     extra = 0
@@ -1145,12 +1047,6 @@
     user_readonly_fields = ['name', 'commitment', 'membershipFee']
     user_readonly_inlines = []
 
-class ReservedResourceROInline(ReadOnlyTabularInline):
-    model = ReservedResource
-    extra = 0
-    fields = ['sliver', 'resource','quantity','reservationSet']
-    suit_classes = 'suit-tab suit-tab-reservedresources'
-
 class ReservedResourceInline(PlStackTabularInline):
     model = ReservedResource
     extra = 0
@@ -1239,7 +1135,6 @@
     suit_form_tabs = (('general','Reservation Details'), ('reservedresources','Reserved Resources'))
 
     inlines = [ReservedResourceInline]
-    user_readonly_inlines = [ReservedResourceROInline]
     user_readonly_fields = fieldList
 
     def add_view(self, request, form_url='', extra_context=None):
@@ -1301,15 +1196,6 @@
     user_readonly_fields = ['name']
     user_readonly_inlines = []
 
-class RouterROInline(ReadOnlyTabularInline):
-    model = Router.networks.through
-    extra = 0
-    verbose_name_plural = "Routers"
-    verbose_name = "Router"
-    suit_classes = 'suit-tab suit-tab-routers'
-
-    fields = ['name', 'owner', 'permittedNetworks', 'networks']
-
 class RouterInline(PlStackTabularInline):
     model = Router.networks.through
     extra = 0
@@ -1317,7 +1203,7 @@
     verbose_name = "Router"
     suit_classes = 'suit-tab suit-tab-routers'
 
-class NetworkParameterROInline(generic.GenericTabularInline):
+class NetworkParameterInline(PlStackGenericTabularInline):
     model = NetworkParameter
     extra = 0
     verbose_name_plural = "Parameters"
@@ -1325,22 +1211,6 @@
     suit_classes = 'suit-tab suit-tab-netparams'
     fields = ['parameter', 'value']
 
-class NetworkParameterInline(generic.GenericTabularInline):
-    model = NetworkParameter
-    extra = 0
-    verbose_name_plural = "Parameters"
-    verbose_name = "Parameter"
-    suit_classes = 'suit-tab suit-tab-netparams'
-    fields = ['parameter', 'value']
-
-class NetworkSliversROInline(ReadOnlyTabularInline):
-    fields = ['network', 'sliver', 'ip']
-    model = NetworkSliver
-    extra = 0
-    verbose_name_plural = "Slivers"
-    verbose_name = "Sliver"
-    suit_classes = 'suit-tab suit-tab-networkslivers'
-
 class NetworkSliversInline(PlStackTabularInline):
     fields = ['network','sliver','ip']
     readonly_fields = ("ip", )
@@ -1351,14 +1221,6 @@
     verbose_name = "Sliver"
     suit_classes = 'suit-tab suit-tab-networkslivers'
 
-class NetworkSlicesROInline(ReadOnlyTabularInline):
-    model = NetworkSlice
-    extra = 0
-    verbose_name_plural = "Slices"
-    verbose_name = "Slice"
-    suit_classes = 'suit-tab suit-tab-networkslices'
-    fields = ['network','slice']
-
 class NetworkSlicesInline(PlStackTabularInline):
     model = NetworkSlice
     selflink_fieldname = "slice"
@@ -1378,7 +1240,6 @@
         (None, {'fields': ['name','template','ports','labels','owner','guaranteedBandwidth', 'permitAllSlices','permittedSlices','network_id','router_id','subnet_id','subnet'], 'classes':['suit-tab suit-tab-general']}),]
 
     user_readonly_fields = ['name','template','ports','labels','owner','guaranteedBandwidth', 'permitAllSlices','permittedSlices','network_id','router_id','subnet_id','subnet']
-    user_readonly_inlines = [NetworkParameterROInline, NetworkSliversROInline, NetworkSlicesROInline, RouterROInline]
 
     suit_form_tabs =(
         ('general','Network Details'),
diff --git a/planetstack/hpc/admin.py b/planetstack/hpc/admin.py
index 2a6d518..9e6c84e 100644
--- a/planetstack/hpc/admin.py
+++ b/planetstack/hpc/admin.py
@@ -10,7 +10,7 @@
 from django.utils import timezone
 from django.contrib.contenttypes import generic
 from suit.widgets import LinkedSelect
-from core.admin import SingletonAdmin,SliceInline,ServiceAttrAsTabInline, SliceROInline,ServiceAttrAsTabROInline, ReadOnlyAwareAdmin, PlStackTabularInline, ReadOnlyTabularInline
+from core.admin import SingletonAdmin,SliceInline,ServiceAttrAsTabInline, ReadOnlyAwareAdmin, PlStackTabularInline
 
 class HpcServiceAdmin(SingletonAdmin):
     model = HpcService
@@ -21,7 +21,6 @@
     inlines = [SliceInline,ServiceAttrAsTabInline]
 
     user_readonly_fields = ["name", "enabled", "versionNumber", "description"]
-    user_readonly_inlines = [SliceROInline, ServiceAttrAsTabROInline]
 
     suit_form_tabs =(('general', 'HPC Service Details'),
         ('slices','Slices'),
@@ -35,13 +34,6 @@
     fields = ('cdn_prefix_id', 'prefix', 'defaultOriginServer', 'enabled')
     readonly_fields = ('cdn_prefix_id',)
 
-class CDNPrefixROInline(ReadOnlyTabularInline):
-    model = CDNPrefix
-    extra = 0
-    suit_classes = 'suit-tab suit-tab-prefixes'
-    fields = ('cdn_prefix_id', 'prefix', 'defaultOriginServer', 'enabled')
-    readonly_fields = ('cdn_prefix_id',)
-
 class ContentProviderInline(PlStackTabularInline):
     model = ContentProvider
     extra = 0
@@ -49,11 +41,6 @@
     fields = ('content_provider_id', 'name', 'enabled')
     readonly_fields = ('content_provider_id',)
 
-class ContentProviderROInline(ReadOnlyTabularInline):
-    model = ContentProvider
-    extra = 0
-    suit_classes = 'suit-tab suit-tab-cps'
-
 class OriginServerAdmin(ReadOnlyAwareAdmin):
     list_display = ('url','protocol','redirects','contentProvider','authenticated','enabled' )
 
@@ -75,7 +62,6 @@
     inlines = [CDNPrefixInline]
 
     user_readonly_fields = ('name','description','enabled','serviceProvider','users')
-    user_readonly_inlines = [CDNPrefixROInline]
 
     suit_form_tabs = (('general','Details'),('prefixes','CDN Prefixes'))
 
@@ -86,7 +72,6 @@
 #, ('Content Providers', {'fields':['contentProviders'],'classes':['suit-tab suit-tab-cps']})]
 
     user_readonly_fields = ('name', 'description', 'enabled')
-    user_readonly_inlines = [ContentProviderROInline]
 
     suit_form_tabs = (('general','Details'),('cps','Content Providers'))
     inlines = [ContentProviderInline]
diff --git a/planetstack/kairos/admin.py b/planetstack/kairos/admin.py
index 1eeb426..eb6583e 100644
--- a/planetstack/kairos/admin.py
+++ b/planetstack/kairos/admin.py
@@ -10,7 +10,7 @@
 from django.utils import timezone
 from django.contrib.contenttypes import generic
 from suit.widgets import LinkedSelect
-from core.admin import SingletonAdmin,SliceInline,ServiceAttrAsTabInline, SliceROInline,ServiceAttrAsTabROInline, ReadOnlyAwareAdmin
+from core.admin import SingletonAdmin,SliceInline,ServiceAttrAsTabInline, ReadOnlyAwareAdmin
 
 class NagiosServiceAdmin(SingletonAdmin):
     model = NagiosService
@@ -20,7 +20,6 @@
     fieldsets = [(None, {'fields': ['name','enabled','versionNumber', 'description'], 'classes':['suit-tab suit-tab-general']})]
     inlines = [SliceInline,ServiceAttrAsTabInline]
 
-    user_readonly_inlines = [SliceROInline, ServiceAttrAsTabROInline]
     suit_form_tabs =(('general', 'Nagios Service Details'),
         ('slices','Slices'),
         ('serviceattrs','Additional Attributes'),
diff --git a/planetstack/nagios/admin.py b/planetstack/nagios/admin.py
index 156e376..b655c47 100644
--- a/planetstack/nagios/admin.py
+++ b/planetstack/nagios/admin.py
@@ -10,7 +10,7 @@
 from django.utils import timezone
 from django.contrib.contenttypes import generic
 from suit.widgets import LinkedSelect
-from core.admin import SingletonAdmin,SliceInline,ServiceAttrAsTabInline, SliceROInline,ServiceAttrAsTabROInline, ReadOnlyAwareAdmin
+from core.admin import SingletonAdmin,SliceInline,ServiceAttrAsTabInline, ReadOnlyAwareAdmin
 
 class KairosDBServiceAdmin(SingletonAdmin):
     model = KairosDBService
@@ -20,7 +20,6 @@
     fieldsets = [(None, {'fields': ['name','enabled','versionNumber', 'description'], 'classes':['suit-tab suit-tab-general']})]
     inlines = [SliceInline,ServiceAttrAsTabInline]
 
-    user_readonly_inlines = [SliceROInline, ServiceAttrAsTabROInline]
     suit_form_tabs =(('general', 'KairosDB Service Details'),
         ('slices','Slices'),
         ('serviceattrs','Additional Attributes'),
diff --git a/planetstack/requestrouter/admin.py b/planetstack/requestrouter/admin.py
index 36e5fc6..74dc1f0 100644
--- a/planetstack/requestrouter/admin.py
+++ b/planetstack/requestrouter/admin.py
@@ -10,7 +10,7 @@
 from django.utils import timezone
 from django.contrib.contenttypes import generic
 from suit.widgets import LinkedSelect
-from core.admin import SingletonAdmin,SliceInline,ServiceAttrAsTabInline, SliceROInline,ServiceAttrAsTabROInline, ReadOnlyAwareAdmin
+from core.admin import SingletonAdmin,SliceInline,ServiceAttrAsTabInline, ReadOnlyAwareAdmin
 
 class RequestRouterServiceAdmin(SingletonAdmin):
     model = RequestRouterService
@@ -21,7 +21,6 @@
     inlines = [SliceInline,ServiceAttrAsTabInline]
 
     user_readonly_fields = ["name", "enabled", "versionNumber", "description", "behindNat", "defaultTTL", "defaultAction", "lastResortAction", "maxAnswers"]
-    user_readonly_inlines = [SliceROInline, ServiceAttrAsTabROInline]
 
     suit_form_tabs =(('general', 'Request Router Service Details'),
         ('slices','Slices'),
diff --git a/planetstack/syndicate_storage/admin.py b/planetstack/syndicate_storage/admin.py
index 418ba2b..e5e365f 100644
--- a/planetstack/syndicate_storage/admin.py
+++ b/planetstack/syndicate_storage/admin.py
@@ -10,7 +10,7 @@
 from django.utils import timezone
 from django.contrib.contenttypes import generic
 from suit.widgets import LinkedSelect
-from core.admin import ReadOnlyTabularInline,ReadOnlyAwareAdmin,SingletonAdmin,SliceInline,ServiceAttrAsTabInline,PlanetStackBaseAdmin, PlStackTabularInline,SliceROInline,ServiceAttrAsTabROInline
+from core.admin import ReadOnlyAwareAdmin,SingletonAdmin,SliceInline,ServiceAttrAsTabInline,PlanetStackBaseAdmin, PlStackTabularInline
 from suit.widgets import LinkedSelect
 from django.core.exceptions import ValidationError, ObjectDoesNotExist
 
@@ -23,7 +23,6 @@
     inlines = [SliceInline,ServiceAttrAsTabInline]
 
     user_readonly_fields = ['name','enabled','versionNumber','description']
-    user_readonly_inlines = [SliceROInline, ServiceAttrAsTabROInline]
 
     suit_form_tabs =(('general', 'Syndicate Storage Details'),
         ('slices','Slices'),
@@ -31,18 +30,6 @@
     )
 
 
-class VolumeAccessRightForUserROInline(ReadOnlyTabularInline):
-    model = VolumeAccessRight
-    extra = 0
-    suit_classes = 'suit-tab suit-tab-volumeAccessRights'
-    fields = ['volume','cap_read_data', 'cap_write_data', 'cap_host_data']
-
-class VolumeAccessRightROInline(ReadOnlyTabularInline):
-    model = VolumeAccessRight
-    extra = 0
-    suit_classes = 'suit-tab suit-tab-volumeAccessRights'
-    fields = ['owner_id','cap_read_data', 'cap_write_data', 'cap_host_data']
-
 class VolumeAccessRightInline(PlStackTabularInline):
     model = VolumeAccessRight
     extra = 0
@@ -113,17 +100,6 @@
     readonly_fields = ['credentials_blob']
  
 
-class VolumeSliceROInline(ReadOnlyTabularInline):
-    model = VolumeSlice
-    extra = 0
-    suit_classes = 'suit-tab suit-tab-volumeSlices'
-    fields = ['volume_id', 'slice_id', 'cap_read_data', 'cap_write_data', 'cap_host_data', 'UG_portnum', 'RG_portnum']
-
-    formset = VolumeSliceFormSet
-
-    readonly_fields = ['credentials_blob']
-    
-
 class VolumeAdmin(ReadOnlyAwareAdmin):
     model = Volume
    
@@ -150,8 +126,6 @@
 
     user_readonly_fields = ['name','owner_id','description','blocksize','private', 'archive', 'cap_read_data', 'cap_write_data', 'cap_host_data']
     
-    user_readonly_inlines = [VolumeAccessRightROInline, VolumeSliceROInline]
-
     suit_form_tabs =(('general', 'Volume Details'),
                      ('volumeSlices', 'Slices'),
                      ('volumeAccessRights', 'Volume Access Rights'))
