muck-users 0.1.12 → 0.1.13

Sign up to get free protection for your applications and to get access to all the features.
Files changed (89) hide show
  1. data/.gitignore +7 -1
  2. data/Rakefile +8 -13
  3. data/VERSION +1 -1
  4. data/app/controllers/admin/muck/users_controller.rb +1 -1
  5. data/app/models/user_mailer.rb +1 -1
  6. data/lib/active_record/acts/muck_user.rb +17 -20
  7. data/lib/active_record/secure_methods.rb +1 -1
  8. data/lib/muck_users/tasks.rb +2 -2
  9. data/locales/ar.yml +1 -1
  10. data/locales/bg.yml +2 -2
  11. data/locales/ca.yml +2 -2
  12. data/locales/cs.yml +1 -1
  13. data/locales/da.yml +1 -1
  14. data/locales/de.yml +2 -2
  15. data/locales/el.yml +4 -4
  16. data/locales/en.yml +5 -5
  17. data/locales/es.yml +1 -1
  18. data/locales/et.yml +126 -0
  19. data/locales/fa.yml +126 -0
  20. data/locales/fi.yml +126 -0
  21. data/locales/fr.yml +1 -1
  22. data/locales/gl.yml +126 -0
  23. data/locales/hi.yml +126 -0
  24. data/locales/hr.yml +126 -0
  25. data/locales/hu.yml +126 -0
  26. data/locales/id.yml +126 -0
  27. data/locales/it.yml +1 -1
  28. data/locales/iw.yml +1 -1
  29. data/locales/ja.yml +2 -2
  30. data/locales/ko.yml +1 -1
  31. data/locales/lt.yml +2 -2
  32. data/locales/lv.yml +2 -2
  33. data/locales/mt.yml +126 -0
  34. data/locales/nl.yml +2 -2
  35. data/locales/no.yml +2 -2
  36. data/locales/pl.yml +1 -1
  37. data/locales/pt-PT.yml +126 -0
  38. data/locales/ro.yml +1 -1
  39. data/locales/ru.yml +3 -3
  40. data/locales/sk.yml +1 -1
  41. data/locales/sl.yml +3 -3
  42. data/locales/sq.yml +126 -0
  43. data/locales/sr.yml +2 -2
  44. data/locales/sv.yml +1 -1
  45. data/locales/th.yml +126 -0
  46. data/locales/tl.yml +1 -1
  47. data/locales/tr.yml +126 -0
  48. data/locales/uk.yml +2 -2
  49. data/locales/vi.yml +1 -1
  50. data/locales/zh-CN.yml +1 -1
  51. data/locales/zh-TW.yml +1 -1
  52. data/locales/zh.yml +1 -1
  53. data/muck-users.gemspec +18 -32
  54. data/test/rails_root/config/global_config.yml +49 -2
  55. data/test/rails_root/test/functional/password_resets_controller_test.rb +13 -1
  56. data/test/rails_root/test/unit/role_test.rb +1 -1
  57. data/test/rails_root/test/unit/user_mailer_test.rb +6 -6
  58. data/test/rails_root/test/unit/user_test.rb +79 -1
  59. metadata +25 -32
  60. data/muck-users-0.1.4.gem +0 -0
  61. data/pkg/muck-users-0.1.11.gem +0 -0
  62. data/rdoc/classes/ActionController.html +0 -112
  63. data/rdoc/classes/ActionController/AuthenticApplication.html +0 -161
  64. data/rdoc/classes/ActionController/AuthenticApplication/InstanceMethods.html +0 -741
  65. data/rdoc/classes/ActionController/Routing.html +0 -107
  66. data/rdoc/classes/ActionController/Routing/RouteSet.html +0 -148
  67. data/rdoc/classes/ActiveRecord.html +0 -115
  68. data/rdoc/classes/ActiveRecord/Acts/MuckUser/ClassMethods.html +0 -167
  69. data/rdoc/classes/ActiveRecord/Acts/MuckUser/InstanceMethods.html +0 -537
  70. data/rdoc/classes/ActiveRecord/Acts/MuckUser/SingletonMethods.html +0 -296
  71. data/rdoc/classes/ActiveRecord/SecureMethods.html +0 -216
  72. data/rdoc/classes/MuckUsers.html +0 -116
  73. data/rdoc/classes/MuckUsers/Exceptions.html +0 -111
  74. data/rdoc/classes/MuckUsers/Exceptions/InvalidPasswordResetCode.html +0 -111
  75. data/rdoc/classes/MuckUsers/Tasks.html +0 -146
  76. data/rdoc/created.rid +0 -1
  77. data/rdoc/files/README_rdoc.html +0 -211
  78. data/rdoc/files/lib/action_controller/authentic_application_rb.html +0 -101
  79. data/rdoc/files/lib/active_record/acts/muck_user_rb.html +0 -101
  80. data/rdoc/files/lib/active_record/secure_methods_rb.html +0 -101
  81. data/rdoc/files/lib/muck_users/exceptions_rb.html +0 -101
  82. data/rdoc/files/lib/muck_users/initialize_routes_rb.html +0 -101
  83. data/rdoc/files/lib/muck_users/tasks_rb.html +0 -110
  84. data/rdoc/files/lib/muck_users_rb.html +0 -117
  85. data/rdoc/fr_class_index.html +0 -40
  86. data/rdoc/fr_file_index.html +0 -34
  87. data/rdoc/fr_method_index.html +0 -77
  88. data/rdoc/index.html +0 -24
  89. data/rdoc/rdoc-style.css +0 -208
@@ -4,9 +4,56 @@ default: &DEFAULT
4
4
 
5
5
  application_url: localhost:3000
6
6
 
7
+ # Sent in emails to users
8
+ application_name: 'example'
9
+ from_email: 'support@example.com' # Emails will come from this address
10
+ from_email_name: 'example' # This will show up as the name on emails. i.e. support@example.com <Example>
11
+ support_email: 'support@example.com'
12
+ admin_email: 'admin@example.com'
13
+ customer_service_number: '1-800-'
14
+
15
+ # Email charset
16
+ mail_charset: 'utf-8'
17
+
18
+ # Email server configuration
19
+ email_user_name: 'system@example.com'
20
+ email_password: 'test'
21
+ base_domain: 'example.com'
22
+
23
+ # sign up options
24
+ automatically_activate: true
25
+ automatically_login_after_account_create: true
26
+ send_welcome: true
27
+
28
+ application_url: localhost:3000
29
+
30
+ # if you use recaptcha you will need to also provide a public and private
31
+ # key available from http://recaptcha.net.
32
+ use_recaptcha: false
33
+ recaptcha_pub_key: GET_A_RECAPTCHA_KEY(TODO)
34
+ recaptcha_priv_key: GET_A_RECAPTCHA_KEY(TODO)
35
+
36
+ # jgrowl related settings
37
+ growl_enabled: false
38
+
39
+ # application configuration
40
+ let_users_delete_their_account: false # turn on/off ability for users to delete their own account
41
+
42
+ # activity configuration
43
+ enable_live_activity_updates: true # Turns on polling inside the user's activity feed so they constantly get updates from the site
44
+ live_activity_update_interval: 60 # time between updates to live activity feed in seconds
45
+ enable_activity_comments: true # Turn on comments in the activity feed
46
+
47
+ # Friend configuration
48
+ allow_following: true
49
+ enable_friend_activity: false
50
+
51
+ # ssl
52
+ enable_ssl: false
53
+
7
54
  # session key information
8
- session_key: _uploader_session
9
- session_secret: ea55c4d5e105735fdfb1caec46711b3dd14ec976d0ba95b4c0f575cb046cc358bce7a335ee36eb29253fb680ef8b838d871f6baeff48220fee8e9e42ab84774b
55
+ session_key: _test_session
56
+ session_secret: 882585c5d472d21e832965410ab233be541ea626e50ed0eb68a00a2f49b59073480e58599404e3dc62105a803ee42d67872e3f95eb48e2d6508b42038436abd6
10
57
 
11
58
  production:
12
59
  <<: *DEFAULT
@@ -4,7 +4,7 @@ class Muck::PasswordResetsControllerTest < ActionController::TestCase
4
4
 
5
5
  tests Muck::PasswordResetsController
6
6
 
7
- context "user sessions controller" do
7
+ context "password reset controller" do
8
8
  setup do
9
9
  @user = Factory(:user)
10
10
  end
@@ -33,6 +33,18 @@ class Muck::PasswordResetsControllerTest < ActionController::TestCase
33
33
  should_respond_with :success
34
34
  should_render_template :new
35
35
  end
36
+ context "inactive user - send password not active instructions" do
37
+ setup do
38
+ @inactive_user = Factory(:user, :activated_at => nil)
39
+ post :create, :reset_password => { :email => @inactive_user.email }
40
+ end
41
+ should "send password not active instructions" do
42
+ assert_sent_email do |email|
43
+ email.to.include?(@inactive_user.email)
44
+ end
45
+ end
46
+ should_redirect_to("login") { login_path }
47
+ end
36
48
  context "get edit" do
37
49
  setup do
38
50
  get :edit, :id => @user.perishable_token
@@ -13,5 +13,5 @@ class RoleTest < ActiveSupport::TestCase
13
13
  end
14
14
  end
15
15
  end
16
-
16
+
17
17
  end
@@ -20,7 +20,7 @@ class UserMailerTest < ActiveSupport::TestCase
20
20
  assert_match "#{user.login}", response.body, "User login was not found in the email"
21
21
  email = ActionMailer::Base.deliveries.last
22
22
  assert_equal email.to, [user.email]
23
- assert_equal email.from, GlobalConfig.from_email
23
+ assert_equal email.from, [GlobalConfig.from_email]
24
24
  end
25
25
 
26
26
  should "send activation instructions email" do
@@ -30,7 +30,7 @@ class UserMailerTest < ActiveSupport::TestCase
30
30
  assert_match "#{user.login}", response.body, "User login was not found in the email"
31
31
  email = ActionMailer::Base.deliveries.last
32
32
  assert_equal email.to, [user.email]
33
- assert_equal email.from, GlobalConfig.from_email
33
+ assert_equal email.from, [GlobalConfig.from_email]
34
34
  end
35
35
 
36
36
  should "send password reset account not active instructions email" do
@@ -39,7 +39,7 @@ class UserMailerTest < ActiveSupport::TestCase
39
39
  assert !ActionMailer::Base.deliveries.empty?, "No email was sent"
40
40
  email = ActionMailer::Base.deliveries.last
41
41
  assert_equal email.to, [user.email]
42
- assert_equal email.from, GlobalConfig.from_email
42
+ assert_equal email.from, [GlobalConfig.from_email]
43
43
  end
44
44
 
45
45
  should "send password reset instructions email" do
@@ -48,7 +48,7 @@ class UserMailerTest < ActiveSupport::TestCase
48
48
  assert !ActionMailer::Base.deliveries.empty?, "No email was sent"
49
49
  email = ActionMailer::Base.deliveries.last
50
50
  assert_equal email.to, [user.email]
51
- assert_equal email.from, GlobalConfig.from_email
51
+ assert_equal email.from, [GlobalConfig.from_email]
52
52
  end
53
53
 
54
54
  should "send username request email" do
@@ -57,7 +57,7 @@ class UserMailerTest < ActiveSupport::TestCase
57
57
  assert !ActionMailer::Base.deliveries.empty?, "No email was sent"
58
58
  email = ActionMailer::Base.deliveries.last
59
59
  assert_equal email.to, [user.email]
60
- assert_equal email.from, GlobalConfig.from_email
60
+ assert_equal email.from, [GlobalConfig.from_email]
61
61
  end
62
62
 
63
63
  should "send welcome email" do
@@ -66,7 +66,7 @@ class UserMailerTest < ActiveSupport::TestCase
66
66
  assert !ActionMailer::Base.deliveries.empty?, "No email was sent"
67
67
  email = ActionMailer::Base.deliveries.last
68
68
  assert_equal email.to, [user.email]
69
- assert_equal email.from, GlobalConfig.from_email
69
+ assert_equal email.from, [GlobalConfig.from_email]
70
70
  end
71
71
 
72
72
  end
@@ -122,6 +122,17 @@ class UserTest < ActiveSupport::TestCase
122
122
  should "have at least one inactive user" do
123
123
  assert User.inactive_count > 0
124
124
  end
125
+ should "be able to activate all users" do
126
+ assert User.activate_all
127
+ assert User.inactive_count == 0
128
+ end
129
+ end
130
+
131
+ context "find and activate an inactive user" do
132
+ setup do
133
+ @user_inactive = Factory(:user, :activated_at => nil )
134
+ @user_active = Factory(:user )
135
+ end
125
136
  end
126
137
 
127
138
  context "user exists" do
@@ -135,5 +146,72 @@ class UserTest < ActiveSupport::TestCase
135
146
  assert User.email_exists?('atestguytoo@example.com')
136
147
  end
137
148
  end
149
+
150
+ context "user does not exist" do
151
+ setup do
152
+ @user = Factory(:user, :login => 'atestguytoo', :email => 'atestguytoo@example.com')
153
+ end
154
+ should "NOT find user with login" do
155
+ assert_equal false, User.login_exists?('nonexistentuser')
156
+ end
157
+ should "NOT find user with email" do
158
+ assert_equal false, User.email_exists?('nonexistentuser@example.com')
159
+ end
160
+ end
138
161
 
139
- end
162
+ context "check user roles" do
163
+ setup do
164
+ @user = Factory(:user)
165
+ end
166
+ should "be in admin role" do
167
+ @user.add_to_role('administrator')
168
+ @user.reload
169
+ assert @user.admin?
170
+ end
171
+ should "add the user to the specified role" do
172
+ @user.add_to_role('bla')
173
+ @user.reload
174
+ assert @user.has_role?('bla')
175
+ end
176
+ should "find the user in any role" do
177
+ @user.add_to_role('bla')
178
+ @user.add_to_role('foo')
179
+ @user.add_to_role('bar')
180
+ @user.reload
181
+ assert @user.any_role?('bla', 'foo')
182
+ assert @user.any_role?('bar')
183
+ assert !@user.any_role?('alb')
184
+ end
185
+ should "only add the user to the given role once" do
186
+ @user.roles.delete_all
187
+ @user.add_to_role('bla')
188
+ @user.add_to_role('bla')
189
+ @user.reload
190
+ assert_equal 1, @user.roles.count
191
+ end
192
+ end
193
+
194
+ context "user can edit" do
195
+ setup do
196
+ @user = Factory(:user)
197
+ @anotheruser = Factory(:user)
198
+ end
199
+ should "be false if user is nil" do
200
+ assert_equal false, @user.can_edit?(nil)
201
+ end
202
+ should "be false if user is not self or an admin" do
203
+ assert_equal false, @user.can_edit?( @anotheruser )
204
+ assert_equal false, @anotheruser.admin?
205
+ assert_equal false, @user.can_edit?( @anotheruser )
206
+ end
207
+ should "be true if user is self" do
208
+ assert @user.can_edit?( @user )
209
+ end
210
+ should "be true if user is an admin" do
211
+ @anotheruser.add_to_role('administrator')
212
+ @anotheruser.reload
213
+ assert @user.can_edit?( @anotheruser )
214
+ end
215
+ end
216
+
217
+ end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: muck-users
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.12
4
+ version: 0.1.13
5
5
  platform: ruby
6
6
  authors:
7
7
  - Justin Ball
@@ -9,7 +9,7 @@ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
11
 
12
- date: 2009-06-29 00:00:00 -06:00
12
+ date: 2009-07-07 00:00:00 -06:00
13
13
  default_executable:
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
@@ -52,6 +52,16 @@ dependencies:
52
52
  - !ruby/object:Gem::Version
53
53
  version: "0"
54
54
  version:
55
+ - !ruby/object:Gem::Dependency
56
+ name: friendly_id
57
+ type: :runtime
58
+ version_requirement:
59
+ version_requirements: !ruby/object:Gem::Requirement
60
+ requirements:
61
+ - - ">="
62
+ - !ruby/object:Gem::Version
63
+ version: "0"
64
+ version:
55
65
  description: Easily add user signup, login and other features to your application
56
66
  email: justinball@gmail.com
57
67
  executables: []
@@ -138,62 +148,45 @@ files:
138
148
  - locales/el.yml
139
149
  - locales/en.yml
140
150
  - locales/es.yml
151
+ - locales/et.yml
152
+ - locales/fa.yml
153
+ - locales/fi.yml
141
154
  - locales/fr.yml
155
+ - locales/gl.yml
156
+ - locales/hi.yml
157
+ - locales/hr.yml
158
+ - locales/hu.yml
159
+ - locales/id.yml
142
160
  - locales/it.yml
143
161
  - locales/iw.yml
144
162
  - locales/ja.yml
145
163
  - locales/ko.yml
146
164
  - locales/lt.yml
147
165
  - locales/lv.yml
166
+ - locales/mt.yml
148
167
  - locales/nl.yml
149
168
  - locales/no.yml
150
169
  - locales/pl.yml
170
+ - locales/pt-PT.yml
151
171
  - locales/pt.yml
152
172
  - locales/ro.yml
153
173
  - locales/ru.yml
154
174
  - locales/sk.yml
155
175
  - locales/sl.yml
176
+ - locales/sq.yml
156
177
  - locales/sr.yml
157
178
  - locales/sv.yml
179
+ - locales/th.yml
158
180
  - locales/tl.yml
181
+ - locales/tr.yml
159
182
  - locales/uk.yml
160
183
  - locales/vi.yml
161
184
  - locales/zh-CN.yml
162
185
  - locales/zh-TW.yml
163
186
  - locales/zh.yml
164
- - muck-users-0.1.4.gem
165
187
  - muck-users.gemspec
166
- - pkg/muck-users-0.1.11.gem
167
188
  - public/images/profile_default.jpg
168
189
  - rails/init.rb
169
- - rdoc/classes/ActionController.html
170
- - rdoc/classes/ActionController/AuthenticApplication.html
171
- - rdoc/classes/ActionController/AuthenticApplication/InstanceMethods.html
172
- - rdoc/classes/ActionController/Routing.html
173
- - rdoc/classes/ActionController/Routing/RouteSet.html
174
- - rdoc/classes/ActiveRecord.html
175
- - rdoc/classes/ActiveRecord/Acts/MuckUser/ClassMethods.html
176
- - rdoc/classes/ActiveRecord/Acts/MuckUser/InstanceMethods.html
177
- - rdoc/classes/ActiveRecord/Acts/MuckUser/SingletonMethods.html
178
- - rdoc/classes/ActiveRecord/SecureMethods.html
179
- - rdoc/classes/MuckUsers.html
180
- - rdoc/classes/MuckUsers/Exceptions.html
181
- - rdoc/classes/MuckUsers/Exceptions/InvalidPasswordResetCode.html
182
- - rdoc/classes/MuckUsers/Tasks.html
183
- - rdoc/created.rid
184
- - rdoc/files/README_rdoc.html
185
- - rdoc/files/lib/action_controller/authentic_application_rb.html
186
- - rdoc/files/lib/active_record/acts/muck_user_rb.html
187
- - rdoc/files/lib/active_record/secure_methods_rb.html
188
- - rdoc/files/lib/muck_users/exceptions_rb.html
189
- - rdoc/files/lib/muck_users/initialize_routes_rb.html
190
- - rdoc/files/lib/muck_users/tasks_rb.html
191
- - rdoc/files/lib/muck_users_rb.html
192
- - rdoc/fr_class_index.html
193
- - rdoc/fr_file_index.html
194
- - rdoc/fr_method_index.html
195
- - rdoc/index.html
196
- - rdoc/rdoc-style.css
197
190
  - tasks/rails.rake
198
191
  - test/rails_root/.gitignore
199
192
  - test/rails_root/.rake_tasks
Binary file
Binary file
@@ -1,112 +0,0 @@
1
- <?xml version="1.0" encoding="iso-8859-1"?>
2
- <!DOCTYPE html
3
- PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
4
- "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
5
-
6
- <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
7
- <head>
8
- <title>Module: ActionController</title>
9
- <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
10
- <meta http-equiv="Content-Script-Type" content="text/javascript" />
11
- <link rel="stylesheet" href=".././rdoc-style.css" type="text/css" media="screen" />
12
- <script type="text/javascript">
13
- // <![CDATA[
14
-
15
- function popupCode( url ) {
16
- window.open(url, "Code", "resizable=yes,scrollbars=yes,toolbar=no,status=no,height=150,width=400")
17
- }
18
-
19
- function toggleCode( id ) {
20
- if ( document.getElementById )
21
- elem = document.getElementById( id );
22
- else if ( document.all )
23
- elem = eval( "document.all." + id );
24
- else
25
- return false;
26
-
27
- elemStyle = elem.style;
28
-
29
- if ( elemStyle.display != "block" ) {
30
- elemStyle.display = "block"
31
- } else {
32
- elemStyle.display = "none"
33
- }
34
-
35
- return true;
36
- }
37
-
38
- // Make codeblocks hidden by default
39
- document.writeln( "<style type=\"text/css\">div.method-source-code { display: none }</style>" )
40
-
41
- // ]]>
42
- </script>
43
-
44
- </head>
45
- <body>
46
-
47
-
48
-
49
- <div id="classHeader">
50
- <table class="header-table">
51
- <tr class="top-aligned-row">
52
- <td><strong>Module</strong></td>
53
- <td class="class-name-in-header">ActionController</td>
54
- </tr>
55
- <tr class="top-aligned-row">
56
- <td><strong>In:</strong></td>
57
- <td>
58
- <a href="../files/lib/action_controller/authentic_application_rb.html">
59
- lib/action_controller/authentic_application.rb
60
- </a>
61
- <br />
62
- </td>
63
- </tr>
64
-
65
- </table>
66
- </div>
67
- <!-- banner header -->
68
-
69
- <div id="bodyContent">
70
-
71
-
72
-
73
- <div id="contextContent">
74
-
75
-
76
-
77
- </div>
78
-
79
-
80
- </div>
81
-
82
-
83
- <!-- if includes -->
84
-
85
- <div id="section">
86
-
87
- <div id="class-list">
88
- <h3 class="section-bar">Classes and Modules</h3>
89
-
90
- Module <a href="ActionController/AuthenticApplication.html" class="link">ActionController::AuthenticApplication</a><br />
91
- Module <a href="ActionController/Routing.html" class="link">ActionController::Routing</a><br />
92
-
93
- </div>
94
-
95
-
96
-
97
-
98
-
99
-
100
-
101
- <!-- if method_list -->
102
-
103
-
104
- </div>
105
-
106
-
107
- <div id="validator-badges">
108
- <p><small><a href="http://validator.w3.org/check/referer">[Validate]</a></small></p>
109
- </div>
110
-
111
- </body>
112
- </html>