2014-02-03 19:23:00 +00:00
|
|
|
# Copyright (C) 2012-2014 Zammad Foundation, http://zammad-foundation.org/
|
2013-06-12 15:59:58 +00:00
|
|
|
|
2012-10-01 18:41:08 +00:00
|
|
|
class EmailAddress < ApplicationModel
|
2015-08-28 08:19:27 +00:00
|
|
|
has_many :groups, after_add: :cache_update, after_remove: :cache_update
|
|
|
|
belongs_to :channel
|
|
|
|
validates :realname, presence: true
|
|
|
|
validates :email, presence: true
|
|
|
|
|
|
|
|
before_create :channel_check
|
|
|
|
before_update :channel_check
|
2015-02-25 20:52:14 +00:00
|
|
|
|
|
|
|
latest_change_support
|
|
|
|
|
2015-08-28 08:19:27 +00:00
|
|
|
=begin
|
|
|
|
|
|
|
|
check and if channel not exists reset configured channels for email addresses
|
|
|
|
|
|
|
|
EmailAddress.channel_cleanup
|
|
|
|
|
|
|
|
=end
|
|
|
|
|
|
|
|
def self.channel_cleanup
|
|
|
|
EmailAddress.all.each {|email_address|
|
2015-08-28 14:50:40 +00:00
|
|
|
if email_address.channel_id && Channel.find_by(id: email_address.channel_id)
|
|
|
|
if !email_address.active
|
|
|
|
email_address.save
|
|
|
|
end
|
|
|
|
next
|
|
|
|
end
|
|
|
|
if email_address.channel_id || email_address.active
|
|
|
|
email_address.save
|
|
|
|
end
|
2015-08-28 08:19:27 +00:00
|
|
|
}
|
|
|
|
end
|
|
|
|
|
|
|
|
private
|
|
|
|
|
|
|
|
def channel_check
|
2015-08-28 14:50:40 +00:00
|
|
|
if channel_id && Channel.find_by(id: channel_id)
|
|
|
|
self.active = true
|
|
|
|
return true
|
|
|
|
end
|
2015-08-28 08:19:27 +00:00
|
|
|
self.channel_id = nil
|
2015-08-28 14:50:40 +00:00
|
|
|
self.active = false
|
|
|
|
true
|
2015-08-28 08:19:27 +00:00
|
|
|
end
|
|
|
|
|
2015-04-27 14:15:29 +00:00
|
|
|
end
|