muck-users 0.3.9 → 0.3.10
Sign up to get free protection for your applications and to get access to all the features.
- 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
|