tonkapark-clearance 0.6.9.3 → 0.7.0
Sign up to get free protection for your applications and to get access to all the features.
- data/CHANGELOG.textile +11 -5
- data/README.textile +38 -37
- data/Rakefile +41 -19
- data/TODO.textile +4 -3
- data/app/controllers/clearance/confirmations_controller.rb +27 -6
- data/app/controllers/clearance/passwords_controller.rb +1 -1
- data/app/controllers/clearance/sessions_controller.rb +1 -1
- data/app/controllers/clearance/users_controller.rb +3 -4
- data/app/models/clearance_mailer.rb +3 -25
- data/app/views/passwords/edit.html.erb +12 -14
- data/app/views/passwords/new.html.erb +9 -10
- data/app/views/sessions/new.html.erb +26 -1
- data/app/views/users/_form.html.erb +13 -0
- data/app/views/users/new.html.erb +5 -3
- data/clearance.gemspec +20 -31
- data/config/clearance_routes.rb +7 -9
- data/generators/clearance/clearance_generator.rb +3 -30
- data/generators/clearance/templates/README +17 -17
- data/generators/clearance/templates/migrations/create_users.rb +0 -3
- data/generators/clearance/templates/migrations/update_users.rb +1 -4
- data/generators/clearance/templates/user.rb +0 -1
- data/generators/clearance_features/clearance_features_generator.rb +4 -4
- data/generators/clearance_features/templates/features/sign_up.feature +17 -0
- data/generators/clearance_views/USAGE +0 -0
- data/generators/clearance_views/clearance_views_generator.rb +27 -0
- data/generators/clearance_views/templates/formtastic/passwords/edit.html.erb +21 -0
- data/generators/clearance_views/templates/formtastic/passwords/new.html.erb +15 -0
- data/generators/clearance_views/templates/formtastic/sessions/new.html.erb +22 -0
- data/generators/clearance_views/templates/formtastic/users/_inputs.html.erb +6 -0
- data/generators/clearance_views/templates/formtastic/users/new.html.erb +10 -0
- data/lib/clearance/authentication.rb +70 -32
- data/lib/clearance/user.rb +87 -32
- data/lib/clearance.rb +0 -1
- data/shoulda_macros/clearance.rb +6 -0
- metadata +23 -32
- data/app/controllers/clearance/invitations_controller.rb +0 -40
- data/app/views/clearance_mailer/invitation.html.erb +0 -3
- data/app/views/invitations/index.html.erb +0 -19
- data/app/views/invitations/new.html.erb +0 -15
- data/app/views/users/_user.html.erb +0 -28
- data/generators/clearance/templates/invitation.rb +0 -4
- data/generators/clearance/templates/migrations/create_invitations.rb +0 -20
- data/generators/clearance/templates/migrations/update_invitations.rb +0 -40
- data/lib/clearance/invitation.rb +0 -87
data/CHANGELOG.textile
CHANGED
@@ -1,11 +1,16 @@
|
|
1
|
-
h2. 0.
|
1
|
+
h2. 0.7.1 (unreleased)
|
2
2
|
|
3
|
-
*
|
4
|
-
*
|
3
|
+
* Documented Clearance::Authentication with YARD. (Dan Croak)
|
4
|
+
* Documented Clearance::User with YARD. (Dan Croak)
|
5
5
|
|
6
|
-
h2. 0.
|
6
|
+
h2. 0.7.0 (08/04/2009)
|
7
7
|
|
8
|
-
*
|
8
|
+
* Redirect signed in user who clicks confirmation link again. (Dan Croak)
|
9
|
+
* Redirect signed out user who clicks confirmation link again. (Dan Croak)
|
10
|
+
* Added signed_out? convenience method for controllers, helpers, views. (Dan
|
11
|
+
Croak)
|
12
|
+
* Added clearance_views generator. By default, creates formtastic views which
|
13
|
+
pass all tests and features. (Dan Croak)
|
9
14
|
|
10
15
|
h2. 0.6.9 (07/04/2009)
|
11
16
|
|
@@ -57,6 +62,7 @@ h2. 0.6.2 (04/22/2009)
|
|
57
62
|
* World(NavigationHelpers) Cucumber 3.0 style. (Shay Arnett & Mark Cornick)
|
58
63
|
|
59
64
|
h2. 0.6.1 (04/21/2009)
|
65
|
+
|
60
66
|
* Scope operators are necessary to keep Rails happy. Reverting the original
|
61
67
|
revert so they're back in the library now for constants referenced inside of
|
62
68
|
the gem. (Nick Quaranto)
|
data/README.textile
CHANGED
@@ -1,12 +1,12 @@
|
|
1
1
|
h1. Clearance
|
2
2
|
|
3
|
-
Rails authentication with email & password
|
3
|
+
Rails authentication with email & password.
|
4
4
|
|
5
5
|
"We have clearance, Clarence.":http://www.youtube.com/v/mNRXJEE3Nz8
|
6
6
|
|
7
|
-
h2.
|
7
|
+
h2. Suspenders
|
8
8
|
|
9
|
-
|
9
|
+
Clearance is included in "Suspenders":http://github.com/thoughtbot/suspenders, which thoughtbot uses on all of our apps. We highly recommend you try it. Suspenders is the "King Gem" in our ecosystem, representating what we think the current state-of-the-art is in Rails development.
|
10
10
|
|
11
11
|
h2. Installation
|
12
12
|
|
@@ -15,10 +15,10 @@ Clearance is a Rails engine. It works with versions of Rails greater than 2.3.
|
|
15
15
|
In config/environment.rb:
|
16
16
|
|
17
17
|
<pre>
|
18
|
-
config.gem "
|
19
|
-
:lib => 'clearance',
|
20
|
-
:source => 'http://gems.github.com',
|
21
|
-
:version => '0.
|
18
|
+
config.gem "thoughtbot-clearance",
|
19
|
+
:lib => 'clearance',
|
20
|
+
:source => 'http://gems.github.com',
|
21
|
+
:version => '0.7.0'
|
22
22
|
</pre>
|
23
23
|
|
24
24
|
Vendor the gem:
|
@@ -30,7 +30,9 @@ rake gems:unpack
|
|
30
30
|
|
31
31
|
Make sure the development database exists and run the generator:
|
32
32
|
|
33
|
-
|
33
|
+
<pre>
|
34
|
+
script/generate clearance
|
35
|
+
</pre>
|
34
36
|
|
35
37
|
A number of files will be created and instructions will be printed.
|
36
38
|
|
@@ -38,50 +40,37 @@ You may already have some of these files. Don't worry. You'll be asked if you wa
|
|
38
40
|
|
39
41
|
Run the migration:
|
40
42
|
|
41
|
-
|
43
|
+
<pre>
|
44
|
+
rake db:migrate
|
45
|
+
</pre>
|
46
|
+
|
47
|
+
h2. If you aren't on Suspenders, you aren't done
|
42
48
|
|
43
49
|
Define a HOST constant in your environment files.
|
44
|
-
In config/
|
50
|
+
In config/environments/test.rb and config/environments/development.rb it can be:
|
45
51
|
|
46
52
|
<pre>
|
47
|
-
|
48
|
-
|
49
|
-
do_not_reply: do_not_reply@you_production_host.com
|
50
|
-
invitation_subject_line: An Invitation
|
51
|
-
invitation_from_email: invitation@you_production_host.com
|
52
|
-
</pre>
|
53
|
-
|
54
|
-
Define root_url to *something* in your config/routes.rb:
|
55
|
-
|
56
|
-
@map.root :controller => 'home'@
|
57
|
-
|
58
|
-
h2. Cucumber Features
|
53
|
+
HOST = "localhost"
|
54
|
+
</pre>
|
59
55
|
|
60
|
-
|
56
|
+
In production.rb it must be the actual host your application is deployed to.
|
57
|
+
The constant is used by mailers to generate URLs in emails.
|
61
58
|
|
62
|
-
In config/
|
59
|
+
In config/environment.rb:
|
63
60
|
|
64
61
|
<pre>
|
65
|
-
|
66
|
-
:version => '= 0.4.4'
|
67
|
-
config.gem 'cucumber',
|
68
|
-
:version => '= 0.3.0'
|
69
|
-
config.gem 'thoughtbot-factory_girl',
|
70
|
-
:lib => 'factory_girl',
|
71
|
-
:source => "http://gems.github.com",
|
72
|
-
:version => '1.2.1'
|
62
|
+
DO_NOT_REPLY = "donotreply@example.com"
|
73
63
|
</pre>
|
74
64
|
|
75
|
-
|
65
|
+
Define root_url to *something* in your config/routes.rb:
|
76
66
|
|
77
67
|
<pre>
|
78
|
-
|
79
|
-
rake gems:unpack RAILS_ENV=test
|
68
|
+
map.root :controller => 'home'
|
80
69
|
</pre>
|
81
70
|
|
82
|
-
|
71
|
+
h2. Cucumber Features
|
83
72
|
|
84
|
-
|
73
|
+
As your app evolves, you want to know that authentication still works. thoughtbot's opinion is that you should test its integration with your app using "Cucumber":http://cukes.info/.
|
85
74
|
|
86
75
|
Run the Cucumber generator (if you haven't already) and Clearance's feature generator:
|
87
76
|
|
@@ -106,6 +95,18 @@ def path_to(page_name)
|
|
106
95
|
end
|
107
96
|
</pre>
|
108
97
|
|
98
|
+
h2. Formtastic views
|
99
|
+
|
100
|
+
We have begun standardizing our forms using "Formtastic":http://github.com/justinfrench/formtastic. We highly recommend trying it. It will make your Rails view life more interesting.
|
101
|
+
|
102
|
+
Clearance has another generator to generate Formastic views:
|
103
|
+
|
104
|
+
<pre>
|
105
|
+
script/generate clearance_views
|
106
|
+
</pre>
|
107
|
+
|
108
|
+
Its implementation is designed so that other view styles can be generated if the community wants it. However, we haven't needed them so you'll have to write the patch and send it back if you want other styles (such as Haml).
|
109
|
+
|
109
110
|
h2. Authors
|
110
111
|
|
111
112
|
Clearance was extracted out of "Hoptoad":http://hoptoadapp.com. We merged the authentication code from two of thoughtbot's clients' Rails apps and have since used it each time we need authentication. The following people have improved the library. Thank you!
|
data/Rakefile
CHANGED
@@ -5,8 +5,16 @@ require 'rake/testtask'
|
|
5
5
|
require 'cucumber/rake/task'
|
6
6
|
|
7
7
|
namespace :test do
|
8
|
-
Rake::TestTask.new(:
|
9
|
-
|
8
|
+
Rake::TestTask.new(:basic => ["generator:cleanup",
|
9
|
+
"generator:clearance",
|
10
|
+
"generator:clearance_features"]) do |task|
|
11
|
+
task.libs << "lib"
|
12
|
+
task.libs << "test"
|
13
|
+
task.pattern = "test/**/*_test.rb"
|
14
|
+
task.verbose = false
|
15
|
+
end
|
16
|
+
|
17
|
+
Rake::TestTask.new(:views => ["generator:clearance_views"]) do |task|
|
10
18
|
task.libs << "lib"
|
11
19
|
task.libs << "test"
|
12
20
|
task.pattern = "test/**/*_test.rb"
|
@@ -17,9 +25,14 @@ namespace :test do
|
|
17
25
|
t.cucumber_opts = "--format progress"
|
18
26
|
t.feature_pattern = "test/rails_root/features/*.feature"
|
19
27
|
end
|
28
|
+
|
29
|
+
Cucumber::Rake::Task.new(:features_for_views) do |t|
|
30
|
+
t.cucumber_opts = "--format progress"
|
31
|
+
t.feature_pattern = "test/rails_root/features/*.feature"
|
32
|
+
end
|
20
33
|
end
|
21
34
|
|
22
|
-
generators = %w(clearance clearance_features)
|
35
|
+
generators = %w(clearance clearance_features clearance_views)
|
23
36
|
|
24
37
|
namespace :generator do
|
25
38
|
desc "Cleans up the test app before running the generator"
|
@@ -34,36 +47,45 @@ namespace :generator do
|
|
34
47
|
FileList["test/rails_root/db/**/*"].each do |each|
|
35
48
|
FileUtils.rm_rf(each)
|
36
49
|
end
|
50
|
+
|
37
51
|
FileUtils.rm_rf("test/rails_root/vendor/plugins/clearance")
|
38
52
|
FileUtils.mkdir_p("test/rails_root/vendor/plugins")
|
39
53
|
clearance_root = File.expand_path(File.dirname(__FILE__))
|
40
54
|
system("ln -s #{clearance_root} test/rails_root/vendor/plugins/clearance")
|
55
|
+
|
56
|
+
FileUtils.rm_rf("test/rails_root/app/views/passwords")
|
57
|
+
FileUtils.rm_rf("test/rails_root/app/views/sessions")
|
58
|
+
FileUtils.rm_rf("test/rails_root/app/views/users")
|
41
59
|
end
|
42
60
|
|
43
|
-
desc "Run the generator
|
44
|
-
task :
|
45
|
-
|
46
|
-
|
47
|
-
|
61
|
+
desc "Run the clearance generator"
|
62
|
+
task :clearance do
|
63
|
+
system "cd test/rails_root && ./script/generate clearance && rake db:migrate db:test:prepare"
|
64
|
+
end
|
65
|
+
|
66
|
+
desc "Run the clearance features generator"
|
67
|
+
task :clearance_features do
|
68
|
+
system "cd test/rails_root && ./script/generate clearance_features"
|
69
|
+
end
|
70
|
+
|
71
|
+
desc "Run the clearance views generator"
|
72
|
+
task :clearance_views do
|
73
|
+
system "cd test/rails_root && ./script/generate clearance_views"
|
48
74
|
end
|
49
75
|
end
|
50
76
|
|
51
77
|
desc "Run the test suite"
|
52
|
-
task :default => ['test:
|
78
|
+
task :default => ['test:basic', 'test:features',
|
79
|
+
'test:views', 'test:features_for_views']
|
53
80
|
|
54
81
|
gem_spec = Gem::Specification.new do |gem_spec|
|
55
82
|
gem_spec.name = "clearance"
|
56
|
-
gem_spec.version = "0.
|
57
|
-
gem_spec.summary = "Rails authentication with email & password
|
83
|
+
gem_spec.version = "0.7.0"
|
84
|
+
gem_spec.summary = "Forked thoughbot/clearance. Rails authentication with email & password."
|
58
85
|
gem_spec.email = "matt@tonkapark.com"
|
59
|
-
gem_spec.homepage = "http://github.com/
|
60
|
-
gem_spec.description = "Rails authentication with email & password
|
61
|
-
gem_spec.authors = ["
|
62
|
-
"Joe Ferris", "Eugene Bolshakov", "Nick Quaranto",
|
63
|
-
"Josh Nichols", "Mike Breen", "Marcel Görner",
|
64
|
-
"Bence Nagy", "Ben Mabey", "Eloy Duran",
|
65
|
-
"Tim Pope", "Mihai Anca", "Mark Cornick",
|
66
|
-
"Shay Arnett"]
|
86
|
+
gem_spec.homepage = "http://github.com/thoughtbot/clearance"
|
87
|
+
gem_spec.description = "Rails authentication with email & password."
|
88
|
+
gem_spec.authors = ["Matt Anderson"]
|
67
89
|
gem_spec.files = FileList["[A-Z]*", "{app,config,generators,lib,shoulda_macros,rails}/**/*"]
|
68
90
|
end
|
69
91
|
|
data/TODO.textile
CHANGED
@@ -1,5 +1,6 @@
|
|
1
|
+
h1. To-do
|
1
2
|
|
2
|
-
|
3
|
+
* Make insertion of Clearance::User into User model automatic from the generator.
|
4
|
+
* Change generated README to include instruction about running the migration.
|
5
|
+
* DO_NOT_REPLY, HOST refactoring.
|
3
6
|
|
4
|
-
* Allow users to invite users
|
5
|
-
* Resend invitation
|
@@ -1,9 +1,11 @@
|
|
1
1
|
class Clearance::ConfirmationsController < ApplicationController
|
2
2
|
unloadable
|
3
3
|
|
4
|
-
before_filter :
|
5
|
-
before_filter :
|
6
|
-
before_filter :
|
4
|
+
before_filter :redirect_signed_in_confirmed_user, :only => [:new, :create]
|
5
|
+
before_filter :redirect_signed_out_confirmed_user, :only => [:new, :create]
|
6
|
+
before_filter :forbid_missing_token, :only => [:new, :create]
|
7
|
+
before_filter :forbid_non_existent_user, :only => [:new, :create]
|
8
|
+
|
7
9
|
filter_parameter_logging :token
|
8
10
|
|
9
11
|
def new
|
@@ -21,10 +23,19 @@ class Clearance::ConfirmationsController < ApplicationController
|
|
21
23
|
|
22
24
|
private
|
23
25
|
|
24
|
-
def
|
26
|
+
def redirect_signed_in_confirmed_user
|
27
|
+
user = ::User.find_by_id(params[:user_id])
|
28
|
+
if user && user.email_confirmed? && current_user == user
|
29
|
+
flash_success_after_create
|
30
|
+
redirect_to(url_after_create)
|
31
|
+
end
|
32
|
+
end
|
33
|
+
|
34
|
+
def redirect_signed_out_confirmed_user
|
25
35
|
user = ::User.find_by_id(params[:user_id])
|
26
|
-
if user && user.email_confirmed?
|
27
|
-
|
36
|
+
if user && user.email_confirmed? && signed_out?
|
37
|
+
flash_already_confirmed
|
38
|
+
redirect_to(url_already_confirmed)
|
28
39
|
end
|
29
40
|
end
|
30
41
|
|
@@ -46,7 +57,17 @@ class Clearance::ConfirmationsController < ApplicationController
|
|
46
57
|
:default => "Confirmed email and signed in.")
|
47
58
|
end
|
48
59
|
|
60
|
+
def flash_already_confirmed
|
61
|
+
flash[:success] = translate(:already_confirmed_email,
|
62
|
+
:scope => [:clearance, :controllers, :confirmations],
|
63
|
+
:default => "Already confirmed email. Please sign in.")
|
64
|
+
end
|
65
|
+
|
49
66
|
def url_after_create
|
50
67
|
root_url
|
51
68
|
end
|
69
|
+
|
70
|
+
def url_already_confirmed
|
71
|
+
sign_in_url
|
72
|
+
end
|
52
73
|
end
|
@@ -4,9 +4,8 @@ class Clearance::UsersController < ApplicationController
|
|
4
4
|
before_filter :redirect_to_root, :only => [:new, :create], :if => :signed_in?
|
5
5
|
filter_parameter_logging :password
|
6
6
|
|
7
|
-
def new
|
8
|
-
@user = ::User.new(
|
9
|
-
@user.email = @user.invitation.recipient_email if @user.invitation
|
7
|
+
def new
|
8
|
+
@user = ::User.new(params[:user])
|
10
9
|
render :template => 'users/new'
|
11
10
|
end
|
12
11
|
|
@@ -31,6 +30,6 @@ class Clearance::UsersController < ApplicationController
|
|
31
30
|
end
|
32
31
|
|
33
32
|
def url_after_create
|
34
|
-
|
33
|
+
new_session_url
|
35
34
|
end
|
36
35
|
end
|
@@ -1,22 +1,9 @@
|
|
1
1
|
class ClearanceMailer < ActionMailer::Base
|
2
2
|
|
3
|
-
|
4
|
-
File.join(RAILS_ROOT, 'config', 'clearance.yml')
|
5
|
-
end
|
6
|
-
|
7
|
-
def self.config
|
8
|
-
YAML.load(File.read(config_file)).with_indifferent_access[RAILS_ENV]
|
9
|
-
end
|
10
|
-
|
11
|
-
def config
|
12
|
-
self.class.config
|
13
|
-
end
|
14
|
-
|
15
|
-
default_url_options[:host] = config[:host]
|
16
|
-
|
3
|
+
default_url_options[:host] = HOST
|
17
4
|
|
18
5
|
def change_password(user)
|
19
|
-
from
|
6
|
+
from DO_NOT_REPLY
|
20
7
|
recipients user.email
|
21
8
|
subject I18n.t(:change_password,
|
22
9
|
:scope => [:clearance, :models, :clearance_mailer],
|
@@ -25,21 +12,12 @@ class ClearanceMailer < ActionMailer::Base
|
|
25
12
|
end
|
26
13
|
|
27
14
|
def confirmation(user)
|
28
|
-
from
|
15
|
+
from DO_NOT_REPLY
|
29
16
|
recipients user.email
|
30
17
|
subject I18n.t(:confirmation,
|
31
18
|
:scope => [:clearance, :models, :clearance_mailer],
|
32
19
|
:default => "Account confirmation")
|
33
20
|
body :user => user
|
34
21
|
end
|
35
|
-
|
36
|
-
def invitation(invitation, url)
|
37
|
-
subject config[:invitation_subject_line]
|
38
|
-
recipients invitation.recipient_email
|
39
|
-
from config[:invitation_from_email]
|
40
|
-
body :invitation => invitation, :signup_url => url
|
41
|
-
invitation.update_attribute(:invited_at, Time.now)
|
42
|
-
end
|
43
|
-
|
44
22
|
|
45
23
|
end
|
@@ -9,17 +9,15 @@
|
|
9
9
|
<% form_for(:user,
|
10
10
|
:url => user_password_path(@user, :token => @user.token),
|
11
11
|
:html => { :method => :put }) do |form| %>
|
12
|
-
<
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
</ul>
|
25
|
-
<% end %>
|
12
|
+
<div class="password_field">
|
13
|
+
<%= form.label :password, "Choose password" %>
|
14
|
+
<%= form.password_field :password %>
|
15
|
+
</div>
|
16
|
+
<div class="password_field">
|
17
|
+
<%= form.label :password_confirmation, "Confirm password" %>
|
18
|
+
<%= form.password_field :password_confirmation %>
|
19
|
+
</div>
|
20
|
+
<div class="submit_field">
|
21
|
+
<%= form.submit "Save this password", :disable_with => "Please wait..." %>
|
22
|
+
</div>
|
23
|
+
<% end %>
|
@@ -1,16 +1,15 @@
|
|
1
1
|
<h2>Change your password</h2>
|
2
|
+
|
2
3
|
<p>
|
3
4
|
We will email you a link to change your password.
|
4
5
|
</p>
|
5
6
|
|
6
7
|
<% form_for :password, :url => passwords_path do |form| %>
|
7
|
-
<
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
</ul>
|
16
|
-
<% end %>
|
8
|
+
<div class="text_field">
|
9
|
+
<%= form.label :email, "Email address" %>
|
10
|
+
<%= form.text_field :email %>
|
11
|
+
</div>
|
12
|
+
<div class="submit_field">
|
13
|
+
<%= form.submit "Reset password", :disable_with => "Please wait..." %>
|
14
|
+
</div>
|
15
|
+
<% end %>
|
@@ -1,3 +1,28 @@
|
|
1
1
|
<h2>Sign in</h2>
|
2
2
|
|
3
|
-
|
3
|
+
<% form_for :session, :url => session_path do |form| %>
|
4
|
+
<div class="text_field">
|
5
|
+
<%= form.label :email %>
|
6
|
+
<%= form.text_field :email %>
|
7
|
+
</div>
|
8
|
+
<div class="text_field">
|
9
|
+
<%= form.label :password %>
|
10
|
+
<%= form.password_field :password %>
|
11
|
+
</div>
|
12
|
+
<div class="text_field">
|
13
|
+
<%= form.check_box :remember_me %>
|
14
|
+
<%= form.label :remember_me %>
|
15
|
+
</div>
|
16
|
+
<div class="submit_field">
|
17
|
+
<%= form.submit "Sign in", :disable_with => "Please wait..." %>
|
18
|
+
</div>
|
19
|
+
<% end %>
|
20
|
+
|
21
|
+
<ul>
|
22
|
+
<li>
|
23
|
+
<%= link_to "Sign up", sign_up_path %>
|
24
|
+
</li>
|
25
|
+
<li>
|
26
|
+
<%= link_to "Forgot password?", recover_password_path %>
|
27
|
+
</li>
|
28
|
+
</ul>
|
@@ -0,0 +1,13 @@
|
|
1
|
+
<%= form.error_messages %>
|
2
|
+
<div class="text_field">
|
3
|
+
<%= form.label :email %>
|
4
|
+
<%= form.text_field :email %>
|
5
|
+
</div>
|
6
|
+
<div class="password_field">
|
7
|
+
<%= form.label :password %>
|
8
|
+
<%= form.password_field :password %>
|
9
|
+
</div>
|
10
|
+
<div class="password_field">
|
11
|
+
<%= form.label :password_confirmation, "Confirm password" %>
|
12
|
+
<%= form.password_field :password_confirmation %>
|
13
|
+
</div>
|
@@ -1,4 +1,6 @@
|
|
1
|
-
<h2>
|
2
|
-
|
3
|
-
<%= render :partial => 'users/user', :locals => {:button_name => "Create my account"} %>
|
1
|
+
<h2>Sign up</h2>
|
4
2
|
|
3
|
+
<% form_for @user do |form| %>
|
4
|
+
<%= render :partial => '/users/form', :object => form %>
|
5
|
+
<%= form.submit 'Sign up', :disable_with => 'Please wait...' %>
|
6
|
+
<% end %>
|
data/clearance.gemspec
CHANGED
@@ -1,34 +1,19 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: clearance
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.7.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
|
-
-
|
8
|
-
- Mike Burns
|
9
|
-
- Jason Morrison
|
10
|
-
- Joe Ferris
|
11
|
-
- Eugene Bolshakov
|
12
|
-
- Nick Quaranto
|
13
|
-
- Josh Nichols
|
14
|
-
- Mike Breen
|
15
|
-
- "Marcel G\xC3\xB6rner"
|
16
|
-
- Bence Nagy
|
17
|
-
- Ben Mabey
|
18
|
-
- Eloy Duran
|
19
|
-
- Tim Pope
|
20
|
-
- Mihai Anca
|
21
|
-
- Mark Cornick
|
22
|
-
- Shay Arnett
|
7
|
+
- Matt Anderson
|
23
8
|
autorequire:
|
24
9
|
bindir: bin
|
25
10
|
cert_chain: []
|
26
11
|
|
27
|
-
date: 2009-
|
12
|
+
date: 2009-08-27 00:00:00 -05:00
|
28
13
|
default_executable:
|
29
14
|
dependencies: []
|
30
15
|
|
31
|
-
description: Rails authentication with email & password
|
16
|
+
description: Rails authentication with email & password.
|
32
17
|
email: matt@tonkapark.com
|
33
18
|
executables: []
|
34
19
|
|
@@ -53,7 +38,6 @@ files:
|
|
53
38
|
- app/controllers
|
54
39
|
- app/controllers/clearance
|
55
40
|
- app/controllers/clearance/confirmations_controller.rb
|
56
|
-
- app/controllers/clearance/invitations_controller.rb
|
57
41
|
- app/controllers/clearance/passwords_controller.rb
|
58
42
|
- app/controllers/clearance/sessions_controller.rb
|
59
43
|
- app/controllers/clearance/users_controller.rb
|
@@ -63,7 +47,6 @@ files:
|
|
63
47
|
- app/views/clearance_mailer
|
64
48
|
- app/views/clearance_mailer/change_password.html.erb
|
65
49
|
- app/views/clearance_mailer/confirmation.html.erb
|
66
|
-
- app/views/clearance_mailer/invitation.html.erb
|
67
50
|
- app/views/passwords
|
68
51
|
- app/views/passwords/edit.html.erb
|
69
52
|
- app/views/passwords/new.html.erb
|
@@ -71,10 +54,7 @@ files:
|
|
71
54
|
- app/views/sessions/new.html.erb
|
72
55
|
- app/views/users
|
73
56
|
- app/views/users/new.html.erb
|
74
|
-
- app/views/users/
|
75
|
-
- app/views/invitations
|
76
|
-
- app/views/invitations/new.html.erb
|
77
|
-
- app/views/invitations/index.html.erb
|
57
|
+
- app/views/users/_form.html.erb
|
78
58
|
- config/clearance_routes.rb
|
79
59
|
- generators/clearance
|
80
60
|
- generators/clearance/clearance_generator.rb
|
@@ -86,11 +66,8 @@ files:
|
|
86
66
|
- generators/clearance/templates/migrations
|
87
67
|
- generators/clearance/templates/migrations/create_users.rb
|
88
68
|
- generators/clearance/templates/migrations/update_users.rb
|
89
|
-
- generators/clearance/templates/migrations/create_invitations.rb
|
90
|
-
- generators/clearance/templates/migrations/update_invitations.rb
|
91
69
|
- generators/clearance/templates/README
|
92
70
|
- generators/clearance/templates/user.rb
|
93
|
-
- generators/clearance/templates/invitation.rb
|
94
71
|
- generators/clearance/USAGE
|
95
72
|
- generators/clearance_features
|
96
73
|
- generators/clearance_features/clearance_features_generator.rb
|
@@ -106,19 +83,31 @@ files:
|
|
106
83
|
- generators/clearance_features/templates/features/support
|
107
84
|
- generators/clearance_features/templates/features/support/paths.rb
|
108
85
|
- generators/clearance_features/USAGE
|
86
|
+
- generators/clearance_views
|
87
|
+
- generators/clearance_views/clearance_views_generator.rb
|
88
|
+
- generators/clearance_views/templates
|
89
|
+
- generators/clearance_views/templates/formtastic
|
90
|
+
- generators/clearance_views/templates/formtastic/passwords
|
91
|
+
- generators/clearance_views/templates/formtastic/passwords/edit.html.erb
|
92
|
+
- generators/clearance_views/templates/formtastic/passwords/new.html.erb
|
93
|
+
- generators/clearance_views/templates/formtastic/sessions
|
94
|
+
- generators/clearance_views/templates/formtastic/sessions/new.html.erb
|
95
|
+
- generators/clearance_views/templates/formtastic/users
|
96
|
+
- generators/clearance_views/templates/formtastic/users/new.html.erb
|
97
|
+
- generators/clearance_views/templates/formtastic/users/_inputs.html.erb
|
98
|
+
- generators/clearance_views/USAGE
|
109
99
|
- lib/clearance
|
110
100
|
- lib/clearance/authentication.rb
|
111
101
|
- lib/clearance/extensions
|
112
102
|
- lib/clearance/extensions/errors.rb
|
113
103
|
- lib/clearance/extensions/rescue.rb
|
114
104
|
- lib/clearance/extensions/routes.rb
|
115
|
-
- lib/clearance/invitation.rb
|
116
105
|
- lib/clearance/user.rb
|
117
106
|
- lib/clearance.rb
|
118
107
|
- shoulda_macros/clearance.rb
|
119
108
|
- rails/init.rb
|
120
109
|
has_rdoc: true
|
121
|
-
homepage: http://github.com/
|
110
|
+
homepage: http://github.com/thoughtbot/clearance
|
122
111
|
licenses: []
|
123
112
|
|
124
113
|
post_install_message:
|
@@ -144,6 +133,6 @@ rubyforge_project:
|
|
144
133
|
rubygems_version: 1.3.4
|
145
134
|
signing_key:
|
146
135
|
specification_version: 3
|
147
|
-
summary: Rails authentication with email & password.
|
136
|
+
summary: Forked thoughbot/clearance. Rails authentication with email & password.
|
148
137
|
test_files: []
|
149
138
|
|