Skip to content

SixArm/sixarm_ruby_sign_in

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

96 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

SixArm.com → Ruby →
SignIn abstract interface for apps

Gem Version Build Status Code Climate

Introduction

SignIn is a simple abstract framework for apps.

You can include this module in a Rails application controller, then your controller can define any of these concrete methods.

For docs go to http://sixarm.com/sixarm_ruby_sign_in/doc

Want to help? We're happy to get pull requests.

Install

Gem

To install this gem in your shell or terminal:

gem install sixarm_ruby_sign_in

Gemfile

To add this gem to your Gemfile:

gem 'sixarm_ruby_sign_in'

Require

To require the gem in your code:

require 'sixarm_ruby_sign_in'

Details

This provides one top-level method:

sign_in(options=nil) => true for success, false for failure

The top level method will call mid-level methods that you will define in your own controller.

sign_in calls:

sign_in_attempt(options=nil), e.g. authenticate and set current user
sign_in_success(options=nil), e.g. redirect to a welcome page
sign_in_failure(options=nil), e.g. flash notice help messesage

AuthLogic Example

AuthLogic provides this example:

def create
  # sign in attempt
  @user_session = UserSession.new(params[:user_session])
  if @user_session.save
    # sign in success
    redirect_to account_url
  else
    # sign in failure
    render :action => :new
  end
end

AuthLogic example refactored for improved security and structure:

def sign_in_attempt
  @user_session = UserSession.new(params[:user_session])
  @user_session.save
end

def sign_in_success
  redirect_to account_url
end

def sign_in_failure
 render :action => :new
end

About

SixArm.com » Ruby » SignIn abstract interface for apps

Topics

Resources

License

Code of conduct

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages