@@ -512,6 +512,19 @@ def deleteallsnapsvms
512512 # Delete selected snapshot for vm
513513 def deletesnapsvms
514514 assert_privileges ( params [ :pressed ] )
515+
516+ snap_selected = Snapshot . find_by ( :id => session [ :snap_selected ] ) if session [ :snap_selected ]
517+ record = find_record_with_rbac ( record_class , params [ :id ] ) if params [ :id ]
518+ error_message = record . try ( :remove_snapshot_denied_message , snap_selected . current? ) if snap_selected
519+ if error_message
520+ javascript_flash (
521+ :text => error_message ,
522+ :severity => :error ,
523+ :scroll_top => true
524+ )
525+ return
526+ end
527+
515528 generic_button_operation ( 'remove_snapshot' , _ ( 'Delete Snapshot' ) , vm_button_action ,
516529 @explorer ? { } : { :refresh_partial => 'vm_common/config' } )
517530 end
@@ -520,6 +533,19 @@ def deletesnapsvms
520533 # Delete selected snapshot for vm
521534 def revertsnapsvms
522535 assert_privileges ( params [ :pressed ] )
536+
537+ snap_selected = Snapshot . find_by ( :id => session [ :snap_selected ] )
538+ record = find_record_with_rbac ( record_class , params [ :id ] )
539+ error_message = record . try ( :revert_to_snapshot_denied_message , snap_selected . current? )
540+ if error_message
541+ javascript_flash (
542+ :text => error_message ,
543+ :severity => :error ,
544+ :scroll_top => true
545+ )
546+ return
547+ end
548+
523549 generic_button_operation ( 'revert_to_snapshot' , _ ( 'Revert to a Snapshot' ) , vm_button_action ,
524550 @explorer ? { } : { :refresh_partial => 'vm_common/config' } )
525551 end
0 commit comments