Added sending user device notification.
This commit is contained in:
parent
72bb0eb067
commit
e2b510313a
1 changed files with 58 additions and 1 deletions
|
@ -82,7 +82,7 @@ store device for user
|
||||||
end
|
end
|
||||||
|
|
||||||
# create new device
|
# create new device
|
||||||
self.create(
|
user_device = self.create(
|
||||||
user_id: user_id,
|
user_id: user_id,
|
||||||
name: name,
|
name: name,
|
||||||
os: browser[:plattform],
|
os: browser[:plattform],
|
||||||
|
@ -95,6 +95,13 @@ store device for user
|
||||||
fingerprint: fingerprint,
|
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
|
end
|
||||||
|
|
||||||
=begin
|
=begin
|
||||||
|
@ -128,4 +135,54 @@ log user device action
|
||||||
user_device
|
user_device
|
||||||
end
|
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
|
end
|
||||||
|
|
Loading…
Reference in a new issue