Skip to content

Instantly share code, notes, and snippets.

@Fire-Dragon-DoL
Last active August 29, 2015 13:59
Show Gist options
  • Select an option

  • Save Fire-Dragon-DoL/10687933 to your computer and use it in GitHub Desktop.

Select an option

Save Fire-Dragon-DoL/10687933 to your computer and use it in GitHub Desktop.
Gist login/logout controller
class UserSessionsController < ApplicationController
skip_before_action :get_current_user, only: [:create]
def create
authorize! :create, UserSessionsController
interactor = SignInUser.perform(users_session_params)
create_context interactor
if interactor.success?
respond_to do |format|
format.html
format.json do
render_jsend success: {
username: @username,
token: @token
}
end
end
else
respond_to do |format|
format.html
format.json do
render_jsend fail: {
message: @message
}
end
end
end
def destroy
authorize! :destroy, UserSessionsController
SignOutUser.perform(user: current_user)
render_jsend :success
end
private
def users_session_params
params.require(:user_session).permit(:username, :password)
end
def create_context(interactor)
interactor.each do |key, value|
instance_variable_set(:"@#{ key }", value)
end
end
end
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment