diff --git a/app/assets/javascripts/admin/controllers/admin-backups-index.js.es6 b/app/assets/javascripts/admin/controllers/admin-backups-index.js.es6
index 15fe49339..a7ecd0c30 100644
--- a/app/assets/javascripts/admin/controllers/admin-backups-index.js.es6
+++ b/app/assets/javascripts/admin/controllers/admin-backups-index.js.es6
@@ -9,7 +9,7 @@ export default Ember.ArrayController.extend({
   restoreDisabled: Em.computed.alias("status.restoreDisabled"),
 
   restoreTitle: function() {
-    if (!Discourse.SiteSettings.allow_restore) {
+    if (!this.get('status.allowRestore')) {
       return I18n.t("admin.backups.operations.restore.is_disabled");
     } else if (this.get("status.isOperationRunning")) {
       return I18n.t("admin.backups.operation_already_running");
diff --git a/app/assets/javascripts/admin/models/backup_status.js b/app/assets/javascripts/admin/models/backup_status.js
index c11c87581..e67a34bc3 100644
--- a/app/assets/javascripts/admin/models/backup_status.js
+++ b/app/assets/javascripts/admin/models/backup_status.js
@@ -1,16 +1,9 @@
-/**
-  Data model for representing the status of backup/restore
-
-  @class BackupStatus
-  @extends Discourse.Model
-  @namespace Discourse
-  @module Discourse
-**/
 Discourse.BackupStatus = Discourse.Model.extend({
 
   restoreDisabled: Em.computed.not("restoreEnabled"),
 
   restoreEnabled: function() {
-    return Discourse.SiteSettings.allow_restore && !this.get("isOperationRunning");
-  }.property("isOperationRunning")
+    return this.get('allowRestore') && !this.get("isOperationRunning");
+  }.property("isOperationRunning", "allowRestore")
+
 });
diff --git a/app/assets/javascripts/admin/routes/admin_backups_route.js b/app/assets/javascripts/admin/routes/admin_backups_route.js
index 6580ed075..da5dd9a8a 100644
--- a/app/assets/javascripts/admin/routes/admin_backups_route.js
+++ b/app/assets/javascripts/admin/routes/admin_backups_route.js
@@ -31,7 +31,8 @@ Discourse.AdminBackupsRoute = Discourse.Route.extend({
     }).then(function (status) {
       return Discourse.BackupStatus.create({
         isOperationRunning: status.is_operation_running,
-        canRollback: status.can_rollback
+        canRollback: status.can_rollback,
+        allowRestore: status.allow_restore
       });
     });
   },
diff --git a/config/site_settings.yml b/config/site_settings.yml
index 4d5425a4e..9e0d0a4e3 100644
--- a/config/site_settings.yml
+++ b/config/site_settings.yml
@@ -628,7 +628,7 @@ legal:
 
 backups:
   allow_restore:
-    client: true
+    client: false
     default: false
   maximum_backups:
     client: true
diff --git a/lib/backup_restore.rb b/lib/backup_restore.rb
index 9872cf911..b59943761 100644
--- a/lib/backup_restore.rb
+++ b/lib/backup_restore.rb
@@ -56,6 +56,7 @@ module BackupRestore
     {
       is_operation_running: is_operation_running?,
       can_rollback: can_rollback?,
+      allow_restore: Rails.env.development? || SiteSetting.allow_restore
     }
   end