refinerycms-authentication 2.0.10 → 2.1.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (54) hide show
  1. checksums.yaml +4 -4
  2. data/app/controllers/refinery/admin/users_controller.rb +82 -54
  3. data/app/controllers/refinery/passwords_controller.rb +1 -1
  4. data/app/controllers/refinery/users_controller.rb +1 -1
  5. data/app/models/refinery/user.rb +28 -9
  6. data/app/views/refinery/admin/users/_actions.html.erb +3 -0
  7. data/app/views/refinery/admin/users/_form.html.erb +6 -4
  8. data/app/views/refinery/admin/users/_records.html.erb +7 -0
  9. data/app/views/refinery/passwords/edit.html.erb +1 -1
  10. data/app/views/refinery/users/new.html.erb +1 -1
  11. data/config/locales/bg.yml +1 -1
  12. data/config/locales/cs.yml +3 -3
  13. data/config/locales/da.yml +1 -1
  14. data/config/locales/de.yml +1 -1
  15. data/config/locales/el.yml +1 -1
  16. data/config/locales/en.yml +3 -2
  17. data/config/locales/es.yml +1 -1
  18. data/config/locales/fi.yml +1 -1
  19. data/config/locales/fr.yml +1 -1
  20. data/config/locales/hu.yml +72 -0
  21. data/config/locales/it.yml +1 -1
  22. data/config/locales/ja.yml +1 -1
  23. data/config/locales/ko.yml +2 -2
  24. data/config/locales/lt.yml +1 -1
  25. data/config/locales/lv.yml +1 -1
  26. data/config/locales/nb.yml +1 -1
  27. data/config/locales/nl.yml +37 -35
  28. data/config/locales/pl.yml +7 -3
  29. data/config/locales/pt-BR.yml +1 -1
  30. data/config/locales/pt.yml +72 -0
  31. data/config/locales/rs.yml +1 -1
  32. data/config/locales/ru.yml +1 -1
  33. data/config/locales/sk.yml +9 -9
  34. data/config/locales/sl.yml +1 -1
  35. data/config/locales/sv.yml +1 -1
  36. data/config/locales/tr.yml +72 -0
  37. data/config/locales/uk.yml +98 -0
  38. data/config/locales/vi.yml +1 -1
  39. data/config/locales/zh-CN.yml +5 -5
  40. data/config/locales/zh-TW.yml +1 -1
  41. data/config/routes.rb +9 -11
  42. data/db/migrate/20120301234455_add_slug_to_refinery_users.rb +7 -0
  43. data/lib/refinery/authenticated_system.rb +1 -1
  44. data/lib/refinery/authentication.rb +1 -0
  45. data/lib/refinery/authentication/devise.rb +0 -7
  46. data/lib/refinery/authentication/engine.rb +3 -4
  47. data/refinerycms-authentication.gemspec +4 -4
  48. data/spec/controllers/refinery/admin/users_controller_spec.rb +14 -5
  49. data/spec/factories/user.rb +2 -2
  50. data/spec/{requests → features}/refinery/admin/users_spec.rb +10 -10
  51. data/spec/{requests → features}/refinery/passwords_spec.rb +1 -1
  52. data/spec/{requests → features}/refinery/sessions_spec.rb +12 -11
  53. data/spec/models/refinery/user_spec.rb +57 -10
  54. metadata +29 -18
@@ -1,17 +1,17 @@
1
1
  require "spec_helper"
2
2
 
3
- describe "manage users" do
4
- login_refinery_superuser
3
+ describe "User admin page" do
4
+ refinery_login_with :refinery_superuser
5
5
 
6
6
  describe "new/create" do
7
7
  def visit_and_fill_form
8
8
  visit refinery.admin_users_path
9
9
  click_link "Add new user"
10
10
 
11
- fill_in "Username", :with => "test"
12
- fill_in "Email", :with => "test@refinerycms.com"
13
- fill_in "Password", :with => "123456"
14
- fill_in "Password confirmation", :with => "123456"
11
+ fill_in "user[username]", :with => "test"
12
+ fill_in "user[email]", :with => "test@refinerycms.com"
13
+ fill_in "user[password]", :with => "123456"
14
+ fill_in "user[password_confirmation]", :with => "123456"
15
15
  end
16
16
 
17
17
  it "can create a user" do
@@ -43,7 +43,7 @@ describe "manage users" do
43
43
  end
44
44
 
45
45
  describe "edit/update" do
46
- it "allows to update user" do
46
+ it "can update a user" do
47
47
  visit refinery.admin_users_path
48
48
  click_link "Edit this user"
49
49
 
@@ -73,14 +73,14 @@ describe "manage users" do
73
73
  describe "destroy" do
74
74
  let!(:user) { FactoryGirl.create(:user, :username => "ugisozols") }
75
75
 
76
- it "allows to destroy only regular user" do
76
+ it "can only destroy regular users" do
77
77
  visit refinery.admin_users_path
78
78
  page.should have_selector("a[href='/refinery/users/#{user.username}']")
79
- page.should have_no_selector("a[href='/refinery/users/refinerycms']")
79
+ page.should have_no_selector("a[href='/refinery/users/#{logged_in_user.username}']")
80
80
 
81
81
  click_link "Remove this user"
82
82
  page.should have_content("'#{user.username}' was successfully removed.")
83
- page.should have_content("refinerycms (refinerycms@refinerycms.com)")
83
+ page.should have_content("#{logged_in_user.username} (#{logged_in_user.email})")
84
84
  end
85
85
  end
86
86
  end
@@ -6,7 +6,7 @@ module Refinery
6
6
  let!(:user) { FactoryGirl.create(:refinery_user, :email => "refinery@refinerycms.com") }
7
7
 
8
8
  it "asks user to specify email address" do
9
- visit refinery.new_refinery_user_session_path
9
+ visit refinery.login_path
10
10
  click_link "I forgot my password"
11
11
  page.should have_content("Please enter the email address for your account.")
12
12
  end
@@ -8,9 +8,10 @@ module Refinery
8
8
 
9
9
  before do
10
10
  FactoryGirl.create(:refinery_user, :username => "ugisozols",
11
- :password => "123456",
12
- :password_confirmation => "123456")
13
- visit login_path
11
+ :password => "123456",
12
+ :password_confirmation => "123456")
13
+
14
+ visit refinery.login_path
14
15
  end
15
16
 
16
17
  it "shows login form" do
@@ -21,7 +22,7 @@ module Refinery
21
22
 
22
23
  context "when supplied data is valid" do
23
24
  it "logs in user" do
24
- fill_in "Login", :with => "ugisozols"
25
+ fill_in "Username or email", :with => "ugisozols"
25
26
  fill_in "Password", :with => "123456"
26
27
  click_button "Sign in"
27
28
  page.should have_content("Signed in successfully.")
@@ -31,7 +32,7 @@ module Refinery
31
32
 
32
33
  context "when supplied data is not valid" do
33
34
  it "shows flash error" do
34
- fill_in "Login", :with => "Hmmm"
35
+ fill_in "Username or email", :with => "Hmmm"
35
36
  fill_in "Password", :with => "Hmmm"
36
37
  click_button "Sign in"
37
38
  page.should have_content("Sorry, your login or password was incorrect.")
@@ -48,14 +49,14 @@ module Refinery
48
49
  describe 'when there are no users' do
49
50
  it 'allows user creation' do
50
51
  # Verify that we can access the sign up page.
51
- visit refinery.root_path
52
+ visit refinery.admin_root_path
52
53
  page.should have_content("There are no users yet, so we'll set you up first")
53
54
 
54
55
  # Fill in user details.
55
- fill_in 'Username', :with => 'rspec'
56
- fill_in 'Email', :with => 'rspec@example.com'
57
- fill_in 'Password', :with => 'spectacular'
58
- fill_in 'Password confirmation', :with => 'spectacular'
56
+ fill_in 'user[username]', :with => 'rspec'
57
+ fill_in 'user[email]', :with => 'rspec@example.com'
58
+ fill_in 'user[password]', :with => 'spectacular'
59
+ fill_in 'user[password_confirmation]', :with => 'spectacular'
59
60
 
60
61
  # Sign up and verify!
61
62
  click_button "Sign up"
@@ -92,7 +93,7 @@ module Refinery
92
93
  end
93
94
 
94
95
  it "redirects to the protected path on login" do
95
- fill_in "Login", :with => "ugisozols"
96
+ fill_in "Username or email", :with => "ugisozols"
96
97
  fill_in "Password", :with => "123456"
97
98
  page.click_button "Sign in"
98
99
  current_path.should == protected_path
@@ -51,7 +51,7 @@ module Refinery
51
51
  context "validations" do
52
52
  # email and password validations are done by including devises validatable
53
53
  # module so those validations are not tested here
54
- let(:attr) do
54
+ let(:attributes) do
55
55
  {
56
56
  :username => "Refinery CMS",
57
57
  :email => "refinery@cms.com",
@@ -61,17 +61,28 @@ module Refinery
61
61
  end
62
62
 
63
63
  it "requires username" do
64
- User.new(attr.merge(:username => "")).should_not be_valid
64
+ User.new(attributes.merge(:username => "")).should_not be_valid
65
65
  end
66
66
 
67
67
  it "rejects duplicate usernames" do
68
- User.create!(attr)
69
- User.new(attr.merge(:email => "another@email.com")).should_not be_valid
68
+ User.create!(attributes)
69
+ User.new(attributes.merge(:email => "another@email.com")).should_not be_valid
70
70
  end
71
71
 
72
72
  it "rejects duplicate usernames regardless of case" do
73
- User.create!(attr)
74
- User.new(attr.merge(:username => attr[:username].upcase, :email => "another@email.com")).should_not be_valid
73
+ User.create!(attributes)
74
+ User.new(attributes.merge(
75
+ :username => attributes[:username].upcase,
76
+ :email => "another@email.com")
77
+ ).should_not be_valid
78
+ end
79
+
80
+ it "rejects duplicate usernames regardless of whitespace" do
81
+ User.create!(attributes)
82
+ new_user = User.new(attributes.merge(:username => " Refinery CMS "))
83
+ new_user.valid?
84
+ new_user.username.should == 'refinery cms'
85
+ new_user.should_not be_valid
75
86
  end
76
87
  end
77
88
 
@@ -152,10 +163,46 @@ module Refinery
152
163
  end
153
164
 
154
165
  describe "#plugins=" do
155
- it "assigns plugins to user" do
156
- plugin_list = ["refinery_one", "refinery_two", "refinery_three"]
157
- user.plugins = plugin_list
158
- user.plugins.collect { |p| p.name }.should == plugin_list
166
+ context "when user is not persisted" do
167
+ it "does not add plugins for this user" do
168
+ new_user = FactoryGirl.build(:user)
169
+ new_user.plugins = ["test"]
170
+ new_user.plugins.should be_empty
171
+ end
172
+ end
173
+
174
+ context "when user is persisted" do
175
+ it "only assigns plugins with names that are of string type" do
176
+ user.plugins = [1, :test, false, "refinery_one"]
177
+ user.plugins.collect(&:name).should eq(["refinery_one"])
178
+ end
179
+
180
+ it "won't raise exception if plugins position is not a number" do
181
+ Refinery::UserPlugin.create! :name => "refinery_one", :user_id => user.id
182
+
183
+ expect { user.plugins = ["refinery_one", "refinery_two"] }.to_not raise_error
184
+ end
185
+
186
+ context "when no plugins assigned" do
187
+ it "assigns them to user" do
188
+ user.plugins.should eq([])
189
+
190
+ plugin_list = ["refinery_one", "refinery_two", "refinery_three"]
191
+ user.plugins = plugin_list
192
+ user.plugins.collect(&:name).should eq(plugin_list)
193
+ end
194
+ end
195
+
196
+ context "when plugins are already assigned" do
197
+ it "only adds new ones and deletes ones that are not used" do
198
+ user.plugins = ["refinery_one", "refinery_two", "refinery_three"]
199
+ new_plugin_list = ["refinery_one", "refinery_two", "refinery_four"]
200
+
201
+ user.plugins = new_plugin_list
202
+ user.plugins.reload
203
+ user.plugins.collect(&:name).should eq(new_plugin_list)
204
+ end
205
+ end
159
206
  end
160
207
  end
161
208
 
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: refinerycms-authentication
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.0.10
4
+ version: 2.1.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Philip Arndt
@@ -10,7 +10,7 @@ authors:
10
10
  autorequire:
11
11
  bindir: bin
12
12
  cert_chain: []
13
- date: 2013-03-14 00:00:00.000000000 Z
13
+ date: 2013-08-05 00:00:00.000000000 Z
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
16
16
  name: refinerycms-core
@@ -18,42 +18,48 @@ dependencies:
18
18
  requirements:
19
19
  - - '='
20
20
  - !ruby/object:Gem::Version
21
- version: 2.0.10
21
+ version: 2.1.0
22
22
  type: :runtime
23
23
  prerelease: false
24
24
  version_requirements: !ruby/object:Gem::Requirement
25
25
  requirements:
26
26
  - - '='
27
27
  - !ruby/object:Gem::Version
28
- version: 2.0.10
28
+ version: 2.1.0
29
29
  - !ruby/object:Gem::Dependency
30
- name: devise
30
+ name: actionmailer
31
31
  requirement: !ruby/object:Gem::Requirement
32
32
  requirements:
33
- - - ~>
33
+ - - '>='
34
+ - !ruby/object:Gem::Version
35
+ version: 3.1.3
36
+ - - <
34
37
  - !ruby/object:Gem::Version
35
- version: 2.0.5
38
+ version: '3.3'
36
39
  type: :runtime
37
40
  prerelease: false
38
41
  version_requirements: !ruby/object:Gem::Requirement
39
42
  requirements:
40
- - - ~>
43
+ - - '>='
44
+ - !ruby/object:Gem::Version
45
+ version: 3.1.3
46
+ - - <
41
47
  - !ruby/object:Gem::Version
42
- version: 2.0.5
48
+ version: '3.3'
43
49
  - !ruby/object:Gem::Dependency
44
- name: orm_adapter
50
+ name: devise
45
51
  requirement: !ruby/object:Gem::Requirement
46
52
  requirements:
47
53
  - - ~>
48
54
  - !ruby/object:Gem::Version
49
- version: 0.0.7
55
+ version: 2.2.3
50
56
  type: :runtime
51
57
  prerelease: false
52
58
  version_requirements: !ruby/object:Gem::Requirement
53
59
  requirements:
54
60
  - - ~>
55
61
  - !ruby/object:Gem::Version
56
- version: 0.0.7
62
+ version: 2.2.3
57
63
  description: The default authentication extension for Refinery CMS
58
64
  email: info@refinerycms.com
59
65
  executables: []
@@ -98,6 +104,7 @@ files:
98
104
  - config/locales/es.yml
99
105
  - config/locales/fi.yml
100
106
  - config/locales/fr.yml
107
+ - config/locales/hu.yml
101
108
  - config/locales/it.yml
102
109
  - config/locales/ja.yml
103
110
  - config/locales/ko.yml
@@ -107,16 +114,20 @@ files:
107
114
  - config/locales/nl.yml
108
115
  - config/locales/pl.yml
109
116
  - config/locales/pt-BR.yml
117
+ - config/locales/pt.yml
110
118
  - config/locales/rs.yml
111
119
  - config/locales/ru.yml
112
120
  - config/locales/sk.yml
113
121
  - config/locales/sl.yml
114
122
  - config/locales/sv.yml
123
+ - config/locales/tr.yml
124
+ - config/locales/uk.yml
115
125
  - config/locales/vi.yml
116
126
  - config/locales/zh-CN.yml
117
127
  - config/locales/zh-TW.yml
118
128
  - config/routes.rb
119
129
  - db/migrate/20100913234705_create_refinerycms_authentication_schema.rb
130
+ - db/migrate/20120301234455_add_slug_to_refinery_users.rb
120
131
  - lib/generators/refinery/authentication/authentication_generator.rb
121
132
  - lib/generators/refinery/authentication/templates/config/initializers/refinery/authentication.rb.erb
122
133
  - lib/refinery/authenticated_system.rb
@@ -129,10 +140,10 @@ files:
129
140
  - refinerycms-authentication.gemspec
130
141
  - spec/controllers/refinery/admin/users_controller_spec.rb
131
142
  - spec/factories/user.rb
143
+ - spec/features/refinery/admin/users_spec.rb
144
+ - spec/features/refinery/passwords_spec.rb
145
+ - spec/features/refinery/sessions_spec.rb
132
146
  - spec/models/refinery/user_spec.rb
133
- - spec/requests/refinery/admin/users_spec.rb
134
- - spec/requests/refinery/passwords_spec.rb
135
- - spec/requests/refinery/sessions_spec.rb
136
147
  homepage: http://refinerycms.com
137
148
  licenses:
138
149
  - MIT
@@ -160,7 +171,7 @@ summary: Authentication extension for Refinery CMS
160
171
  test_files:
161
172
  - spec/controllers/refinery/admin/users_controller_spec.rb
162
173
  - spec/factories/user.rb
174
+ - spec/features/refinery/admin/users_spec.rb
175
+ - spec/features/refinery/passwords_spec.rb
176
+ - spec/features/refinery/sessions_spec.rb
163
177
  - spec/models/refinery/user_spec.rb
164
- - spec/requests/refinery/admin/users_spec.rb
165
- - spec/requests/refinery/passwords_spec.rb
166
- - spec/requests/refinery/sessions_spec.rb