diff --git a/app/policies/global_policy.rb b/app/policies/global_policy.rb
index cb72c2b4590d2a300128ff47d598f1f21c712b6a..4757ba7168089776b1bb64d5943704095e2d5022 100644
--- a/app/policies/global_policy.rb
+++ b/app/policies/global_policy.rb
@@ -10,6 +10,7 @@ class GlobalPolicy < BasePolicy
       can! :access_api
       can! :access_git
       can! :receive_notifications
+      can! :use_slash_commands
     end
   end
 end
diff --git a/app/services/slash_commands/interpret_service.rb b/app/services/slash_commands/interpret_service.rb
index 595653ea58a5b91f8138143553a5821c7da09987..49d45ec9dbd3920bbd7baad50ab8fa1498174304 100644
--- a/app/services/slash_commands/interpret_service.rb
+++ b/app/services/slash_commands/interpret_service.rb
@@ -7,6 +7,8 @@ module SlashCommands
     # Takes a text and interprets the commands that are extracted from it.
     # Returns the content without commands, and hash of changes to be applied to a record.
     def execute(content, issuable)
+      return [content, {}] unless current_user.can?(:use_slash_commands)
+
       @issuable = issuable
       @updates = {}
 
diff --git a/lib/gitlab/email/handler.rb b/lib/gitlab/email/handler.rb
index 35ea2e0ef594172c0324ccebda0e1e277f66fc0a..b07c68d1498c02404d069c4920a11558d0cee14c 100644
--- a/lib/gitlab/email/handler.rb
+++ b/lib/gitlab/email/handler.rb
@@ -5,7 +5,11 @@ require 'gitlab/email/handler/unsubscribe_handler'
 module Gitlab
   module Email
     module Handler
-      HANDLERS = [UnsubscribeHandler, CreateNoteHandler, CreateIssueHandler].freeze
+      HANDLERS = [
+        UnsubscribeHandler,
+        CreateNoteHandler,
+        CreateIssueHandler
+      ].freeze
 
       def self.for(mail, mail_key)
         HANDLERS.find do |klass|