user_devices_controller.rb 1.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344
  1. # Copyright (C) 2012-2014 Zammad Foundation, http://zammad-foundation.org/
  2. class UserDevicesController < ApplicationController
  3. before_action :authentication_check
  4. def index
  5. devices = UserDevice.where(user_id: current_user.id).order('updated_at DESC, name ASC')
  6. devices_full = []
  7. devices.each {|device|
  8. attributes = device.attributes
  9. if device.location_details['city_name'] && !device.location_details['city_name'].empty?
  10. attributes['location'] += ", #{device.location_details['city_name']}"
  11. end
  12. attributes.delete('created_at')
  13. attributes.delete('device_details')
  14. attributes.delete('location_details')
  15. if session[:user_device_id] == device.id
  16. attributes['current'] = true
  17. end
  18. devices_full.push attributes
  19. }
  20. model_index_render_result(devices_full)
  21. end
  22. def destroy
  23. # find device
  24. user_device = UserDevice.find_by(user_id: current_user.id, id: params[:id])
  25. # delete device and session's
  26. if user_device
  27. SessionHelper.list.each {|session|
  28. next if !session.data['user_id']
  29. next if !session.data['user_device_id']
  30. next if session.data['user_device_id'] != user_device.id
  31. SessionHelper.destroy( session.id )
  32. }
  33. user_device.destroy
  34. end
  35. render json: {}, status: :ok
  36. end
  37. end