gennaro 0.2 → 0.2.1
Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: e4d5143a79ab2cf7e6e3ccb6dea61bd0b7290de0
|
4
|
+
data.tar.gz: 462d31e7772aac3b15b27a2f7631b638f8101e7c
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 7a5f52841341d2b93d7c48b14e0eb44811bb0ea4afa1cc25dd1e07483d5970f4f00086eb208145106f663f0e74a1e59714fce38d33c3ba76adb6eeecfc75f9d1
|
7
|
+
data.tar.gz: 2b9cecbeca7b065ae60cbad34e2d54a7da2d399efd84c79a13d48732f605366b188d9e8b378ca2d82408c04fb6f8ce39d9f8aad52a8bee8f3cbc48f8f9b4f652
|
data/lib/gennaro/version.rb
CHANGED
@@ -0,0 +1,86 @@
|
|
1
|
+
#--
|
2
|
+
# DO WHAT THE FUCK YOU WANT TO PUBLIC LICENSE
|
3
|
+
# Version 2, December 2004
|
4
|
+
#
|
5
|
+
# DO WHAT THE FUCK YOU WANT TO PUBLIC LICENSE
|
6
|
+
# TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
|
7
|
+
#
|
8
|
+
# 0. You just DO WHAT THE FUCK YOU WANT TO.
|
9
|
+
#++
|
10
|
+
|
11
|
+
class ${ClassName}
|
12
|
+
post '/user/login/?' do
|
13
|
+
if logged_in?
|
14
|
+
return 'You are already logged in.'
|
15
|
+
end
|
16
|
+
|
17
|
+
if User.login params[:username], params[:password]
|
18
|
+
'Login successful.'
|
19
|
+
else
|
20
|
+
'Login failed.'
|
21
|
+
end
|
22
|
+
end
|
23
|
+
|
24
|
+
post '/user/logout/?' do
|
25
|
+
if logged_in?
|
26
|
+
current_user.logout!
|
27
|
+
'Logout successful.'
|
28
|
+
else
|
29
|
+
'You are not logged in.'
|
30
|
+
end
|
31
|
+
end
|
32
|
+
|
33
|
+
post '/user/signup/?' do
|
34
|
+
if logged_in?
|
35
|
+
return 'You are already logged in.'
|
36
|
+
end
|
37
|
+
|
38
|
+
if User.exists? params[:username]
|
39
|
+
'The username you have chosen is already taken.'
|
40
|
+
else
|
41
|
+
user = User.new params[:username], params[:email], params[:password], User.user
|
42
|
+
if user.errors.any?
|
43
|
+
user.errors.first
|
44
|
+
else
|
45
|
+
'Sign up successful.'
|
46
|
+
end
|
47
|
+
end
|
48
|
+
end
|
49
|
+
|
50
|
+
post '/user/lost_password/?' do
|
51
|
+
if logged_in?
|
52
|
+
return 'You are already logged in.'
|
53
|
+
end
|
54
|
+
|
55
|
+
if User.exists? params[:username]
|
56
|
+
User.lost_password params[:username]
|
57
|
+
else
|
58
|
+
'The given username doesn\'t exists.'
|
59
|
+
end
|
60
|
+
end
|
61
|
+
|
62
|
+
post '/user/password_recovery/?' do
|
63
|
+
if logged_in?
|
64
|
+
return 'You are already logged in.'
|
65
|
+
end
|
66
|
+
|
67
|
+
if User.password_recovery params[:username], params[:passcode], params[:password]
|
68
|
+
'Password set successful.'
|
69
|
+
else
|
70
|
+
'Error setting the password.'
|
71
|
+
end
|
72
|
+
end
|
73
|
+
|
74
|
+
post '/user/new_password/?' do
|
75
|
+
unless logged_in?
|
76
|
+
return 'You need to log in.'
|
77
|
+
end
|
78
|
+
|
79
|
+
user = current_user.new_password params[:curr_password], params[:password]
|
80
|
+
if user
|
81
|
+
'Your new password has been set.'
|
82
|
+
else
|
83
|
+
'Error setting your new password.'
|
84
|
+
end
|
85
|
+
end
|
86
|
+
end
|
@@ -72,6 +72,12 @@ class User
|
|
72
72
|
self.session = ''
|
73
73
|
true
|
74
74
|
end
|
75
|
+
alias_method :logout!, :logout
|
76
|
+
|
77
|
+
def new_password(curr_password, password)
|
78
|
+
return false unless self.salted_password == BCrypt::Engine.hash_secret(curr_password, self.salt)
|
79
|
+
self.password = password
|
80
|
+
end
|
75
81
|
|
76
82
|
class << self
|
77
83
|
def banned
|
@@ -126,8 +132,9 @@ class User
|
|
126
132
|
false
|
127
133
|
end
|
128
134
|
end
|
129
|
-
alias_method :login,
|
130
|
-
alias_method :signin,
|
135
|
+
alias_method :login, :authentication
|
136
|
+
alias_method :signin, :authentication
|
137
|
+
alias_method :authenticate, :authentication
|
131
138
|
|
132
139
|
def logout(username)
|
133
140
|
user = User.first(:username => username)
|
@@ -135,6 +142,7 @@ class User
|
|
135
142
|
user.update(:session => '')
|
136
143
|
user.session.empty?
|
137
144
|
end
|
145
|
+
alias_method :logout!, :logout
|
138
146
|
|
139
147
|
def logged?(username, session)
|
140
148
|
User.count(:username => username, :session => session) == 1
|
@@ -160,5 +168,12 @@ class User
|
|
160
168
|
:password => password
|
161
169
|
})
|
162
170
|
end
|
171
|
+
|
172
|
+
def new_password(username, curr_password, password)
|
173
|
+
user = User.first(:username => username)
|
174
|
+
return false unless user
|
175
|
+
return false unless user.salted_password == BCrypt::Engine.hash_secret(curr_password, user.salt)
|
176
|
+
user.update(:password => password)
|
177
|
+
end
|
163
178
|
end
|
164
179
|
end
|
@@ -60,4 +60,14 @@ describe 'App' do
|
|
60
60
|
|
61
61
|
User.login(username, new_password).should be_true
|
62
62
|
end
|
63
|
+
|
64
|
+
it 'set a new password' do
|
65
|
+
username = 'Gennaro'
|
66
|
+
curr_password = 'sonounnuovobullo!'
|
67
|
+
password = 'sonopropriounbullo!'
|
68
|
+
|
69
|
+
User.login(username, curr_password).should be_true
|
70
|
+
User.new_password(username, curr_password, password).should be_true
|
71
|
+
User.login(username, password).should be_true
|
72
|
+
end
|
63
73
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: gennaro
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version:
|
4
|
+
version: 0.2.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Giovanni Capuano
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2013-12-
|
11
|
+
date: 2013-12-16 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rspec
|
@@ -50,6 +50,7 @@ files:
|
|
50
50
|
- lib/gennaro/gennaro.rb
|
51
51
|
- lib/gennaro/version.rb
|
52
52
|
- lib/gennaro.rb
|
53
|
+
- templates/authentication/app/controllers/users.rb
|
53
54
|
- templates/authentication/app/helpers/cookie.rb
|
54
55
|
- templates/authentication/app/helpers/csrf.rb
|
55
56
|
- templates/authentication/app/helpers/user.rb
|