Improved device logging, do not delete current used device. Delete also sessions of device.
This commit is contained in:
parent
6fe9276ba7
commit
f2ef65d67d
4 changed files with 26 additions and 4 deletions
|
@ -21,7 +21,7 @@
|
||||||
<td><%= device.name %></td>
|
<td><%= device.name %></td>
|
||||||
<td><%= device.location %></td>
|
<td><%= device.location %></td>
|
||||||
<td><%- @humanTime(device.updated_at) %></td>
|
<td><%- @humanTime(device.updated_at) %></td>
|
||||||
<td><a href="#" data-device-id="<%- device.id %>" data-type="delete" title="<%- @Ti('Delete') %>"><svg class="icon-trash"><use xlink:href="#icon-trash"></use></svg></a></td>
|
<td><a href="#" data-device-id="<%- device.id %>" data-type="delete" title="<%- @Ti('Delete') %>"<% if device.current: %>disabled<% end %>><svg class="icon-trash"><use xlink:href="#icon-trash"></use></svg></a></td>
|
||||||
</tr>
|
</tr>
|
||||||
<% end %>
|
<% end %>
|
||||||
<tbody>
|
<tbody>
|
||||||
|
|
|
@ -98,6 +98,9 @@ class ApplicationController < ActionController::Base
|
||||||
# check user device
|
# check user device
|
||||||
def check_user_device
|
def check_user_device
|
||||||
|
|
||||||
|
# return if we are in switch to user mode
|
||||||
|
return if session[:switched_from_user_id]
|
||||||
|
|
||||||
# only if user_id exists
|
# only if user_id exists
|
||||||
return if !session[:user_id]
|
return if !session[:user_id]
|
||||||
|
|
||||||
|
@ -108,11 +111,14 @@ class ApplicationController < ActionController::Base
|
||||||
return if session[:check_user_device_at] && session[:check_user_device_at] > Time.zone.now - 5.minutes
|
return if session[:check_user_device_at] && session[:check_user_device_at] > Time.zone.now - 5.minutes
|
||||||
session[:check_user_device_at] = Time.zone.now
|
session[:check_user_device_at] = Time.zone.now
|
||||||
|
|
||||||
UserDevice.add(
|
user_device = UserDevice.add(
|
||||||
session[:user_agent],
|
session[:user_agent],
|
||||||
session[:remote_id],
|
session[:remote_id],
|
||||||
session[:user_id],
|
session[:user_id],
|
||||||
)
|
)
|
||||||
|
if user_device.id != session[:check_user_device_id]
|
||||||
|
session[:check_user_device_id] = user_device.id
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
def authentication_check_only(auth_param)
|
def authentication_check_only(auth_param)
|
||||||
|
|
|
@ -14,13 +14,29 @@ class UserDevicesController < ApplicationController
|
||||||
attributes.delete('created_at')
|
attributes.delete('created_at')
|
||||||
attributes.delete('device_details')
|
attributes.delete('device_details')
|
||||||
attributes.delete('location_details')
|
attributes.delete('location_details')
|
||||||
|
|
||||||
|
if session[:check_user_device_id] == device.id
|
||||||
|
attributes['current'] = true
|
||||||
|
end
|
||||||
devices_full.push attributes
|
devices_full.push attributes
|
||||||
}
|
}
|
||||||
model_index_render_result(devices_full)
|
model_index_render_result(devices_full)
|
||||||
end
|
end
|
||||||
|
|
||||||
def destroy
|
def destroy
|
||||||
UserDevice.where(user_id: current_user.id, id: params[:id]).destroy_all
|
# find device
|
||||||
|
user_device = UserDevice.find_by(user_id: current_user.id, id: params[:id])
|
||||||
|
|
||||||
|
# delete device and session's
|
||||||
|
if user_device
|
||||||
|
SessionHelper.list.each {|session|
|
||||||
|
next if !session.data['user_id']
|
||||||
|
next if !session.data['check_user_device_id']
|
||||||
|
next if session.data['check_user_device_id'] != user_device.id
|
||||||
|
SessionHelper.destroy( session.id )
|
||||||
|
}
|
||||||
|
user_device.destroy
|
||||||
|
end
|
||||||
render json: {}, status: :ok
|
render json: {}, status: :ok
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
|
@ -9,7 +9,7 @@ class UserDevice < ApplicationModel
|
||||||
|
|
||||||
store device for user
|
store device for user
|
||||||
|
|
||||||
UserDevice.add(
|
user_device = UserDevice.add(
|
||||||
'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/44.0.2403.107 Safari/537.36',
|
'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/44.0.2403.107 Safari/537.36',
|
||||||
'172.0.0.1',
|
'172.0.0.1',
|
||||||
user.id,
|
user.id,
|
||||||
|
|
Loading…
Reference in a new issue