easy_auth 0.0.1.alpha.1 → 0.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
data/Rakefile CHANGED
@@ -23,7 +23,4 @@ end
23
23
  APP_RAKEFILE = File.expand_path("../spec/dummy/Rakefile", __FILE__)
24
24
  load 'rails/tasks/engine.rake'
25
25
 
26
-
27
-
28
26
  Bundler::GemHelper.install_tasks
29
-
@@ -1,4 +1,4 @@
1
1
  class PasswordResetMailer < ActionMailer::Base
2
2
  include EasyAuth::Mailers::PasswordReset
3
- default from: "from@example.com"
3
+ default :from => 'from@example.com'
4
4
  end
@@ -5,7 +5,10 @@ module EasyAuth::Controllers::Sessions
5
5
 
6
6
  def create
7
7
  if identity = EasyAuth.identity_model.authenticate(params[:identity])
8
- session[:session_token] = identity.generate_session_token!
8
+ session[:session_token] = identity.generate_session_token!
9
+ if identity.remember
10
+ cookies[:remember_token] = { :value => identity.generate_remember_token!, :expires => identity.remember_time.from_now }
11
+ end
9
12
  after_successful_sign_in(identity)
10
13
  else
11
14
  @identity = EasyAuth.identity_model.new(params[:identity])
@@ -15,6 +18,7 @@ module EasyAuth::Controllers::Sessions
15
18
 
16
19
  def destroy
17
20
  session.delete(:session_token)
21
+ cookies.delete(:remember_token)
18
22
  after_sign_out
19
23
  end
20
24
 
@@ -14,6 +14,16 @@ module EasyAuth
14
14
  @current_account = nil
15
15
  session.delete(:session_token)
16
16
  end
17
+ elsif cookies[:remember_token]
18
+ begin
19
+ @current_account ||= EasyAuth.identity_model.find_by_remember_token(cookies[:remember_token]).account
20
+ rescue
21
+ @current_acount = nil
22
+ cookies.delete(:remember_token)
23
+ end
24
+ else
25
+ session.delete(:session_token)
26
+ cookies.delete(:remember_token)
17
27
  end
18
28
 
19
29
  @current_account
@@ -3,12 +3,13 @@ module EasyAuth::Models::Identity
3
3
  base.class_eval do
4
4
  belongs_to :account, :polymorphic => true
5
5
  has_secure_password
6
- attr_accessible :username, :password, :password_confirmation
6
+ attr_accessible :username, :password, :password_confirmation, :remember
7
7
 
8
8
  def self.authenticate(attributes = nil)
9
9
  return nil if attributes.nil?
10
10
 
11
11
  if identity = where(arel_table[:username].matches(attributes[:username].try(&:strip))).first.try(:authenticate, attributes[:password])
12
+ identity.remember = attributes[:remember]
12
13
  identity
13
14
  else
14
15
  nil
@@ -17,6 +18,14 @@ module EasyAuth::Models::Identity
17
18
  end
18
19
  end
19
20
 
21
+ def remember
22
+ @remember
23
+ end
24
+
25
+ def remember=(value)
26
+ @remember = ::ActiveRecord::ConnectionAdapters::Column.value_to_boolean(value)
27
+ end
28
+
20
29
  def password_reset
21
30
  update_attribute(:reset_token, URI.escape(_generate_token(:reset).gsub(/[\.|\\\/]/,'')))
22
31
  PasswordResetMailer.reset(self.id).deliver
@@ -27,6 +36,15 @@ module EasyAuth::Models::Identity
27
36
  self.session_token
28
37
  end
29
38
 
39
+ def generate_remember_token!
40
+ self.update_attribute(:remember_token, _generate_token(:remember))
41
+ self.remember_token
42
+ end
43
+
44
+ def remember_time
45
+ 1.year
46
+ end
47
+
30
48
  private
31
49
 
32
50
  def _generate_token(type)
@@ -1,7 +1,13 @@
1
1
  <%= form_for @identity, :url => main_app.edit_password_path(params[:reset_token]) do |f| %>
2
- <%= f.label :password %>
3
- <%= f.text_field :password %>
4
- <%= f.label :password_confirmation %>
5
- <%= f.text_field :password_confirmation %>
6
- <%= f.submit 'Submit' %>
2
+ <p>
3
+ <%= f.label :password %>
4
+ <%= f.text_field :password %>
5
+ </p>
6
+ <p>
7
+ <%= f.label :password_confirmation %>
8
+ <%= f.text_field :password_confirmation %>
9
+ </p>
10
+ <p>
11
+ <%= f.submit 'Submit' %>
12
+ </p>
7
13
  <% end %>
@@ -1,5 +1,9 @@
1
1
  <%= form_for @identity, :url => main_app.password_reset_path do |f| %>
2
- <%= f.label :username %>
3
- <%= f.text_field :username %>
4
- <%= f.submit 'Submit' %>
2
+ <p>
3
+ <%= f.label :username %>
4
+ <%= f.text_field :username %>
5
+ </p>
6
+ <p>
7
+ <%= f.submit 'Submit' %>
8
+ </p>
5
9
  <% end %>
@@ -1,7 +1,17 @@
1
1
  <%= form_for @identity, :url => main_app.sign_in_path do |f| %>
2
- <%= f.label :username %>
3
- <%= f.text_field :username %>
4
- <%= f.label :password %>
5
- <%= f.password_field :password %>
6
- <%= f.submit 'Submit' %>
2
+ <p>
3
+ <%= f.label :username %>
4
+ <%= f.text_field :username %>
5
+ </p>
6
+ <p>
7
+ <%= f.label :password %>
8
+ <%= f.password_field :password %>
9
+ </p>
10
+ <p>
11
+ <%= f.label :remember, "Remember for #{@identity.remember_time.inspect}" %>
12
+ <%= f.check_box :remember %>
13
+ </p>
14
+ <p>
15
+ <%= f.submit 'Submit' %>
16
+ </p>
7
17
  <% end %>
@@ -7,10 +7,11 @@ class CreateIdentities < ActiveRecord::Migration
7
7
  t.integer :account_id
8
8
  t.string :reset_token
9
9
  t.string :session_token
10
+ t.string :remember_token
10
11
  t.timestamps
11
12
  end
12
13
 
13
- [:username, :reset_token, :session_token].each do |column|
14
+ [:username, :reset_token, :remember_token, :session_token].each do |column|
14
15
  add_index :identities, column
15
16
  end
16
17
  end
@@ -1,3 +1,3 @@
1
1
  module EasyAuth
2
- VERSION = '0.0.1.alpha.1'
2
+ VERSION = '0.0.1'
3
3
  end
data/lib/easy_auth.rb CHANGED
@@ -1,3 +1,4 @@
1
+ require 'bcrypt'
1
2
  require 'easy_auth/engine'
2
3
  require 'easy_auth/routes'
3
4
 
metadata CHANGED
@@ -1,19 +1,19 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: easy_auth
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.1.alpha.1
5
- prerelease: 6
4
+ version: 0.0.1
5
+ prerelease:
6
6
  platform: ruby
7
7
  authors:
8
8
  - Brian Cardarella
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2012-05-07 00:00:00.000000000Z
12
+ date: 2012-05-28 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: rails
16
- requirement: &70277957196260 !ruby/object:Gem::Requirement
16
+ requirement: &70365829440860 !ruby/object:Gem::Requirement
17
17
  none: false
18
18
  requirements:
19
19
  - - ~>
@@ -21,10 +21,10 @@ dependencies:
21
21
  version: 3.2.1
22
22
  type: :runtime
23
23
  prerelease: false
24
- version_requirements: *70277957196260
24
+ version_requirements: *70365829440860
25
25
  - !ruby/object:Gem::Dependency
26
26
  name: bcrypt-ruby
27
- requirement: &70277957194540 !ruby/object:Gem::Requirement
27
+ requirement: &70365829440220 !ruby/object:Gem::Requirement
28
28
  none: false
29
29
  requirements:
30
30
  - - ~>
@@ -32,10 +32,10 @@ dependencies:
32
32
  version: 3.0.0
33
33
  type: :runtime
34
34
  prerelease: false
35
- version_requirements: *70277957194540
35
+ version_requirements: *70365829440220
36
36
  - !ruby/object:Gem::Dependency
37
37
  name: sqlite3
38
- requirement: &70277957192280 !ruby/object:Gem::Requirement
38
+ requirement: &70365829439460 !ruby/object:Gem::Requirement
39
39
  none: false
40
40
  requirements:
41
41
  - - ! '>='
@@ -43,10 +43,10 @@ dependencies:
43
43
  version: '0'
44
44
  type: :development
45
45
  prerelease: false
46
- version_requirements: *70277957192280
46
+ version_requirements: *70365829439460
47
47
  - !ruby/object:Gem::Dependency
48
48
  name: rspec-rails
49
- requirement: &70277957175740 !ruby/object:Gem::Requirement
49
+ requirement: &70365829438880 !ruby/object:Gem::Requirement
50
50
  none: false
51
51
  requirements:
52
52
  - - ! '>='
@@ -54,10 +54,10 @@ dependencies:
54
54
  version: '0'
55
55
  type: :development
56
56
  prerelease: false
57
- version_requirements: *70277957175740
57
+ version_requirements: *70365829438880
58
58
  - !ruby/object:Gem::Dependency
59
59
  name: capybara
60
- requirement: &70277957173520 !ruby/object:Gem::Requirement
60
+ requirement: &70365829438360 !ruby/object:Gem::Requirement
61
61
  none: false
62
62
  requirements:
63
63
  - - ! '>='
@@ -65,10 +65,10 @@ dependencies:
65
65
  version: '0'
66
66
  type: :development
67
67
  prerelease: false
68
- version_requirements: *70277957173520
68
+ version_requirements: *70365829438360
69
69
  - !ruby/object:Gem::Dependency
70
70
  name: capybara-email
71
- requirement: &70277957172440 !ruby/object:Gem::Requirement
71
+ requirement: &70365829437580 !ruby/object:Gem::Requirement
72
72
  none: false
73
73
  requirements:
74
74
  - - ! '>='
@@ -76,10 +76,10 @@ dependencies:
76
76
  version: '0'
77
77
  type: :development
78
78
  prerelease: false
79
- version_requirements: *70277957172440
79
+ version_requirements: *70365829437580
80
80
  - !ruby/object:Gem::Dependency
81
81
  name: valid_attribute
82
- requirement: &70277957171180 !ruby/object:Gem::Requirement
82
+ requirement: &70365829437000 !ruby/object:Gem::Requirement
83
83
  none: false
84
84
  requirements:
85
85
  - - ! '>='
@@ -87,10 +87,10 @@ dependencies:
87
87
  version: '0'
88
88
  type: :development
89
89
  prerelease: false
90
- version_requirements: *70277957171180
90
+ version_requirements: *70365829437000
91
91
  - !ruby/object:Gem::Dependency
92
92
  name: factory_girl_rails
93
- requirement: &70277957169080 !ruby/object:Gem::Requirement
93
+ requirement: &70365850682120 !ruby/object:Gem::Requirement
94
94
  none: false
95
95
  requirements:
96
96
  - - ! '>='
@@ -98,10 +98,10 @@ dependencies:
98
98
  version: '0'
99
99
  type: :development
100
100
  prerelease: false
101
- version_requirements: *70277957169080
101
+ version_requirements: *70365850682120
102
102
  - !ruby/object:Gem::Dependency
103
103
  name: bourne
104
- requirement: &70277957167740 !ruby/object:Gem::Requirement
104
+ requirement: &70365850681360 !ruby/object:Gem::Requirement
105
105
  none: false
106
106
  requirements:
107
107
  - - ! '>='
@@ -109,10 +109,10 @@ dependencies:
109
109
  version: '0'
110
110
  type: :development
111
111
  prerelease: false
112
- version_requirements: *70277957167740
112
+ version_requirements: *70365850681360
113
113
  - !ruby/object:Gem::Dependency
114
114
  name: debugger
115
- requirement: &70277957165780 !ruby/object:Gem::Requirement
115
+ requirement: &70365850680700 !ruby/object:Gem::Requirement
116
116
  none: false
117
117
  requirements:
118
118
  - - ! '>='
@@ -120,7 +120,7 @@ dependencies:
120
120
  version: '0'
121
121
  type: :development
122
122
  prerelease: false
123
- version_requirements: *70277957165780
123
+ version_requirements: *70365850680700
124
124
  description: EasyAuth
125
125
  email:
126
126
  - brian@dockyard.com
@@ -172,16 +172,19 @@ required_ruby_version: !ruby/object:Gem::Requirement
172
172
  version: '0'
173
173
  segments:
174
174
  - 0
175
- hash: -3970848794038147418
175
+ hash: -3835469776783802043
176
176
  required_rubygems_version: !ruby/object:Gem::Requirement
177
177
  none: false
178
178
  requirements:
179
- - - ! '>'
179
+ - - ! '>='
180
180
  - !ruby/object:Gem::Version
181
- version: 1.3.1
181
+ version: '0'
182
+ segments:
183
+ - 0
184
+ hash: -3835469776783802043
182
185
  requirements: []
183
186
  rubyforge_project:
184
- rubygems_version: 1.8.15
187
+ rubygems_version: 1.8.11
185
188
  signing_key:
186
189
  specification_version: 3
187
190
  summary: EasyAuth