From 9e2c72e2777d614b9f919d98bdccdb7e41958b12 Mon Sep 17 00:00:00 2001 From: Robin Ward <robin.ward@gmail.com> Date: Thu, 28 Aug 2014 17:02:26 -0400 Subject: [PATCH] Allow restoring from backups in development mode even if the setting is off. --- .../admin/controllers/admin-backups-index.js.es6 | 2 +- .../javascripts/admin/models/backup_status.js | 13 +++---------- .../javascripts/admin/routes/admin_backups_route.js | 3 ++- config/site_settings.yml | 2 +- lib/backup_restore.rb | 1 + 5 files changed, 8 insertions(+), 13 deletions(-) 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