muck-users 0.3.9 → 0.3.10
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/VERSION +1 -1
- data/app/controllers/admin/muck/users_controller.rb +1 -1
- data/app/controllers/muck/user_sessions_controller.rb +23 -9
- data/app/controllers/muck/users_controller.rb +8 -3
- data/app/views/admin/users/index.csv.erb +7 -0
- data/app/views/admin/users/index.html.erb +1 -0
- data/muck-users.gemspec +4 -3
- data/test/rails_root/test/functional/admin/users_controller_test.rb +13 -4
- data/test/rails_root/test/functional/users_controller_test.rb +64 -23
- data/test/rails_root/test/unit/user_test.rb +1 -1
- metadata +43 -25
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.3.
|
1
|
+
0.3.10
|
@@ -16,7 +16,7 @@ class Admin::Muck::UsersController < Admin::Muck::BaseController
|
|
16
16
|
@users = User.find(:all)
|
17
17
|
headers["Content-Type"] = 'text/csv'
|
18
18
|
headers["Content-Disposition"] = "attachment; filename=\"users.csv\""
|
19
|
-
render :layout => false
|
19
|
+
render :template => 'admin/users/index', :layout => false
|
20
20
|
end
|
21
21
|
end
|
22
22
|
end
|
@@ -26,7 +26,23 @@ class Muck::UserSessionsController < ApplicationController
|
|
26
26
|
@title = t('muck.users.sign_in_title')
|
27
27
|
@user_session = UserSession.new(params[:user_session])
|
28
28
|
@user_session.save do |result|
|
29
|
-
|
29
|
+
after_create_response(result)
|
30
|
+
end
|
31
|
+
end
|
32
|
+
|
33
|
+
def destroy
|
34
|
+
@title = t('muck.users.sign_out_title')
|
35
|
+
current_user_session.destroy
|
36
|
+
flash[:notice] = t('muck.users.login_out_success')
|
37
|
+
respond_to do |format|
|
38
|
+
format.html { redirect_to logout_complete_path }
|
39
|
+
end
|
40
|
+
end
|
41
|
+
|
42
|
+
protected
|
43
|
+
|
44
|
+
def after_create_response(success)
|
45
|
+
if success
|
30
46
|
flash[:notice] = t('muck.users.login_success')
|
31
47
|
respond_to do |format|
|
32
48
|
format.html { redirect_back_or_default user_path(@user_session.user) }
|
@@ -38,14 +54,12 @@ class Muck::UserSessionsController < ApplicationController
|
|
38
54
|
end
|
39
55
|
end
|
40
56
|
end
|
41
|
-
end
|
42
57
|
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
-
format.html { redirect_to logout_complete_path }
|
58
|
+
# override redirect by adding :redirect_to as a hidden field in your form or as a url param
|
59
|
+
def after_destroy_response
|
60
|
+
respond_to do |format|
|
61
|
+
format.html { redirect_to logout_complete_path }
|
62
|
+
end
|
49
63
|
end
|
50
|
-
|
64
|
+
|
51
65
|
end
|
@@ -146,6 +146,7 @@ class Muck::UsersController < ApplicationController
|
|
146
146
|
respond_to do |format|
|
147
147
|
format.html { render :template => "users/#{template}" }
|
148
148
|
format.xml { render :xml => @user }
|
149
|
+
format.json { render :json => { :success => true, :user => @user.as_json } }
|
149
150
|
end
|
150
151
|
end
|
151
152
|
|
@@ -154,11 +155,13 @@ class Muck::UsersController < ApplicationController
|
|
154
155
|
respond_to do |format|
|
155
156
|
format.html { redirect_to local_uri }
|
156
157
|
format.xml { render :xml => @user, :status => :created, :location => user_url(@user) }
|
158
|
+
format.json { render :json => { :success => true, :user => @user.as_json } }
|
157
159
|
end
|
158
160
|
else
|
159
161
|
respond_to do |format|
|
160
162
|
format.html { render :template => "users/new" }
|
161
163
|
format.xml { render :xml => @user.errors, :status => :unprocessable_entity }
|
164
|
+
format.json { render :json => { :success => false, :user => @user.as_json } }
|
162
165
|
end
|
163
166
|
end
|
164
167
|
end
|
@@ -265,6 +268,7 @@ class Muck::UsersController < ApplicationController
|
|
265
268
|
respond_to do |format|
|
266
269
|
format.html { render :template => 'users/edit' }
|
267
270
|
format.xml { render :xml => @user.errors, :status => :unprocessable_entity }
|
271
|
+
format.json { render :json => { :success => success, :user => @user.as_json, :errors => @user.errors.as_json } }
|
268
272
|
end
|
269
273
|
end
|
270
274
|
end
|
@@ -279,15 +283,16 @@ class Muck::UsersController < ApplicationController
|
|
279
283
|
end
|
280
284
|
end
|
281
285
|
format.xml { head :ok }
|
286
|
+
format.json { render :json => { :success => true } }
|
282
287
|
end
|
283
288
|
end
|
284
289
|
|
285
290
|
def permission_denied
|
286
291
|
flash[:notice] = t('muck.users.permission_denied')
|
287
292
|
respond_to do |format|
|
288
|
-
format.html
|
289
|
-
|
290
|
-
|
293
|
+
format.html { redirect_to user_path(current_user) }
|
294
|
+
format.xml { render :xml => t('muck.users.permission_denied'), :status => :unprocessable_entity }
|
295
|
+
format.json { render :json => { :message => t('muck.users.permission_denied') } }
|
291
296
|
end
|
292
297
|
end
|
293
298
|
|
@@ -0,0 +1,7 @@
|
|
1
|
+
login,email,first_name,last_name,login_count,last_login_at,created_at
|
2
|
+
<% @users.each do |user|
|
3
|
+
fields = [user.login, user.email, user.first_name, user.last_name,
|
4
|
+
user.login_count, user.last_login_at, user.created_at
|
5
|
+
] -%>
|
6
|
+
<%= fields.map {|value| "\"#{value}\""}.join(",") %>
|
7
|
+
<% end -%>
|
data/muck-users.gemspec
CHANGED
@@ -5,11 +5,11 @@
|
|
5
5
|
|
6
6
|
Gem::Specification.new do |s|
|
7
7
|
s.name = %q{muck-users}
|
8
|
-
s.version = "0.3.
|
8
|
+
s.version = "0.3.10"
|
9
9
|
|
10
10
|
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
11
11
|
s.authors = ["Justin Ball", "Joel Duffin"]
|
12
|
-
s.date = %q{2010-
|
12
|
+
s.date = %q{2010-03-05}
|
13
13
|
s.description = %q{Easily add user signup, login and other features to your application}
|
14
14
|
s.email = %q{justin@tatemae.com}
|
15
15
|
s.extra_rdoc_files = [
|
@@ -66,6 +66,7 @@ Gem::Specification.new do |s|
|
|
66
66
|
"app/views/admin/users/edit.html.erb",
|
67
67
|
"app/views/admin/users/inactive.html.erb",
|
68
68
|
"app/views/admin/users/inactive_emails.html.erb",
|
69
|
+
"app/views/admin/users/index.csv.erb",
|
69
70
|
"app/views/admin/users/index.html.erb",
|
70
71
|
"app/views/admin/users/permissions.html.erb",
|
71
72
|
"app/views/admin/users/row.js.erb",
|
@@ -1316,7 +1317,7 @@ Gem::Specification.new do |s|
|
|
1316
1317
|
s.rdoc_options = ["--charset=UTF-8"]
|
1317
1318
|
s.require_paths = ["lib"]
|
1318
1319
|
s.rubyforge_project = %q{muck-users}
|
1319
|
-
s.rubygems_version = %q{1.3.
|
1320
|
+
s.rubygems_version = %q{1.3.6}
|
1320
1321
|
s.summary = %q{Easy to use user engine for Rails}
|
1321
1322
|
s.test_files = [
|
1322
1323
|
"test/rails_root/app/controllers/application_controller.rb",
|
@@ -26,11 +26,20 @@ class Admin::Muck::UsersControllerTest < ActionController::TestCase
|
|
26
26
|
end
|
27
27
|
|
28
28
|
context "GET index" do
|
29
|
-
|
30
|
-
|
29
|
+
context "html" do
|
30
|
+
setup do
|
31
|
+
get :index
|
32
|
+
end
|
33
|
+
should_respond_with :success
|
34
|
+
should_render_template :index
|
35
|
+
end
|
36
|
+
context "csv" do
|
37
|
+
setup do
|
38
|
+
get :index, :format => 'csv'
|
39
|
+
end
|
40
|
+
should_respond_with :success
|
41
|
+
should_render_template :index
|
31
42
|
end
|
32
|
-
should_respond_with :success
|
33
|
-
should_render_template :index
|
34
43
|
end
|
35
44
|
|
36
45
|
context "GET inactive" do
|
@@ -18,17 +18,48 @@ class Muck::UsersControllerTest < ActionController::TestCase
|
|
18
18
|
GlobalConfig.automatically_login_after_account_create = true
|
19
19
|
end
|
20
20
|
context "on POST to :create" do
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
21
|
+
context "html" do
|
22
|
+
setup do
|
23
|
+
post_create_user
|
24
|
+
end
|
25
|
+
should_redirect_to("sign up complete path") { signup_complete_path(assigns(:user)) }
|
26
|
+
should "activate user" do
|
27
|
+
assert assigns(:user).active? == true, "user was not activated"
|
28
|
+
end
|
29
|
+
should "be logged in" do
|
30
|
+
user_session = UserSession.find
|
31
|
+
assert user_session, "user is not logged in"
|
32
|
+
end
|
27
33
|
end
|
28
|
-
|
29
|
-
|
30
|
-
|
34
|
+
context "json" do
|
35
|
+
setup do
|
36
|
+
post_create_user_json
|
37
|
+
end
|
38
|
+
should "return json" do
|
39
|
+
user = JSON.parse(@response.body)
|
40
|
+
assert_equal true, user['success']
|
41
|
+
assert_equal "testguy", user['user']['login']
|
42
|
+
end
|
43
|
+
should "activate user" do
|
44
|
+
assert assigns(:user).active? == true, "user was not activated"
|
45
|
+
end
|
46
|
+
should "be logged in" do
|
47
|
+
user_session = UserSession.find
|
48
|
+
assert user_session, "user is not logged in"
|
49
|
+
end
|
31
50
|
end
|
51
|
+
context "xml" do
|
52
|
+
setup do
|
53
|
+
post_create_user_xml
|
54
|
+
end
|
55
|
+
should "activate user" do
|
56
|
+
assert assigns(:user).active? == true, "user was not activated"
|
57
|
+
end
|
58
|
+
should "be logged in" do
|
59
|
+
user_session = UserSession.find
|
60
|
+
assert user_session, "user is not logged in"
|
61
|
+
end
|
62
|
+
end
|
32
63
|
end
|
33
64
|
context "on POST to :create with bad login (space in login name)" do
|
34
65
|
setup do
|
@@ -335,24 +366,34 @@ class Muck::UsersControllerTest < ActionController::TestCase
|
|
335
366
|
def put_update_user(user, options = {})
|
336
367
|
put :update,
|
337
368
|
:id => user.id,
|
338
|
-
:user =>
|
339
|
-
:email => rand(1000).to_s + 'testguy@example.com',
|
340
|
-
:password => 'testpasswrod',
|
341
|
-
:password_confirmation => 'testpasswrod',
|
342
|
-
:first_name => 'Ed',
|
343
|
-
:last_name => 'Decker',
|
344
|
-
:terms_of_service => true }.merge(options)
|
369
|
+
:user => user_params(options)
|
345
370
|
end
|
346
371
|
|
347
372
|
def post_create_user(options = {})
|
348
373
|
post :create,
|
349
|
-
:user =>
|
350
|
-
:email => rand(1000).to_s + 'testguy@example.com',
|
351
|
-
:password => 'testpasswrod',
|
352
|
-
:password_confirmation => 'testpasswrod',
|
353
|
-
:first_name => 'Ed',
|
354
|
-
:last_name => 'Decker',
|
355
|
-
:terms_of_service => true }.merge(options)
|
374
|
+
:user => user_params(options)
|
356
375
|
end
|
357
376
|
|
377
|
+
def post_create_user_json(options = {})
|
378
|
+
post :create,
|
379
|
+
:user => user_params(options),
|
380
|
+
:format => 'json'
|
381
|
+
end
|
382
|
+
|
383
|
+
def post_create_user_xml(options = {})
|
384
|
+
post :create,
|
385
|
+
:user => user_params(options),
|
386
|
+
:format => 'xml'
|
387
|
+
end
|
388
|
+
|
389
|
+
def user_params(options = {})
|
390
|
+
{ :login => 'testguy',
|
391
|
+
:email => rand(1000).to_s + 'testguy@example.com',
|
392
|
+
:password => 'testpasswrod',
|
393
|
+
:password_confirmation => 'testpasswrod',
|
394
|
+
:first_name => 'Ed',
|
395
|
+
:last_name => 'Decker',
|
396
|
+
:terms_of_service => true }.merge(options)
|
397
|
+
end
|
398
|
+
|
358
399
|
end
|
@@ -52,7 +52,7 @@ class UserTest < ActiveSupport::TestCase
|
|
52
52
|
|
53
53
|
should_not_allow_mass_assignment_of :crypted_password, :password_salt, :persistence_token, :single_access_token, :perishable_token, :login_count,
|
54
54
|
:failed_login_count, :last_request_at, :last_login_at, :current_login_at, :current_login_ip, :last_login_ip,
|
55
|
-
:
|
55
|
+
:time_zone, :disabled_at, :activated_at, :created_at, :updated_at
|
56
56
|
|
57
57
|
context "named scopes" do
|
58
58
|
setup do
|
metadata
CHANGED
@@ -1,7 +1,12 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: muck-users
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
|
4
|
+
prerelease: false
|
5
|
+
segments:
|
6
|
+
- 0
|
7
|
+
- 3
|
8
|
+
- 10
|
9
|
+
version: 0.3.10
|
5
10
|
platform: ruby
|
6
11
|
authors:
|
7
12
|
- Justin Ball
|
@@ -10,59 +15,69 @@ autorequire:
|
|
10
15
|
bindir: bin
|
11
16
|
cert_chain: []
|
12
17
|
|
13
|
-
date: 2010-
|
18
|
+
date: 2010-03-05 00:00:00 -07:00
|
14
19
|
default_executable:
|
15
20
|
dependencies:
|
16
21
|
- !ruby/object:Gem::Dependency
|
17
22
|
name: authlogic
|
18
|
-
|
19
|
-
|
20
|
-
version_requirements: !ruby/object:Gem::Requirement
|
23
|
+
prerelease: false
|
24
|
+
requirement: &id001 !ruby/object:Gem::Requirement
|
21
25
|
requirements:
|
22
26
|
- - ">="
|
23
27
|
- !ruby/object:Gem::Version
|
28
|
+
segments:
|
29
|
+
- 0
|
24
30
|
version: "0"
|
25
|
-
|
31
|
+
type: :runtime
|
32
|
+
version_requirements: *id001
|
26
33
|
- !ruby/object:Gem::Dependency
|
27
34
|
name: searchlogic
|
28
|
-
|
29
|
-
|
30
|
-
version_requirements: !ruby/object:Gem::Requirement
|
35
|
+
prerelease: false
|
36
|
+
requirement: &id002 !ruby/object:Gem::Requirement
|
31
37
|
requirements:
|
32
38
|
- - ">="
|
33
39
|
- !ruby/object:Gem::Version
|
40
|
+
segments:
|
41
|
+
- 0
|
34
42
|
version: "0"
|
35
|
-
|
43
|
+
type: :runtime
|
44
|
+
version_requirements: *id002
|
36
45
|
- !ruby/object:Gem::Dependency
|
37
46
|
name: bcrypt-ruby
|
38
|
-
|
39
|
-
|
40
|
-
version_requirements: !ruby/object:Gem::Requirement
|
47
|
+
prerelease: false
|
48
|
+
requirement: &id003 !ruby/object:Gem::Requirement
|
41
49
|
requirements:
|
42
50
|
- - ">="
|
43
51
|
- !ruby/object:Gem::Version
|
52
|
+
segments:
|
53
|
+
- 0
|
44
54
|
version: "0"
|
45
|
-
|
55
|
+
type: :runtime
|
56
|
+
version_requirements: *id003
|
46
57
|
- !ruby/object:Gem::Dependency
|
47
58
|
name: muck-engine
|
48
|
-
|
49
|
-
|
50
|
-
version_requirements: !ruby/object:Gem::Requirement
|
59
|
+
prerelease: false
|
60
|
+
requirement: &id004 !ruby/object:Gem::Requirement
|
51
61
|
requirements:
|
52
62
|
- - ">="
|
53
63
|
- !ruby/object:Gem::Version
|
64
|
+
segments:
|
65
|
+
- 0
|
54
66
|
version: "0"
|
55
|
-
|
67
|
+
type: :runtime
|
68
|
+
version_requirements: *id004
|
56
69
|
- !ruby/object:Gem::Dependency
|
57
70
|
name: friendly_id
|
58
|
-
|
59
|
-
|
60
|
-
version_requirements: !ruby/object:Gem::Requirement
|
71
|
+
prerelease: false
|
72
|
+
requirement: &id005 !ruby/object:Gem::Requirement
|
61
73
|
requirements:
|
62
74
|
- - ">="
|
63
75
|
- !ruby/object:Gem::Version
|
76
|
+
segments:
|
77
|
+
- 0
|
64
78
|
version: "0"
|
65
|
-
|
79
|
+
type: :runtime
|
80
|
+
version_requirements: *id005
|
66
81
|
description: Easily add user signup, login and other features to your application
|
67
82
|
email: justin@tatemae.com
|
68
83
|
executables: []
|
@@ -122,6 +137,7 @@ files:
|
|
122
137
|
- app/views/admin/users/edit.html.erb
|
123
138
|
- app/views/admin/users/inactive.html.erb
|
124
139
|
- app/views/admin/users/inactive_emails.html.erb
|
140
|
+
- app/views/admin/users/index.csv.erb
|
125
141
|
- app/views/admin/users/index.html.erb
|
126
142
|
- app/views/admin/users/permissions.html.erb
|
127
143
|
- app/views/admin/users/row.js.erb
|
@@ -1380,18 +1396,20 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
1380
1396
|
requirements:
|
1381
1397
|
- - ">="
|
1382
1398
|
- !ruby/object:Gem::Version
|
1399
|
+
segments:
|
1400
|
+
- 0
|
1383
1401
|
version: "0"
|
1384
|
-
version:
|
1385
1402
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
1386
1403
|
requirements:
|
1387
1404
|
- - ">="
|
1388
1405
|
- !ruby/object:Gem::Version
|
1406
|
+
segments:
|
1407
|
+
- 0
|
1389
1408
|
version: "0"
|
1390
|
-
version:
|
1391
1409
|
requirements: []
|
1392
1410
|
|
1393
1411
|
rubyforge_project: muck-users
|
1394
|
-
rubygems_version: 1.3.
|
1412
|
+
rubygems_version: 1.3.6
|
1395
1413
|
signing_key:
|
1396
1414
|
specification_version: 3
|
1397
1415
|
summary: Easy to use user engine for Rails
|