Files
fizzy/saas/app/controllers/devices_controller.rb
T
Rosa Gutierrez ab6bc256eb Link devices to sessions for automatic cleanup on logout
When a session is destroyed (user logs out), all devices registered
to that session are automatically destroyed, preventing push
notifications from being sent to logged-out devices.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-25 19:31:13 +01:00

31 lines
778 B
Ruby

class DevicesController < ApplicationController
before_action :set_device, only: :destroy
def index
@devices = Current.identity.devices.order(created_at: :desc)
end
def create
ApplicationPushDevice.register(session: Current.session, **device_params)
head :created
end
def destroy
@device.destroy
respond_to do |format|
format.html { redirect_to devices_path, notice: "Device removed" }
format.json { head :no_content }
end
end
private
def set_device
@device = Current.identity.devices.find_by(token: params[:id]) || Current.identity.devices.find(params[:id])
end
def device_params
params.require([ :token, :platform ])
params.permit(:token, :platform, :name).to_h.symbolize_keys
end
end