From: Jean-Philippe Lang Date: Sun, 20 Mar 2016 07:23:33 +0000 (+0000) Subject: Send a single email to admins like other notifications (#21421). X-Git-Tag: 3.3.0~179 X-Git-Url: https://source.dussan.org/?a=commitdiff_plain;h=46a4151f09359c9c64a2073d20c0267d64cdb516;p=redmine.git Send a single email to admins like other notifications (#21421). git-svn-id: http://svn.redmine.org/redmine/trunk@15266 e93f8b46-1217-0410-a6f0-8f06a7374b81 --- 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)