diff options
-rw-r--r-- | app/models/user.rb | 10 | ||||
-rw-r--r-- | lib/redmine/i18n.rb | 3 |
2 files changed, 8 insertions, 5 deletions
diff --git a/app/models/user.rb b/app/models/user.rb index dca472810..1eb2c324f 100644 --- a/app/models/user.rb +++ b/app/models/user.rb @@ -836,6 +836,7 @@ class User < Principal def self.generate_salt Redmine::Utils.random_hex(16) end + # Send a security notification to all admins if the user has gained/lost admin privileges def deliver_security_notification options = { @@ -844,6 +845,7 @@ class User < Principal title: :label_user_plural, url: {controller: 'users', action: 'index'} } + deliver = false if (admin? && id_changed? && active?) || # newly created admin (admin? && admin_changed? && active?) || # regular user became admin @@ -860,11 +862,11 @@ class User < Principal options[:message] = :mail_body_security_notification_remove end - User.where(admin: true, status: Principal::STATUS_ACTIVE).each{|u| Mailer.security_notification(u, options).deliver} if deliver + if deliver + users = User.active.where(admin: true).to_a + Mailer.security_notification(users, options).deliver + end end - - - end class AnonymousUser < User diff --git a/lib/redmine/i18n.rb b/lib/redmine/i18n.rb index b6998e72c..5d5856746 100644 --- a/lib/redmine/i18n.rb +++ b/lib/redmine/i18n.rb @@ -71,8 +71,9 @@ module Redmine ::I18n.l(date.to_date, options) end - def format_time(time, include_date=true, user=User.current) + def format_time(time, include_date=true, user=nil) return nil unless time + user ||= User.current options = {} options[:format] = (Setting.time_format.blank? ? :time : Setting.time_format) time = time.to_time if time.is_a?(String) |