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 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