summaryrefslogtreecommitdiffstats
path: root/app/models/setting.rb
diff options
context:
space:
mode:
authorJean-Philippe Lang <jp_lang@yahoo.fr>2016-02-05 08:50:21 +0000
committerJean-Philippe Lang <jp_lang@yahoo.fr>2016-02-05 08:50:21 +0000
commitb5366eb3079c46f4fcfbe8a4172732f2abeeed96 (patch)
treed358339c3245fa0d4a4f0d886ffa55d958344f20 /app/models/setting.rb
parentc46c0e7452a1792d11a186d1059bef52a4867cf4 (diff)
downloadredmine-b5366eb3079c46f4fcfbe8a4172732f2abeeed96.tar.gz
redmine-b5366eb3079c46f4fcfbe8a4172732f2abeeed96.zip
Send a notification when security settings are changed (#21421).
git-svn-id: http://svn.redmine.org/redmine/trunk@15148 e93f8b46-1217-0410-a6f0-8f06a7374b81
Diffstat (limited to 'app/models/setting.rb')
-rw-r--r--app/models/setting.rb17
1 files changed, 17 insertions, 0 deletions
diff --git a/app/models/setting.rb b/app/models/setting.rb
index 2574649f3..bbcdfc72a 100644
--- a/app/models/setting.rb
+++ b/app/models/setting.rb
@@ -118,6 +118,23 @@ class Setting < ActiveRecord::Base
setting.value
end
+ # Updates multiple settings from params and sends a security notification if needed
+ def self.set_all_from_params(settings)
+ settings = (settings || {}).dup.symbolize_keys
+ changes = []
+ settings.each do |name, value|
+ previous_value = Setting[name]
+ set_from_params name, value
+ if available_settings[name.to_s]['security_notifications'] && Setting[name] != previous_value
+ changes << name
+ end
+ end
+ if changes.any?
+ Mailer.security_settings_updated(changes)
+ end
+ true
+ end
+
# Sets a setting value from params
def self.set_from_params(name, params)
params = params.dup