community_engine 2.3.1 → 2.3.2

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.
Files changed (55) hide show
  1. checksums.yaml +6 -14
  2. data/.travis.yml +2 -2
  3. data/CHANGELOG +1 -0
  4. data/Gemfile +2 -0
  5. data/README.markdown +101 -57
  6. data/about.yml +1 -1
  7. data/app/controllers/authorizations_controller.rb +2 -1
  8. data/app/controllers/base_controller.rb +31 -43
  9. data/app/controllers/comments_controller.rb +11 -5
  10. data/app/controllers/messages_controller.rb +1 -1
  11. data/app/controllers/password_resets_controller.rb +4 -4
  12. data/app/controllers/sessions_controller.rb +3 -4
  13. data/app/helpers/base_helper.rb +47 -43
  14. data/app/models/album.rb +3 -3
  15. data/app/models/authorization.rb +14 -14
  16. data/app/models/clipping.rb +13 -13
  17. data/app/models/clipping_image.rb +4 -4
  18. data/app/models/comment.rb +18 -10
  19. data/app/models/event.rb +12 -12
  20. data/app/models/homepage_feature.rb +4 -4
  21. data/app/models/message.rb +2 -2
  22. data/app/models/metro_area.rb +1 -1
  23. data/app/models/photo.rb +4 -4
  24. data/app/models/poll.rb +1 -1
  25. data/app/models/post.rb +48 -48
  26. data/app/models/sb_post.rb +1 -1
  27. data/app/models/topic.rb +2 -2
  28. data/app/models/user.rb +3 -2
  29. data/app/views/admin/comments.html.haml +11 -8
  30. data/app/views/admin/users.html.haml +6 -4
  31. data/app/views/comments/_comment.html.haml +3 -0
  32. data/app/views/comments/approve.js.haml +1 -0
  33. data/app/views/layouts/application.html.haml +16 -16
  34. data/app/views/messages/_sent.html.haml +2 -2
  35. data/app/views/users/_search_options.html.haml +2 -2
  36. data/app/views/users/new.html.haml +4 -4
  37. data/community_engine.gemspec +4 -3
  38. data/config/locales/en.yml +10 -4
  39. data/config/routes.rb +35 -34
  40. data/db/migrate/090_add_comment_role.rb +15 -0
  41. data/lib/community_engine/authenticated_system.rb +11 -11
  42. data/lib/community_engine/engines_extensions.rb +14 -2
  43. data/lib/community_engine/version.rb +1 -1
  44. data/lib/tasks/community_engine_tasks.rake +3 -72
  45. data/test/functional/authorizations_controller_test.rb +60 -0
  46. data/test/functional/comments_controller_test.rb +44 -67
  47. data/test/functional/password_reset_controller_test.rb +14 -6
  48. data/test/functional/sessions_controller_test.rb +3 -3
  49. data/test/functional/topics_controller_test.rb +2 -2
  50. data/test/test_helper.rb +1 -8
  51. data/test/testapp/config/application.rb +4 -0
  52. data/test/testapp/db/schema.rb +4 -3
  53. data/test/unit/comment_test.rb +85 -28
  54. metadata +53 -49
  55. data/lib/community_engine/rails_asset_extensions.rb +0 -131
@@ -16,11 +16,19 @@ class PasswordResetsControllerTest < ActionController::TestCase
16
16
  assert_redirected_to login_path
17
17
  end
18
18
  end
19
-
19
+
20
+ test "should post to create and ignore email case" do
21
+ assert_difference ActionMailer::Base.deliveries, :length, 1 do
22
+ post :create, :email => users(:quentin).email.capitalize
23
+ assert_response :redirect
24
+ assert_redirected_to login_path
25
+ end
26
+ end
27
+
20
28
  test "should get edit and respond with success" do
21
- get :edit, :id => users(:quentin).perishable_token
22
-
23
- assert_response :success
29
+ get :edit, :id => users(:quentin).perishable_token
30
+
31
+ assert_response :success
24
32
  end
25
33
 
26
34
  test "should put to update and redirect to dashboard" do
@@ -28,7 +36,7 @@ class PasswordResetsControllerTest < ActionController::TestCase
28
36
 
29
37
  put :update, :id => @user.perishable_token, :user => { :password => "newpassword" }
30
38
 
31
- assert_redirected_to dashboard_user_path(@user)
39
+ assert_redirected_to dashboard_user_path(@user)
32
40
  end
33
41
 
34
- end
42
+ end
@@ -1,6 +1,6 @@
1
1
  require 'test_helper'
2
2
 
3
- class SessionsControllerTest < ActionController::TestCase
3
+ class SessionsControllerTest < ActionController::TestCase
4
4
  fixtures :all
5
5
 
6
6
  def test_should_login_and_redirect
@@ -21,7 +21,7 @@ class SessionsControllerTest < ActionController::TestCase
21
21
  assert_nil UserSession.find
22
22
  assert_response :redirect
23
23
  end
24
-
24
+
25
25
  def test_should_delete_token_on_logout
26
26
  login_as :quentin
27
27
  get :destroy
@@ -42,7 +42,7 @@ class SessionsControllerTest < ActionController::TestCase
42
42
  @request.cookies["user_credentials"] = {:value => {:value => 'invalid_token'}, :expires => nil}
43
43
  assert !@controller.send(:logged_in?)
44
44
  end
45
-
45
+
46
46
  def test_should_login_with_reset_password
47
47
  quentin = users(:quentin)
48
48
  quentin.reset_password
@@ -54,7 +54,7 @@ class TopicsControllerTest < ActionController::TestCase
54
54
 
55
55
  def test_should_allow_admin_to_sticky_and_lock
56
56
  login_as :admin
57
- post :create, :forum_id => forums(:rails).id, :topic => { :title => 'blah2', :sticky => "1", :locked => "1", :body => 'foo' }
57
+ post :create, :forum_id => forums(:rails).id, :topic => { :title => 'blah2', :sticky => "1", :locked => "1", :sb_posts_attributes => { "0" => { :body => 'foo' } } }
58
58
  assert assigns(:topic).sticky?
59
59
  assert assigns(:topic).locked?
60
60
  end
@@ -174,7 +174,7 @@ class TopicsControllerTest < ActionController::TestCase
174
174
 
175
175
  def test_should_not_update_user_id_of_own_post
176
176
  login_as :sam
177
- put :update, :forum_id => forums(:rails).id, :id => topics(:ponies).id, :topic => { :user_id => 32 }
177
+ put :update, :forum_id => forums(:rails).id, :id => topics(:ponies).id, :topic => { :user_id => users(:aaron).id }
178
178
  assert_redirected_to forum_topic_path(forums(:rails), assigns(:topic))
179
179
  assert_equal users(:sam).id, sb_posts(:ponies).reload.user_id
180
180
  end
@@ -12,18 +12,11 @@ Rails.backtrace_cleaner.remove_silencers!
12
12
 
13
13
  require "authlogic/test_case"
14
14
  require "community_engine/authenticated_test_helper"
15
+ require "mocha/setup"
15
16
 
16
17
  ActiveSupport::TestCase.fixture_path = (Rails.root + "../fixtures").to_s #we want a string here, not a Pathname
17
18
  ActionController::IntegrationTest.fixture_path = ActiveSupport::TestCase.fixture_path
18
19
 
19
- # OmniAuth.config.test_mode = true
20
- # OmniAuth.config.mock_auth[:default] = {
21
- # 'uid' => '123545'
22
- # 'nickname' => 'Omniauth-user'
23
- # 'email' => 'email@example.com'
24
- # }
25
-
26
-
27
20
  class ActionController::TestCase
28
21
  setup :activate_authlogic
29
22
  end
@@ -41,5 +41,9 @@ module Dummy
41
41
 
42
42
  # Configure sensitive parameters which will be filtered from the log file.
43
43
  config.filter_parameters += [:password]
44
+
45
+ # Raise exception on mass assignment protection for Active Record models
46
+ config.active_record.mass_assignment_sanitizer = :strict
47
+
44
48
  end
45
49
  end
@@ -11,7 +11,7 @@
11
11
  #
12
12
  # It's strongly recommended to check this file into your version control system.
13
13
 
14
- ActiveRecord::Schema.define(:version => 80) do
14
+ ActiveRecord::Schema.define(:version => 90) do
15
15
 
16
16
  create_table "activities", :force => true do |t|
17
17
  t.integer "user_id", :limit => 10
@@ -107,14 +107,15 @@ ActiveRecord::Schema.define(:version => 80) do
107
107
  t.string "commentable_type"
108
108
  t.integer "user_id"
109
109
  t.integer "recipient_id"
110
- t.datetime "created_at", :null => false
111
- t.datetime "updated_at", :null => false
110
+ t.datetime "created_at", :null => false
111
+ t.datetime "updated_at", :null => false
112
112
  t.text "comment"
113
113
  t.string "author_name"
114
114
  t.string "author_email"
115
115
  t.string "author_url"
116
116
  t.string "author_ip"
117
117
  t.boolean "notify_by_email", :default => true
118
+ t.string "role", :default => "comments"
118
119
  end
119
120
 
120
121
  add_index "comments", ["commentable_id"], :name => "index_comments_on_commentable_id"
@@ -7,101 +7,158 @@ class CommentTest < ActiveSupport::TestCase
7
7
  comments = Comment.find_comments_by_user(users(:quentin))
8
8
  assert !comments.empty?
9
9
  end
10
-
10
+
11
11
  def test_comment_can_be_deleted_by
12
12
  comment = comments(:aarons_comment_on_quentins_post)
13
13
  assert comment.can_be_deleted_by(users(:aaron))
14
- assert comment.can_be_deleted_by(users(:quentin))
14
+ assert comment.can_be_deleted_by(users(:quentin))
15
15
  assert !comment.can_be_deleted_by(users(:florian))
16
16
  end
17
-
18
- def test_should_be_created_anonymously
17
+
18
+ def test_should_be_created_anonymously
19
19
  configatron.allow_anonymous_commenting = true
20
20
  assert_difference Comment, :count, 1 do
21
21
  comment = users(:quentin).comments.create!(
22
- :comment => 'foo',
23
- :author_email => 'bar@foo.com',
24
- :author_ip => '123.123.123',
22
+ :comment => 'foo',
23
+ :author_email => 'bar@foo.com',
24
+ :author_ip => '123.123.123',
25
25
  :recipient => users(:quentin)
26
26
  )
27
27
  end
28
28
  configatron.allow_anonymous_commenting = false
29
29
  end
30
-
30
+
31
31
  def test_should_notify_previous_anonymous_commenter
32
32
  configatron.allow_anonymous_commenting = true
33
33
  users(:quentin).comments.create!(:comment => 'foo', :author_email => 'bruno@foo.com', :author_ip => '123.123.123', :recipient => users(:quentin))
34
- users(:quentin).comments.create!(:comment => 'bar', :author_email => 'bruno@foo.com', :author_ip => '123.123.123', :recipient => users(:quentin))
34
+ users(:quentin).comments.create!(:comment => 'bar', :author_email => 'bruno@foo.com', :author_ip => '123.123.123', :recipient => users(:quentin))
35
35
 
36
- comment = users(:quentin).comments.create!(:comment => 'bar', :author_email => 'alicia@foo.com', :author_ip => '123.123.123', :recipient => users(:quentin))
36
+ comment = users(:quentin).comments.create!(:comment => 'bar', :author_email => 'alicia@foo.com', :author_ip => '123.123.123', :recipient => users(:quentin))
37
37
 
38
38
  assert_difference ActionMailer::Base.deliveries, :length, 1 do
39
39
  comment.notify_previous_anonymous_commenters
40
40
  end
41
41
  configatron.allow_anonymous_commenting = false
42
- end
43
-
42
+ end
43
+
44
44
  def test_should_not_notify_previous_anonymous_commenter_if_self
45
45
  configatron.allow_anonymous_commenting = true
46
46
  users(:quentin).comments.create!(:comment => 'foo', :author_email => 'bruno@foo.com', :author_ip => '123.123.123', :recipient => users(:quentin))
47
- users(:quentin).comments.create!(:comment => 'bar', :author_email => 'bruno@foo.com', :author_ip => '123.123.123', :recipient => users(:quentin))
47
+ users(:quentin).comments.create!(:comment => 'bar', :author_email => 'bruno@foo.com', :author_ip => '123.123.123', :recipient => users(:quentin))
48
48
 
49
- comment = users(:quentin).comments.create!(:comment => 'bar', :author_email => 'bruno@foo.com', :author_ip => '123.123.123', :recipient => users(:quentin))
49
+ comment = users(:quentin).comments.create!(:comment => 'bar', :author_email => 'bruno@foo.com', :author_ip => '123.123.123', :recipient => users(:quentin))
50
50
 
51
51
  assert_difference ActionMailer::Base.deliveries, :length, 0 do
52
52
  comment.notify_previous_anonymous_commenters
53
53
  end
54
54
  configatron.allow_anonymous_commenting = nil
55
- end
56
-
55
+ end
56
+
57
57
  def test_should_not_notify_previous_anonymous_commenter_if_notify_by_email_is_false
58
58
  configatron.allow_anonymous_commenting = true
59
59
  users(:quentin).comments.create!(:comment => 'foo', :author_email => 'bruno@foo.com', :author_ip => '123.123.123', :recipient => users(:quentin), :notify_by_email => false)
60
60
 
61
- comment = users(:quentin).comments.create!(:comment => 'bar', :author_email => 'alicia@foo.com', :author_ip => '123.123.123', :recipient => users(:quentin))
61
+ comment = users(:quentin).comments.create!(:comment => 'bar', :author_email => 'alicia@foo.com', :author_ip => '123.123.123', :recipient => users(:quentin))
62
62
 
63
63
  assert_difference ActionMailer::Base.deliveries, :length, 0 do
64
64
  comment.notify_previous_anonymous_commenters
65
65
  end
66
66
  configatron.allow_anonymous_commenting = false
67
67
  end
68
-
68
+
69
69
  def test_should_not_be_created_anonymously
70
70
  assert_no_difference Comment, :count do
71
71
  comment = users(:quentin).comments.create(:comment => 'foo', :author_email => 'bar@foo.com', :author_ip => '123.123.123', :recipient => users(:quentin))
72
72
  end
73
73
  end
74
-
74
+
75
75
  def test_should_be_created_without_recipient
76
76
  assert_difference Comment, :count, 1 do
77
77
  comment = users(:aaron).comments.create!(:comment => 'foo', :user => users(:quentin))
78
- end
78
+ end
79
79
  end
80
80
 
81
81
  def test_should_unsubscribe_notifications
82
82
  configatron.allow_anonymous_commenting = true
83
- first_comment = users(:quentin).comments.create!(:comment => 'foo', :author_email => 'alicia@foo.com', :author_ip => '123.123.123', :recipient => users(:quentin), :notify_by_email => true)
84
- comment = users(:quentin).comments.create!(:comment => 'bar', :author_email => 'alicia@foo.com', :author_ip => '123.123.123', :recipient => users(:quentin), :notify_by_email => true)
83
+ first_comment = users(:quentin).comments.create!(:comment => 'foo', :author_email => 'alicia@foo.com', :author_ip => '123.123.123', :recipient => users(:quentin), :notify_by_email => true)
84
+ comment = users(:quentin).comments.create!(:comment => 'bar', :author_email => 'alicia@foo.com', :author_ip => '123.123.123', :recipient => users(:quentin), :notify_by_email => true)
85
85
  assert_equal first_comment.notify_by_email, true
86
86
  assert_equal comment.notify_by_email, true
87
- configatron.allow_anonymous_commenting = false
88
-
87
+ configatron.allow_anonymous_commenting = false
88
+
89
89
  comment.unsubscribe_notifications('alicia@foo.com')
90
90
  assert comment.reload.notify_by_email.eql?(false)
91
91
  assert first_comment.reload.notify_by_email.eql?(false)
92
92
  end
93
-
93
+
94
94
  def test_should_not_notify_of_comments_on_post_with_send_notifications_off
95
95
  post = posts(:funny_post)
96
96
  post.send_comment_notifications = false
97
97
  post.save!
98
98
 
99
99
  comment = post.comments.create!(:comment => 'foo', :user => users(:aaron), :recipient => users(:quentin))
100
- assert_difference ActionMailer::Base.deliveries, :length, 0 do
101
- comment.send_notifications
100
+ assert_difference ActionMailer::Base.deliveries, :length, 0 do
101
+ comment.send_notifications
102
102
  end
103
103
  end
104
104
 
105
+ def test_new_comment_should_have_published_role
106
+ post = posts(:funny_post)
107
+ comment = post.comments.create!(:comment => 'foo', :user => users(:aaron), :recipient => users(:quentin))
108
+
109
+ assert_equal 'published', comment.role
110
+ end
111
+
112
+ def test_spam_comment_should_have_pending_role
113
+ post = posts(:funny_post)
114
+
115
+ Comment.any_instance.stubs(:spam?).returns(true)
116
+ configatron.stubs(:akismet_key).returns('1234')
117
+
118
+ comment = post.comments.create!(:comment => 'foo', :user => users(:aaron), :recipient => users(:quentin))
119
+
120
+ assert_equal 'pending', comment.role
121
+ end
122
+
123
+ def test_spam_comment_notification_handling
124
+ post = posts(:funny_post)
125
+
126
+ Comment.any_instance.stubs(:spam?).returns(true)
127
+ configatron.stubs(:akismet_key).returns('1234')
128
+
129
+ comment = post.comments.new(:comment => 'foo', :user => users(:aaron), :recipient => users(:quentin))
130
+
131
+ #no notifications for pending comments
132
+ assert_no_difference ActionMailer::Base.deliveries, :length do
133
+ comment.save!
134
+ end
135
+
136
+ Comment.any_instance.stubs(:spam?).returns(false)
137
+ comment.role = 'published'
138
+ assert_difference ActionMailer::Base.deliveries, :length, 1 do
139
+ comment.save!
140
+ end
141
+ end
142
+
143
+ def test_should_create_user_comment_with_notification
144
+ Comment.any_instance.stubs(:spam?).returns(false)
145
+ user = users(:aaron)
146
+ assert_difference ActionMailer::Base.deliveries, :length, 2 do
147
+ user.comments.create!(:comment => 'foo', :user => users(:dwr), :recipient => users(:aaron))
148
+ end
149
+ end
150
+
151
+ def test_should_create_user_comment_without_notification
152
+ user = users(:aaron)
153
+ user.notify_comments = false
154
+ user.save!
155
+
156
+ assert_no_difference ActionMailer::Base.deliveries, :length do
157
+ user.comments.create!(:comment => 'foo', :user => users(:quentin), :recipient => users(:aaron))
158
+ end
159
+ end
160
+
161
+
105
162
 
106
163
  end
107
-
164
+
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: community_engine
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.3.1
4
+ version: 2.3.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Bruno Bornsztein
@@ -14,112 +14,112 @@ dependencies:
14
14
  name: rails
15
15
  requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
- - - ! '>='
17
+ - - '>='
18
18
  - !ruby/object:Gem::Version
19
19
  version: 3.2.0
20
20
  type: :runtime
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
- - - ! '>='
24
+ - - '>='
25
25
  - !ruby/object:Gem::Version
26
26
  version: 3.2.0
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: rack
29
29
  requirement: !ruby/object:Gem::Requirement
30
30
  requirements:
31
- - - ! '>='
31
+ - - '>='
32
32
  - !ruby/object:Gem::Version
33
33
  version: 1.4.1
34
34
  type: :runtime
35
35
  prerelease: false
36
36
  version_requirements: !ruby/object:Gem::Requirement
37
37
  requirements:
38
- - - ! '>='
38
+ - - '>='
39
39
  - !ruby/object:Gem::Version
40
40
  version: 1.4.1
41
41
  - !ruby/object:Gem::Dependency
42
42
  name: authlogic
43
43
  requirement: !ruby/object:Gem::Requirement
44
44
  requirements:
45
- - - ! '>='
45
+ - - '>='
46
46
  - !ruby/object:Gem::Version
47
47
  version: '0'
48
48
  type: :runtime
49
49
  prerelease: false
50
50
  version_requirements: !ruby/object:Gem::Requirement
51
51
  requirements:
52
- - - ! '>='
52
+ - - '>='
53
53
  - !ruby/object:Gem::Version
54
54
  version: '0'
55
55
  - !ruby/object:Gem::Dependency
56
- name: bcrypt-ruby
56
+ name: bcrypt
57
57
  requirement: !ruby/object:Gem::Requirement
58
58
  requirements:
59
- - - ! '>='
59
+ - - '>='
60
60
  - !ruby/object:Gem::Version
61
61
  version: '0'
62
62
  type: :runtime
63
63
  prerelease: false
64
64
  version_requirements: !ruby/object:Gem::Requirement
65
65
  requirements:
66
- - - ! '>='
66
+ - - '>='
67
67
  - !ruby/object:Gem::Version
68
68
  version: '0'
69
69
  - !ruby/object:Gem::Dependency
70
70
  name: configatron
71
71
  requirement: !ruby/object:Gem::Requirement
72
72
  requirements:
73
- - - ! '>='
73
+ - - ~>
74
74
  - !ruby/object:Gem::Version
75
- version: '0'
75
+ version: '2.0'
76
76
  type: :runtime
77
77
  prerelease: false
78
78
  version_requirements: !ruby/object:Gem::Requirement
79
79
  requirements:
80
- - - ! '>='
80
+ - - ~>
81
81
  - !ruby/object:Gem::Version
82
- version: '0'
82
+ version: '2.0'
83
83
  - !ruby/object:Gem::Dependency
84
84
  name: hpricot
85
85
  requirement: !ruby/object:Gem::Requirement
86
86
  requirements:
87
- - - ! '>='
87
+ - - '>='
88
88
  - !ruby/object:Gem::Version
89
89
  version: '0'
90
90
  type: :runtime
91
91
  prerelease: false
92
92
  version_requirements: !ruby/object:Gem::Requirement
93
93
  requirements:
94
- - - ! '>='
94
+ - - '>='
95
95
  - !ruby/object:Gem::Version
96
96
  version: '0'
97
97
  - !ruby/object:Gem::Dependency
98
98
  name: htmlentities
99
99
  requirement: !ruby/object:Gem::Requirement
100
100
  requirements:
101
- - - ! '>='
101
+ - - '>='
102
102
  - !ruby/object:Gem::Version
103
103
  version: '0'
104
104
  type: :runtime
105
105
  prerelease: false
106
106
  version_requirements: !ruby/object:Gem::Requirement
107
107
  requirements:
108
- - - ! '>='
108
+ - - '>='
109
109
  - !ruby/object:Gem::Version
110
110
  version: '0'
111
111
  - !ruby/object:Gem::Dependency
112
112
  name: haml
113
113
  requirement: !ruby/object:Gem::Requirement
114
114
  requirements:
115
- - - ! '>='
115
+ - - '>='
116
116
  - !ruby/object:Gem::Version
117
117
  version: '0'
118
118
  type: :runtime
119
119
  prerelease: false
120
120
  version_requirements: !ruby/object:Gem::Requirement
121
121
  requirements:
122
- - - ! '>='
122
+ - - '>='
123
123
  - !ruby/object:Gem::Version
124
124
  version: '0'
125
125
  - !ruby/object:Gem::Dependency
@@ -140,70 +140,70 @@ dependencies:
140
140
  name: ri_cal
141
141
  requirement: !ruby/object:Gem::Requirement
142
142
  requirements:
143
- - - ! '>='
143
+ - - '>='
144
144
  - !ruby/object:Gem::Version
145
145
  version: '0'
146
146
  type: :runtime
147
147
  prerelease: false
148
148
  version_requirements: !ruby/object:Gem::Requirement
149
149
  requirements:
150
- - - ! '>='
150
+ - - '>='
151
151
  - !ruby/object:Gem::Version
152
152
  version: '0'
153
153
  - !ruby/object:Gem::Dependency
154
154
  name: rakismet
155
155
  requirement: !ruby/object:Gem::Requirement
156
156
  requirements:
157
- - - ! '>='
157
+ - - '>='
158
158
  - !ruby/object:Gem::Version
159
159
  version: '0'
160
160
  type: :runtime
161
161
  prerelease: false
162
162
  version_requirements: !ruby/object:Gem::Requirement
163
163
  requirements:
164
- - - ! '>='
164
+ - - '>='
165
165
  - !ruby/object:Gem::Version
166
166
  version: '0'
167
167
  - !ruby/object:Gem::Dependency
168
168
  name: aws-sdk
169
169
  requirement: !ruby/object:Gem::Requirement
170
170
  requirements:
171
- - - ! '>='
171
+ - - '>='
172
172
  - !ruby/object:Gem::Version
173
173
  version: '0'
174
174
  type: :runtime
175
175
  prerelease: false
176
176
  version_requirements: !ruby/object:Gem::Requirement
177
177
  requirements:
178
- - - ! '>='
178
+ - - '>='
179
179
  - !ruby/object:Gem::Version
180
180
  version: '0'
181
181
  - !ruby/object:Gem::Dependency
182
182
  name: kaminari
183
183
  requirement: !ruby/object:Gem::Requirement
184
184
  requirements:
185
- - - ! '>='
185
+ - - '>='
186
186
  - !ruby/object:Gem::Version
187
187
  version: '0'
188
188
  type: :runtime
189
189
  prerelease: false
190
190
  version_requirements: !ruby/object:Gem::Requirement
191
191
  requirements:
192
- - - ! '>='
192
+ - - '>='
193
193
  - !ruby/object:Gem::Version
194
194
  version: '0'
195
195
  - !ruby/object:Gem::Dependency
196
196
  name: dynamic_form
197
197
  requirement: !ruby/object:Gem::Requirement
198
198
  requirements:
199
- - - ! '>='
199
+ - - '>='
200
200
  - !ruby/object:Gem::Version
201
201
  version: '0'
202
202
  type: :runtime
203
203
  prerelease: false
204
204
  version_requirements: !ruby/object:Gem::Requirement
205
205
  requirements:
206
- - - ! '>='
206
+ - - '>='
207
207
  - !ruby/object:Gem::Version
208
208
  version: '0'
209
209
  - !ruby/object:Gem::Dependency
@@ -252,28 +252,28 @@ dependencies:
252
252
  name: acts_as_commentable
253
253
  requirement: !ruby/object:Gem::Requirement
254
254
  requirements:
255
- - - '='
255
+ - - ~>
256
256
  - !ruby/object:Gem::Version
257
- version: 3.0.1
257
+ version: 4.0.1
258
258
  type: :runtime
259
259
  prerelease: false
260
260
  version_requirements: !ruby/object:Gem::Requirement
261
261
  requirements:
262
- - - '='
262
+ - - ~>
263
263
  - !ruby/object:Gem::Version
264
- version: 3.0.1
264
+ version: 4.0.1
265
265
  - !ruby/object:Gem::Dependency
266
266
  name: recaptcha
267
267
  requirement: !ruby/object:Gem::Requirement
268
268
  requirements:
269
- - - ! '>='
269
+ - - '>='
270
270
  - !ruby/object:Gem::Version
271
271
  version: '0'
272
272
  type: :runtime
273
273
  prerelease: false
274
274
  version_requirements: !ruby/object:Gem::Requirement
275
275
  requirements:
276
- - - ! '>='
276
+ - - '>='
277
277
  - !ruby/object:Gem::Version
278
278
  version: '0'
279
279
  - !ruby/object:Gem::Dependency
@@ -294,28 +294,28 @@ dependencies:
294
294
  name: prototype-rails
295
295
  requirement: !ruby/object:Gem::Requirement
296
296
  requirements:
297
- - - ! '>='
297
+ - - '>='
298
298
  - !ruby/object:Gem::Version
299
299
  version: '0'
300
300
  type: :runtime
301
301
  prerelease: false
302
302
  version_requirements: !ruby/object:Gem::Requirement
303
303
  requirements:
304
- - - ! '>='
304
+ - - '>='
305
305
  - !ruby/object:Gem::Version
306
306
  version: '0'
307
307
  - !ruby/object:Gem::Dependency
308
308
  name: rails_autolink
309
309
  requirement: !ruby/object:Gem::Requirement
310
310
  requirements:
311
- - - ! '>='
311
+ - - '>='
312
312
  - !ruby/object:Gem::Version
313
313
  version: '0'
314
314
  type: :runtime
315
315
  prerelease: false
316
316
  version_requirements: !ruby/object:Gem::Requirement
317
317
  requirements:
318
- - - ! '>='
318
+ - - '>='
319
319
  - !ruby/object:Gem::Version
320
320
  version: '0'
321
321
  - !ruby/object:Gem::Dependency
@@ -336,14 +336,14 @@ dependencies:
336
336
  name: koala
337
337
  requirement: !ruby/object:Gem::Requirement
338
338
  requirements:
339
- - - ! '>='
339
+ - - '>='
340
340
  - !ruby/object:Gem::Version
341
341
  version: '0'
342
342
  type: :runtime
343
343
  prerelease: false
344
344
  version_requirements: !ruby/object:Gem::Requirement
345
345
  requirements:
346
- - - ! '>='
346
+ - - '>='
347
347
  - !ruby/object:Gem::Version
348
348
  version: '0'
349
349
  - !ruby/object:Gem::Dependency
@@ -378,14 +378,14 @@ dependencies:
378
378
  name: sanitize
379
379
  requirement: !ruby/object:Gem::Requirement
380
380
  requirements:
381
- - - ! '>='
381
+ - - '>='
382
382
  - !ruby/object:Gem::Version
383
383
  version: 2.0.3
384
384
  type: :runtime
385
385
  prerelease: false
386
386
  version_requirements: !ruby/object:Gem::Requirement
387
387
  requirements:
388
- - - ! '>='
388
+ - - '>='
389
389
  - !ruby/object:Gem::Version
390
390
  version: 2.0.3
391
391
  description: CommunityEngine is a free, open-source social network platform for Ruby
@@ -646,6 +646,7 @@ files:
646
646
  - app/views/comments/_comment.html.haml
647
647
  - app/views/comments/_comment_form.html.haml
648
648
  - app/views/comments/_edit_form.html.haml
649
+ - app/views/comments/approve.js.haml
649
650
  - app/views/comments/create.js.rjs
650
651
  - app/views/comments/edit.js.rjs
651
652
  - app/views/comments/index.html.haml
@@ -910,6 +911,7 @@ files:
910
911
  - db/migrate/078_create_authorizations.rb
911
912
  - db/migrate/079_create_slugs.rb
912
913
  - db/migrate/080_migrate_to_acts_as_taggable_on.rb
914
+ - db/migrate/090_add_comment_role.rb
913
915
  - db/sample/users.rb
914
916
  - generators/ce_plugin/USAGE
915
917
  - generators/ce_plugin/ce_plugin_generator.rb
@@ -928,7 +930,6 @@ files:
928
930
  - lib/community_engine/engines_extensions.rb
929
931
  - lib/community_engine/i18n_extensions.rb
930
932
  - lib/community_engine/localized_application.rb
931
- - lib/community_engine/rails_asset_extensions.rb
932
933
  - lib/community_engine/url_upload.rb
933
934
  - lib/community_engine/version.rb
934
935
  - lib/community_engine/viewable.rb
@@ -968,6 +969,7 @@ files:
968
969
  - test/functional/admin_controller_test.rb
969
970
  - test/functional/ads_controller_test.rb
970
971
  - test/functional/albums_controller_test.rb
972
+ - test/functional/authorizations_controller_test.rb
971
973
  - test/functional/base_controller_test.rb
972
974
  - test/functional/categories_controller_test.rb
973
975
  - test/functional/clippings_controller_test.rb
@@ -1148,7 +1150,9 @@ files:
1148
1150
  - vendor/plugins/white_list/lib/white_list_helper.rb
1149
1151
  - vendor/plugins/white_list/test/white_list_test.rb
1150
1152
  homepage: http://www.communityengine.org
1151
- licenses: []
1153
+ licenses:
1154
+ - MIT
1155
+ - see each plugin
1152
1156
  metadata: {}
1153
1157
  post_install_message:
1154
1158
  rdoc_options: []
@@ -1156,17 +1160,17 @@ require_paths:
1156
1160
  - lib
1157
1161
  required_ruby_version: !ruby/object:Gem::Requirement
1158
1162
  requirements:
1159
- - - ! '>='
1163
+ - - '>='
1160
1164
  - !ruby/object:Gem::Version
1161
1165
  version: '0'
1162
1166
  required_rubygems_version: !ruby/object:Gem::Requirement
1163
1167
  requirements:
1164
- - - ! '>'
1168
+ - - '>'
1165
1169
  - !ruby/object:Gem::Version
1166
1170
  version: 1.3.1
1167
1171
  requirements: []
1168
1172
  rubyforge_project:
1169
- rubygems_version: 2.0.6
1173
+ rubygems_version: 2.1.11
1170
1174
  signing_key:
1171
1175
  specification_version: 4
1172
1176
  summary: CommunityEngine for Rails 3