Added sending user device notification.

This commit is contained in:
Martin Edenhofer 2015-08-19 01:00:07 +02:00
parent 72bb0eb067
commit e2b510313a

View file

@ -82,7 +82,7 @@ store device for user
end
# create new device
self.create(
user_device = self.create(
user_id: user_id,
name: name,
os: browser[:plattform],
@ -95,6 +95,13 @@ store device for user
fingerprint: fingerprint,
)
# send notification if needed
user_devices = UserDevice.where(user_id: user_id).count
if user_devices >= 2
user_device.send_notification
end
user_device
end
=begin
@ -128,4 +135,54 @@ log user device action
user_device
end
=begin
send new user device info
user_device = UserDevice.find(id)
user_device.send_notification
=end
def send_notification
user = User.find(user_id)
# send mail
data = {}
data[:subject] = '#{config.product_name} signin detected from a new device'
data[:body] = 'Hi #{user.firstname},
it looks like you signed into your #{config.product_name} account using a new device on "#{user_device.created_at}":
Your Location: #{user_device.location}
Your IP: #{user_device.ip}
Your device has been added to your list of known devices, which you can view here:
#{config.http_type}://#{config.fqdn}/#profile/devices
If this wasn\'t you, remove the device, changing your account password, and contacting your administrator. Somebody might have gained unauthorized access to your account.
Your #{config.product_name} Team'
# prepare subject & body
[:subject, :body].each { |key|
data[key.to_sym] = NotificationFactory.build(
locale: user.preferences[:locale],
string: data[key.to_sym],
objects: {
user_device: self,
user: user,
}
)
}
# send notification
NotificationFactory.send(
recipient: user,
subject: data[:subject],
body: data[:body]
)
end
end