Project

userify

0.0
No commit activity in last 3 years
No release in over 3 years
Super simple authentication system for Rails, using username, email and password.
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
 Dependencies
 Project Readme

Userify

Super simple authentication system for Rails, using username, email and password.

Userify focuses on the following 6 conventional actions, and that's all.

( signup / signin / signout / activate / forgot / reset )

Userify is inspired by Clearance http://github.com/thoughtbot/clearance.

Limitations

Currently, Userify is available only when you create a new project. Don't expect it to work in existing projects.

Requirements

Userify requires Haml. However, when you override the default template, you don't have to use Haml.

How to use it?

Here's the setup method.

Install Userify gem, as well as Haml.

sudo gem install haml
sudo gem install userify

In config/environment.rb:

config.gem "haml"
config.gem "userify"
UserifyMailer.sender_address = %("Do Not Reply" <donotreply@example.com>)

Run the generator:

script/generate userify

In config/environments/development.rb and test.rb:

config.action_mailer.default_url_options = { :host => "localhost", :port => 3000 }

In config/environments/production.rb:

config.action_mailer.default_url_options = { :host => "example.com" }

Define root_url to something in your config/routes.rb. Assuming home controller for root:

map.root :controller => 'home'

Create user_controller.rb and home_controller.rb:

script/generate controller user
script/generate controller home

Rewrite user_controller.rb as follows:

class UserController < Userify::UserController
end

Edit home_controller.rb:

class HomeController < ApplicationController
  def index
  end
end

Create app/views/home/index.html.haml:

- if signed_in?
  %p= "Hello #{current_user.name}!"
%h1 Home
%p My app home
- if signed_in?
  %p= link_to 'sign out', signout_url
- else
  %p= link_to 'sign up', signup_url
  %p= link_to 'sign in', signin_url

Rename public/index.html:

mv public/index.html public/_index.html

Run migration and start server:

rake db:migrate
script/server

Now, go to http://localhost:3000/ and check how everything works.

Customize

There are a couple of ways to customize Userify:

1. Override methods in the user_controller subclass.

You might want to override the following methods in your user_controller subclass.

UserController methods:

url_after_signup
url_after_signin
url_after_signout
url_after_activate
url_after_forgot
url_after_reset

View templates:

app/views/layouts/application.html.haml
app/views/layouts/_error_messages.html.haml
app/views/user/forgot.html.haml
app/views/user/reset.html.haml
app/views/user/signin.html.haml
app/views/user/signup.html.haml
app/views/userify_mailer/confirmation.html.erb
app/views/userify_mailer/reset_password.html.erb

2. Unpack Userify gem into vendor/gems and directly edit source.

rake gems:unpack GEM=userify