user_authentication 0.0.9 → 0.1.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/app/controllers/application_controller.rb +6 -1
- data/app/controllers/users_controller.rb +36 -5
- data/app/models/user.rb +1 -1
- data/app/validators/email_validator.rb +11 -0
- data/config/routes.rb +3 -2
- data/lib/user_authentication/version.rb +1 -1
- metadata +17 -17
- data/lib/user_authentication/version.rb~ +0 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: ffb87963dca325931b4e2c6dff618271efbd2d47
|
4
|
+
data.tar.gz: 6236635ec627f6096717abaa7d272fca85a5329f
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 901e26a4ca310b42d4b8d74bf8328923f73dca947b9b08cbf93daf5aa159423abfbd07f830721338ccec8ddf7b93d558b831ee82e88887dc05fc049a7b55b7c8
|
7
|
+
data.tar.gz: e21a2c29d3c4eb32fa9554d323b780d2bdad7a9a4eb606c8fbb209db0c75671545fea0cf26d02c731ae6cd9dd588dc11236b6bfbbe5ac0d7047f8b14df472d8b
|
@@ -19,7 +19,12 @@ class ApplicationController < ActionController::Base
|
|
19
19
|
end
|
20
20
|
|
21
21
|
def set_current_user
|
22
|
-
|
22
|
+
if session[:user_id].nil?
|
23
|
+
@current_user = nil
|
24
|
+
elsif @current_user.nil? || @current_user.id != session[:user_id]
|
25
|
+
@current_user = User.find session[:user_id]
|
26
|
+
end
|
27
|
+
|
23
28
|
true
|
24
29
|
end
|
25
30
|
end
|
@@ -1,19 +1,50 @@
|
|
1
|
+
controller = File.join Rails.root, 'app/controllers/users_controller.rb'
|
2
|
+
require controller if File.exists? controller
|
3
|
+
|
1
4
|
class UsersController < ApplicationController
|
2
5
|
def login
|
3
6
|
user = User.find_by_email params[:email]
|
4
7
|
if user && user.authenticate(params[:password])
|
5
8
|
session[:user_id] = user.id
|
6
|
-
|
9
|
+
set_current_user
|
10
|
+
|
11
|
+
if respond_to? :on_login
|
12
|
+
on_login
|
13
|
+
else
|
14
|
+
redirect_to :back
|
15
|
+
end
|
7
16
|
else
|
8
|
-
redirect_to
|
17
|
+
redirect_to :back, alert: 'Please check email and password.'
|
9
18
|
end
|
10
19
|
end
|
11
20
|
|
12
21
|
def logout
|
13
|
-
session.delete :return_to
|
14
22
|
session.delete :user_id
|
23
|
+
set_current_user
|
15
24
|
|
16
|
-
|
25
|
+
if respond_to? :on_logout
|
26
|
+
on_logout
|
27
|
+
else
|
28
|
+
redirect_to :back
|
29
|
+
end
|
17
30
|
end
|
18
|
-
end
|
19
31
|
|
32
|
+
def signup
|
33
|
+
user = User.new
|
34
|
+
user.email = params[:email]
|
35
|
+
user.password = params[:password]
|
36
|
+
|
37
|
+
if user.save
|
38
|
+
session[:user_id] = user.id
|
39
|
+
set_current_user
|
40
|
+
|
41
|
+
if respond_to? :on_signup
|
42
|
+
on_signup
|
43
|
+
else
|
44
|
+
redirect_to :back
|
45
|
+
end
|
46
|
+
else
|
47
|
+
redirect_to :back, alert: 'Please check email and password.'
|
48
|
+
end
|
49
|
+
end
|
50
|
+
end
|
data/app/models/user.rb
CHANGED
@@ -4,7 +4,7 @@ class User < ActiveRecord::Base
|
|
4
4
|
has_secure_password
|
5
5
|
|
6
6
|
before_validation { |user| user.password = Random.password if user.password.nil? }
|
7
|
-
|
7
|
+
validates :email, presence: true, uniqueness: true, email: true
|
8
8
|
end
|
9
9
|
|
10
10
|
app_model = File.join Rails.root, 'app/models/user.rb'
|
@@ -0,0 +1,11 @@
|
|
1
|
+
# Adapted from http://my.rails-royce.org/2010/07/21/email-validation-in-ruby-on-rails-without-regexp/
|
2
|
+
|
3
|
+
require 'mail'
|
4
|
+
|
5
|
+
class EmailValidator < ActiveModel::EachValidator
|
6
|
+
def validate_each(record, attribute, value)
|
7
|
+
email = Mail::Address.new(value)
|
8
|
+
valid = email.domain && email.address == value && email.__send__(:tree).domain.dot_atom_text.elements.size > 1 rescue false
|
9
|
+
record.errors[attribute] << (options[:message] || 'is malformed') unless valid
|
10
|
+
end
|
11
|
+
end
|
data/config/routes.rb
CHANGED
@@ -1,4 +1,5 @@
|
|
1
1
|
Rails.application.routes.draw do
|
2
|
-
match
|
3
|
-
match
|
2
|
+
match 'login' => 'users#login', :via => :post
|
3
|
+
match 'logout' => 'users#logout', :via => :get
|
4
|
+
match 'signup' => 'users#signup', :via => :post
|
4
5
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: user_authentication
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0
|
4
|
+
version: 0.1.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Sujoy Gupta
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2013-09-
|
11
|
+
date: 2013-09-25 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rails
|
@@ -16,14 +16,14 @@ dependencies:
|
|
16
16
|
requirements:
|
17
17
|
- - ~>
|
18
18
|
- !ruby/object:Gem::Version
|
19
|
-
version: 3.2.
|
19
|
+
version: 3.2.12
|
20
20
|
type: :runtime
|
21
21
|
prerelease: false
|
22
22
|
version_requirements: !ruby/object:Gem::Requirement
|
23
23
|
requirements:
|
24
24
|
- - ~>
|
25
25
|
- !ruby/object:Gem::Version
|
26
|
-
version: 3.2.
|
26
|
+
version: 3.2.12
|
27
27
|
- !ruby/object:Gem::Dependency
|
28
28
|
name: bcrypt-ruby
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|
@@ -56,16 +56,16 @@ dependencies:
|
|
56
56
|
name: rspec-rails
|
57
57
|
requirement: !ruby/object:Gem::Requirement
|
58
58
|
requirements:
|
59
|
-
- -
|
59
|
+
- - ~>
|
60
60
|
- !ruby/object:Gem::Version
|
61
|
-
version:
|
61
|
+
version: 2.14.0
|
62
62
|
type: :development
|
63
63
|
prerelease: false
|
64
64
|
version_requirements: !ruby/object:Gem::Requirement
|
65
65
|
requirements:
|
66
|
-
- -
|
66
|
+
- - ~>
|
67
67
|
- !ruby/object:Gem::Version
|
68
|
-
version:
|
68
|
+
version: 2.14.0
|
69
69
|
- !ruby/object:Gem::Dependency
|
70
70
|
name: factory_girl_rails
|
71
71
|
requirement: !ruby/object:Gem::Requirement
|
@@ -95,33 +95,33 @@ dependencies:
|
|
95
95
|
- !ruby/object:Gem::Version
|
96
96
|
version: 0.0.1
|
97
97
|
- !ruby/object:Gem::Dependency
|
98
|
-
name:
|
98
|
+
name: shoulda-matchers
|
99
99
|
requirement: !ruby/object:Gem::Requirement
|
100
100
|
requirements:
|
101
|
-
- -
|
101
|
+
- - '>='
|
102
102
|
- !ruby/object:Gem::Version
|
103
|
-
version: 0
|
103
|
+
version: '0'
|
104
104
|
type: :development
|
105
105
|
prerelease: false
|
106
106
|
version_requirements: !ruby/object:Gem::Requirement
|
107
107
|
requirements:
|
108
|
-
- -
|
108
|
+
- - '>='
|
109
109
|
- !ruby/object:Gem::Version
|
110
|
-
version: 0
|
110
|
+
version: '0'
|
111
111
|
- !ruby/object:Gem::Dependency
|
112
|
-
name: specstar-
|
112
|
+
name: specstar-controllers
|
113
113
|
requirement: !ruby/object:Gem::Requirement
|
114
114
|
requirements:
|
115
115
|
- - ~>
|
116
116
|
- !ruby/object:Gem::Version
|
117
|
-
version: 0.0.
|
117
|
+
version: 0.0.9
|
118
118
|
type: :development
|
119
119
|
prerelease: false
|
120
120
|
version_requirements: !ruby/object:Gem::Requirement
|
121
121
|
requirements:
|
122
122
|
- - ~>
|
123
123
|
- !ruby/object:Gem::Version
|
124
|
-
version: 0.0.
|
124
|
+
version: 0.0.9
|
125
125
|
- !ruby/object:Gem::Dependency
|
126
126
|
name: webrat
|
127
127
|
requirement: !ruby/object:Gem::Requirement
|
@@ -147,13 +147,13 @@ files:
|
|
147
147
|
- app/controllers/users_controller.rb
|
148
148
|
- app/helpers/application_helper.rb
|
149
149
|
- app/models/user.rb
|
150
|
+
- app/validators/email_validator.rb
|
150
151
|
- app/views/users/_login.html.erb
|
151
152
|
- config/routes.rb
|
152
153
|
- db/migrate/20121009010000_create_users.rb
|
153
154
|
- lib/random.rb
|
154
155
|
- lib/tasks/user_authentication_tasks.rake
|
155
156
|
- lib/user_authentication/version.rb
|
156
|
-
- lib/user_authentication/version.rb~
|
157
157
|
- lib/user_authentication.rb
|
158
158
|
- MIT-LICENSE
|
159
159
|
- Rakefile
|