diff --git a/instances/templates/instance.html b/instances/templates/instance.html
index dc48e6d..a20e9ff 100644
--- a/instances/templates/instance.html
+++ b/instances/templates/instance.html
@@ -72,7 +72,7 @@
                                         {% trans "Resize" %}
                                     </a>
                                 </li>
-                                {% if request.user.is_superuser or request.user.is_staff or not userinstance.is_template %}
+                                {% if allow_admin_or_not_template %}
                                     <li role="presentation">
                                         <a href="#snapshots" class="action-button" aria-controls="snapshots" role="tab" data-toggle="tab">
                                             <span id="action-block" class="glyphicon glyphicon-camera" aria-hidden="true"></span>
@@ -611,10 +611,10 @@
                                                                     </select>
                                                                 </div>
                                                                 <div class="col-sm-2">
-                                                                    {% if media_iso and request.user.is_superuser or request.user.is_staff or not userinstance.is_template %}
+                                                                    {% if media_iso and allow_admin_or_not_template %}
                                                                         <button type="submit" class="btn btn-sm btn-success pull-left" name="mount_iso" value="{{ cd.dev }}" style="margin-top: 2px;">{% trans "Mount" %}</button>
                                                                     {% else %}
-                                                                        <button class="btn btn-sm btn-success pull-left disabled" name="mount_iso" style="margin-top: 2px;">{% trans "Mount" %}</button>
+                                                                        <button class="btn btn-sm btn-success pull-left disabled" style="margin-top: 2px;">{% trans "Mount" %}</button>
                                                                     {% endif %}
                                                                 </div>
                                                             {% else %}
@@ -623,7 +623,7 @@
                                                                 </div>
                                                                 <div class="col-sm-2">
                                                                     <input type="hidden" name="path" value="{{ cd.path }}">
-                                                                    {% if request.user.is_superuser or request.user.is_staff or not userinstance.is_template %}
+                                                                    {% if allow_admin_or_not_template %}
                                                                         <button type="submit" class="btn btn-sm btn-success pull-left" value="{{ cd.dev }}" name="umount_iso" style="margin-top: 2px;">{% trans "Umount" %}</button>
                                                                     {% else %}
                                                                         <button class="btn btn-sm btn-success pull-left disabled" value="{{ cd.dev }}" name="umount_iso" style="margin-top: 2px;">{% trans "Umount" %}</button>
diff --git a/instances/views.py b/instances/views.py
index b955b6a..979fd01 100644
--- a/instances/views.py
+++ b/instances/views.py
@@ -310,6 +310,7 @@ def instance(request, compute_id, vname):
             addlogmsg(request.user.username, instance.name, msg)
 
         userinstances = UserInstance.objects.filter(instance=instance).order_by('user__username')
+        allow_admin_or_not_template = request.user.is_superuser or request.user.is_staff or not instance.is_template
 
         if request.method == 'POST':
             if 'poweron' in request.POST:
@@ -444,7 +445,7 @@ def instance(request, compute_id, vname):
                     addlogmsg(request.user.username, instance.name, msg)
                     return HttpResponseRedirect(request.get_full_path() + '#resize')
 
-            if 'addnewvol' in request.POST and (request.user.is_superuser or userinstance.is_change):
+            if 'addnewvol' in request.POST and allow_admin_or_not_template:
                 connCreate = wvmCreate(compute.hostname,
                                        compute.login,
                                        compute.password,
@@ -464,7 +465,7 @@ def instance(request, compute_id, vname):
                 addlogmsg(request.user.username, instance.name, msg)
                 return HttpResponseRedirect(request.get_full_path() + '#disks')
 
-            if 'addexistingvol' in request.POST and (request.user.is_superuser or userinstance.is_change):
+            if 'addexistingvol' in request.POST and allow_admin_or_not_template:
                 storage = request.POST.get('selected_storage', '')
                 name = request.POST.get('vols', '')
                 bus = request.POST.get('bus', default_bus)
@@ -486,7 +487,7 @@ def instance(request, compute_id, vname):
                 addlogmsg(request.user.username, instance.name, msg)
                 return HttpResponseRedirect(request.get_full_path() + '#disks')
 
-            if 'delvolume' in request.POST and (request.user.is_superuser or userinstance.is_change):
+            if 'delvolume' in request.POST and allow_admin_or_not_template:
                 connDelete = wvmCreate(compute.hostname,
                                        compute.login,
                                        compute.password,
@@ -501,7 +502,7 @@ def instance(request, compute_id, vname):
                 addlogmsg(request.user.username, instance.name, msg)
                 return HttpResponseRedirect(request.get_full_path() + '#disks')
 
-            if 'detachvolume' in request.POST and (request.user.is_superuser or userinstance.is_change):
+            if 'detachvolume' in request.POST and allow_admin_or_not_template:
                 connDelete = wvmCreate(compute.hostname,
                                        compute.login,
                                        compute.password,
@@ -513,7 +514,7 @@ def instance(request, compute_id, vname):
                 addlogmsg(request.user.username, instance.name, msg)
                 return HttpResponseRedirect(request.get_full_path() + '#disks')
 
-            if 'umount_iso' in request.POST and (request.user.is_superuser or request.user.is_staff or not userinstance.is_template):
+            if 'umount_iso' in request.POST and allow_admin_or_not_template:
                 image = request.POST.get('path', '')
                 dev = request.POST.get('umount_iso', '')
                 conn.umount_iso(dev, image)
@@ -521,7 +522,7 @@ def instance(request, compute_id, vname):
                 addlogmsg(request.user.username, instance.name, msg)
                 return HttpResponseRedirect(request.get_full_path() + '#media')
 
-            if 'mount_iso' in request.POST  and (request.user.is_superuser or request.user.is_staff or not userinstance.is_template):
+            if 'mount_iso' in request.POST and allow_admin_or_not_template:
                 image = request.POST.get('media', '')
                 dev = request.POST.get('mount_iso', '')
                 conn.mount_iso(dev, image)
@@ -529,21 +530,21 @@ def instance(request, compute_id, vname):
                 addlogmsg(request.user.username, instance.name, msg)
                 return HttpResponseRedirect(request.get_full_path() + '#media')
 
-            if 'snapshot' in request.POST  and (request.user.is_superuser or request.user.is_staff or not userinstance.is_template):
+            if 'snapshot' in request.POST and allow_admin_or_not_template:
                 name = request.POST.get('name', '')
                 conn.create_snapshot(name)
                 msg = _("New snapshot")
                 addlogmsg(request.user.username, instance.name, msg)
                 return HttpResponseRedirect(request.get_full_path() + '#managesnapshot')
 
-            if 'delete_snapshot' in request.POST and (request.user.is_superuser or request.user.is_staff or not userinstance.is_template):
+            if 'delete_snapshot' in request.POST and allow_admin_or_not_template:
                 snap_name = request.POST.get('name', '')
                 conn.snapshot_delete(snap_name)
                 msg = _("Delete snapshot")
                 addlogmsg(request.user.username, instance.name, msg)
                 return HttpResponseRedirect(request.get_full_path() + '#managesnapshot')
 
-            if 'revert_snapshot' in request.POST and (request.user.is_superuser or request.user.is_staff or not userinstance.is_template):
+            if 'revert_snapshot' in request.POST and allow_admin_or_not_template:
                 snap_name = request.POST.get('name', '')
                 conn.snapshot_revert(snap_name)
                 msg = _("Successful revert snapshot: ")