class Users::SessionsController < Devise::SessionsController before_action :configure_sign_in_params, only: [:create] skip_before_action :check_apartment_active, only: [:new] skip_before_action :check_apartment before_action :check_apartment_active_when_new,only: [:new] # before_filter :configure_sign_in_params, only: [:create] # GET /resource/sign_in def new cookies.delete(:my_apartment) cookies.delete(:login_do_apartment) super end # POST /resource/sign_in def create cookies.signed[:login_do_apartment] = { value: params[:apartment], secure: Settings.app.secure_cookie, httponly: true} super do cookies.delete(:login_do_apartment) cookies.signed[:my_apartment] = { value: params[:apartment], secure: Settings.app.secure_cookie, httponly: true} resource end end # DELETE /resource/sign_out def destroy super cookies.delete(:my_apartment) end protected # You can put the params you want to permit in the empty array. def configure_sign_in_params devise_parameter_sanitizer.permit( :sign_in, keys: [:login,:sign_in_id,:email,:password,:remember_me] ) end private def will_logout_user_save @will_logout_user = current_user end def check_apartment_active_when_new check_apartment_name = if !user_signed_in? && cookies.signed[:login_do_apartment].present? cookies.signed[:login_do_apartment] else params[:apartment] end if check_apartment_name.present? && Apartment::Tenant.current != check_apartment_name && Apartment.tenant_names.include?(check_apartment_name) params[:apartment] = check_apartment_name Apartment::Tenant.switch!(check_apartment_name) end check_apartment_active end end