Tengo una aplicación donde los usuarios tienen una membresía que vence.Obligar a los usuarios a cerrar sesión en Devise
Estoy trabajando para configurar un before_filter
en mi archivo applications.rb
para verificar que la membresía esté activada antes de permitir que entren en el sitio.
En mi archivo application.rb:
before_filter :check_account
def check_account
if user_signed_in?
if current_user.account.expired
flash[:error] = "Your account is expired. Please contact Navanti for renewal."
redirect_to destroy_user_session_path
end
end
end
sigo obteniendo un error de bucle de redireccionamiento. Supongo que es porque la página de cierre de sesión a la que se llama también está haciendo el before_filter
, pero si pongo un except => [:users => :sign_out]
, aún arroja el error de bucle.
Gracias por la ayuda.
solicitada Diseñar Método:
# DELETE /resource/sign_out
def destroy
redirect_path = after_sign_out_path_for(resource_name)
signed_out = (Devise.sign_out_all_scopes ? sign_out : sign_out(resource_name))
set_flash_message :notice, :signed_out if signed_out && is_navigational_format?
# We actually need to hardcode this as Rails default responder doesn't
# support returning empty response on GET request
respond_to do |format|
format.any(*navigational_formats) { redirect_to redirect_path }
format.all do
head :no_content
end
end
end
Escriba el código para destroy_user_session_path. – alex
sí, por favor ponga el código de destrucción aquí –
Ese código proviene de la gema Devise. Trataré de encontrarlo y agregarlo a la pregunta. – matthewvb