22 lines
889 B
Ruby
22 lines
889 B
Ruby
class ApplicationController < ActionController::Base
|
|
# Only allow modern browsers supporting webp images, web push, badges, import maps, CSS nesting, and CSS :has.
|
|
allow_browser versions: :modern
|
|
|
|
before_action :check_spotify_login
|
|
|
|
private
|
|
|
|
def check_spotify_login
|
|
return unless user_signed_in?
|
|
spotify_login = current_user.logins.where(platform: "spotify").order(created_at: :desc).first
|
|
if spotify_login.nil? || spotify_login.dead_since.present?
|
|
unless request.path == spotify_connect_path || request.path == spotify_path || request.path == spotify_callback_path || devise_controller?
|
|
if spotify_login&.dead_since.present?
|
|
flash[:alert] = "Your Spotify login expired and became invalid on #{spotify_login.dead_since.strftime('%Y-%m-%d %H:%M:%S')}. Please reconnect."
|
|
end
|
|
redirect_to spotify_path
|
|
end
|
|
end
|
|
end
|
|
end
|