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 CHANGED
@@ -1 +1 @@
1
- 0.3.9
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
- if result
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
- def destroy
44
- @title = t('muck.users.sign_out_title')
45
- current_user_session.destroy
46
- flash[:notice] = t('muck.users.login_out_success')
47
- respond_to do |format|
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
- end
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 do
289
- redirect_to user_path(current_user)
290
- end
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 -%>
@@ -1,4 +1,5 @@
1
1
  <div>
2
2
  <h2><%= t('muck.users.admin_users_title') %></h2>
3
+ <%= link_to 'Download Users', admin_users_path(:format => 'csv')%>
3
4
  <%= render :partial => 'admin/users/table' -%>
4
5
  </div>
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.9"
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-02-18}
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.5}
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
- setup do
30
- get :index
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
- setup do
22
- post_create_user
23
- end
24
- should_redirect_to("sign up complete path") { signup_complete_path(assigns(:user)) }
25
- should "activate user" do
26
- assert assigns(:user).active? == true, "user was not activated"
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
- should "be logged in" do
29
- user_session = UserSession.find
30
- assert user_session, "user is not logged in"
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 => { :login => 'testguy',
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 => { :login => 'testguy',
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
- :terms_of_service, :time_zone, :disabled_at, :activated_at, :created_at, :updated_at
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
- version: 0.3.9
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-02-18 00:00:00 -07:00
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
- type: :runtime
19
- version_requirement:
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
- version:
31
+ type: :runtime
32
+ version_requirements: *id001
26
33
  - !ruby/object:Gem::Dependency
27
34
  name: searchlogic
28
- type: :runtime
29
- version_requirement:
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
- version:
43
+ type: :runtime
44
+ version_requirements: *id002
36
45
  - !ruby/object:Gem::Dependency
37
46
  name: bcrypt-ruby
38
- type: :runtime
39
- version_requirement:
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
- version:
55
+ type: :runtime
56
+ version_requirements: *id003
46
57
  - !ruby/object:Gem::Dependency
47
58
  name: muck-engine
48
- type: :runtime
49
- version_requirement:
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
- version:
67
+ type: :runtime
68
+ version_requirements: *id004
56
69
  - !ruby/object:Gem::Dependency
57
70
  name: friendly_id
58
- type: :runtime
59
- version_requirement:
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
- version:
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.5
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