Skip to content

Commit

Permalink
devise authentication system
Browse files Browse the repository at this point in the history
  • Loading branch information
mikeymicrophone committed Jan 29, 2012
1 parent 7195e8b commit ea250ac
Show file tree
Hide file tree
Showing 25 changed files with 579 additions and 3 deletions.
4 changes: 3 additions & 1 deletion Gemfile
Expand Up @@ -9,6 +9,8 @@ gem 'sqlite3'
gem 'carrierwave'
gem 'acts_as_list'
gem 'kaminari'
gem 'devise'

# gem 'mini_magick'


Expand All @@ -32,7 +34,7 @@ gem 'jquery-rails'
# gem 'capistrano'

# To use debugger
# gem 'ruby-debug19', :require => 'ruby-debug'
gem 'ruby-debug19', :require => 'ruby-debug'

group :test do
# Pretty printed test output
Expand Down
32 changes: 32 additions & 0 deletions Gemfile.lock
Expand Up @@ -29,8 +29,11 @@ GEM
activesupport (= 3.1.3)
activesupport (3.1.3)
multi_json (~> 1.0)
acts_as_list (0.1.4)
ansi (1.4.1)
archive-tar-minitar (0.5.2)
arel (2.2.1)
bcrypt-ruby (3.0.1)
builder (3.0.0)
carrierwave (0.5.8)
activesupport (~> 3.0)
Expand All @@ -41,6 +44,12 @@ GEM
coffee-script-source
execjs
coffee-script-source (1.2.0)
columnize (0.3.6)
devise (2.0.0)
bcrypt-ruby (~> 3.0)
orm_adapter (~> 0.0.3)
railties (~> 3.1)
warden (~> 1.1)
erubis (2.7.0)
execjs (1.2.13)
multi_json (~> 1.0)
Expand All @@ -50,12 +59,19 @@ GEM
railties (~> 3.0)
thor (~> 0.14)
json (1.6.5)
kaminari (0.13.0)
actionpack (>= 3.0.0)
activesupport (>= 3.0.0)
railties (>= 3.0.0)
linecache19 (0.5.12)
ruby_core_source (>= 0.1.4)
mail (2.3.0)
i18n (>= 0.4.0)
mime-types (~> 1.16)
treetop (~> 1.4.8)
mime-types (1.17.2)
multi_json (1.0.4)
orm_adapter (0.0.6)
polyglot (0.3.3)
rack (1.3.6)
rack-cache (1.1)
Expand Down Expand Up @@ -84,6 +100,16 @@ GEM
rake (0.9.2.2)
rdoc (3.12)
json (~> 1.4)
ruby-debug-base19 (0.11.25)
columnize (>= 0.3.1)
linecache19 (>= 0.5.11)
ruby_core_source (>= 0.1.4)
ruby-debug19 (0.11.6)
columnize (>= 0.3.1)
linecache19 (>= 0.5.11)
ruby-debug-base19 (>= 0.11.19)
ruby_core_source (0.1.5)
archive-tar-minitar (>= 0.5.2)
sass (3.1.12)
sass-rails (3.1.5)
actionpack (~> 3.1.0)
Expand All @@ -106,15 +132,21 @@ GEM
uglifier (1.2.2)
execjs (>= 0.3.0)
multi_json (>= 1.0.2)
warden (1.1.0)
rack (>= 1.0)

PLATFORMS
ruby

DEPENDENCIES
acts_as_list
carrierwave
coffee-rails (~> 3.1.1)
devise
jquery-rails
kaminari
rails (= 3.1.3)
ruby-debug19
sass-rails (~> 3.1.5)
sqlite3
turn (= 0.8.2)
Expand Down
1 change: 1 addition & 0 deletions app/controllers/application_controller.rb
@@ -1,3 +1,4 @@
class ApplicationController < ActionController::Base
protect_from_forgery
before_filter :authenticate_user!
end
1 change: 0 additions & 1 deletion app/controllers/pictures_controller.rb
Expand Up @@ -2,7 +2,6 @@ class PicturesController < ApplicationController
# GET /pictures
# GET /pictures.json
def index
@pictures = Picture.all
@pictures = Picture.page(params[:page])

respond_to do |format|
Expand Down
9 changes: 9 additions & 0 deletions app/models/user.rb
@@ -0,0 +1,9 @@
class User < ActiveRecord::Base
# Include default devise modules. Others available are:
# :token_authenticatable, :encryptable, :confirmable, :lockable, :timeoutable and :omniauthable
devise :database_authenticatable, :registerable,
:recoverable, :rememberable, :trackable, :validatable#, :confirmable, :token_authenticatable

# Setup accessible (or protected) attributes for your model
attr_accessible :email, :password, :password_confirmation, :remember_me
end
25 changes: 25 additions & 0 deletions app/views/devise/_links.erb
@@ -0,0 +1,25 @@
<%- if controller_name != 'sessions' %>
<%= link_to "Sign in", new_session_path(resource_name) %><br />
<% end -%>
<%- if devise_mapping.registerable? && controller_name != 'registrations' %>
<%= link_to "Sign up", new_registration_path(resource_name) %><br />
<% end -%>
<%- if devise_mapping.recoverable? && controller_name != 'passwords' %>
<%= link_to "Forgot your password?", new_password_path(resource_name) %><br />
<% end -%>
<%- if devise_mapping.confirmable? && controller_name != 'confirmations' %>
<%= link_to "Didn't receive confirmation instructions?", new_confirmation_path(resource_name) %><br />
<% end -%>
<%- if devise_mapping.lockable? && resource_class.unlock_strategy_enabled?(:email) && controller_name != 'unlocks' %>
<%= link_to "Didn't receive unlock instructions?", new_unlock_path(resource_name) %><br />
<% end -%>
<%- if devise_mapping.omniauthable? %>
<%- resource_class.omniauth_providers.each do |provider| %>
<%= link_to "Sign in with #{provider.to_s.titleize}", omniauth_authorize_path(resource_name, provider) %><br />
<% end -%>
<% end -%>
12 changes: 12 additions & 0 deletions app/views/devise/confirmations/new.html.erb
@@ -0,0 +1,12 @@
<h2>Resend confirmation instructions</h2>

<%= form_for(resource, :as => resource_name, :url => confirmation_path(resource_name), :html => { :method => :post }) do |f| %>
<%= devise_error_messages! %>

<div><%= f.label :email %><br />
<%= f.email_field :email %></div>

<div><%= f.submit "Resend confirmation instructions" %></div>
<% end %>
<%= render "links" %>
5 changes: 5 additions & 0 deletions app/views/devise/mailer/confirmation_instructions.html.erb
@@ -0,0 +1,5 @@
<p>Welcome <%= @resource.email %>!</p>

<p>You can confirm your account email through the link below:</p>

<p><%= link_to 'Confirm my account', user_confirmation_url(@resource, :confirmation_token => @resource.confirmation_token) %></p>
8 changes: 8 additions & 0 deletions app/views/devise/mailer/reset_password_instructions.html.erb
@@ -0,0 +1,8 @@
<p>Hello <%= @resource.email %>!</p>

<p>Someone has requested a link to change your password, and you can do this through the link below.</p>

<p><%= link_to 'Change my password', edit_password_url(@resource, :reset_password_token => @resource.reset_password_token) %></p>

<p>If you didn't request this, please ignore this email.</p>
<p>Your password won't change until you access the link above and create a new one.</p>
7 changes: 7 additions & 0 deletions app/views/devise/mailer/unlock_instructions.html.erb
@@ -0,0 +1,7 @@
<p>Hello <%= @resource.email %>!</p>

<p>Your account has been locked due to an excessive amount of unsuccessful sign in attempts.</p>

<p>Click the link below to unlock your account:</p>

<p><%= link_to 'Unlock my account', unlock_url(@resource, :unlock_token => @resource.unlock_token) %></p>
16 changes: 16 additions & 0 deletions app/views/devise/passwords/edit.html.erb
@@ -0,0 +1,16 @@
<h2>Change your password</h2>

<%= form_for(resource, :as => resource_name, :url => password_path(resource_name), :html => { :method => :put }) do |f| %>
<%= devise_error_messages! %>
<%= f.hidden_field :reset_password_token %>

<div><%= f.label :password, "New password" %><br />
<%= f.password_field :password %></div>

<div><%= f.label :password_confirmation, "Confirm new password" %><br />
<%= f.password_field :password_confirmation %></div>

<div><%= f.submit "Change my password" %></div>
<% end %>
<%= render "links" %>
12 changes: 12 additions & 0 deletions app/views/devise/passwords/new.html.erb
@@ -0,0 +1,12 @@
<h2>Forgot your password?</h2>

<%= form_for(resource, :as => resource_name, :url => password_path(resource_name), :html => { :method => :post }) do |f| %>
<%= devise_error_messages! %>

<div><%= f.label :email %><br />
<%= f.email_field :email %></div>

<div><%= f.submit "Send me reset password instructions" %></div>
<% end %>
<%= render "links" %>
25 changes: 25 additions & 0 deletions app/views/devise/registrations/edit.html.erb
@@ -0,0 +1,25 @@
<h2>Edit <%= resource_name.to_s.humanize %></h2>

<%= form_for(resource, :as => resource_name, :url => registration_path(resource_name), :html => { :method => :put }) do |f| %>
<%= devise_error_messages! %>

<div><%= f.label :email %><br />
<%= f.email_field :email %></div>

<div><%= f.label :password %> <i>(leave blank if you don't want to change it)</i><br />
<%= f.password_field :password %></div>

<div><%= f.label :password_confirmation %><br />
<%= f.password_field :password_confirmation %></div>

<div><%= f.label :current_password %> <i>(we need your current password to confirm your changes)</i><br />
<%= f.password_field :current_password %></div>

<div><%= f.submit "Update" %></div>
<% end %>

<h3>Cancel my account</h3>

<p>Unhappy? <%= link_to "Cancel my account", registration_path(resource_name), :confirm => "Are you sure?", :method => :delete %>.</p>

<%= link_to "Back", :back %>
18 changes: 18 additions & 0 deletions app/views/devise/registrations/new.html.erb
@@ -0,0 +1,18 @@
<h2>Sign up</h2>

<%= form_for(resource, :as => resource_name, :url => registration_path(resource_name)) do |f| %>
<%= devise_error_messages! %>

<div><%= f.label :email %><br />
<%= f.email_field :email %></div>

<div><%= f.label :password %><br />
<%= f.password_field :password %></div>

<div><%= f.label :password_confirmation %><br />
<%= f.password_field :password_confirmation %></div>

<div><%= f.submit "Sign up" %></div>
<% end %>
<%= render "links" %>
17 changes: 17 additions & 0 deletions app/views/devise/sessions/new.html.erb
@@ -0,0 +1,17 @@
<h2>Sign in</h2>

<%= form_for(resource, :as => resource_name, :url => session_path(resource_name)) do |f| %>
<div><%= f.label :email %><br />
<%= f.email_field :email %></div>

<div><%= f.label :password %><br />
<%= f.password_field :password %></div>

<% if devise_mapping.rememberable? -%>
<div><%= f.check_box :remember_me %> <%= f.label :remember_me %></div>
<% end -%>

<div><%= f.submit "Sign in" %></div>
<% end %>
<%= render "links" %>
12 changes: 12 additions & 0 deletions app/views/devise/unlocks/new.html.erb
@@ -0,0 +1,12 @@
<h2>Resend unlock instructions</h2>

<%= form_for(resource, :as => resource_name, :url => unlock_path(resource_name), :html => { :method => :post }) do |f| %>
<%= devise_error_messages! %>

<div><%= f.label :email %><br />
<%= f.email_field :email %></div>

<div><%= f.submit "Resend unlock instructions" %></div>
<% end %>
<%= render "links" %>
1 change: 1 addition & 0 deletions config/application.rb
Expand Up @@ -44,5 +44,6 @@ class Application < Rails::Application

# Version of your assets, change this if you want to expire all your assets
config.assets.version = '1.0'
config.assets.initialize_on_precompile = false
end
end
2 changes: 2 additions & 0 deletions config/environments/development.rb
Expand Up @@ -27,4 +27,6 @@

# Expands the lines which load the assets
config.assets.debug = true

config.action_mailer.default_url_options = { :host => 'localhost:3000' }
end

0 comments on commit ea250ac

Please sign in to comment.