Commit b3cf98f7d72d304ef3114a87a0a260b5f8a1f25d
1 parent
d6f15e02
Exists in
master
and in
22 other branches
ActionItem378: define permissions to tasks
git-svn-id: https://svn.colivre.coop.br/svn/noosfero/trunk@1884 3f533792-8f58-4932-b0fe-aaf55b0a4547
Showing
10 changed files
with
43 additions
and
1 deletions
Show diff stats
app/controllers/my_profile/profile_editor_controller.rb
| @@ -3,7 +3,7 @@ class ProfileEditorController < MyProfileController | @@ -3,7 +3,7 @@ class ProfileEditorController < MyProfileController | ||
| 3 | protect 'edit_profile', :profile, :only => [:index, :edit] | 3 | protect 'edit_profile', :profile, :only => [:index, :edit] |
| 4 | 4 | ||
| 5 | def index | 5 | def index |
| 6 | - @pending_tasks = profile.tasks.pending | 6 | + @pending_tasks = profile.tasks.pending.select{|i| user.has_permission?(i.permission, profile)} |
| 7 | end | 7 | end |
| 8 | 8 | ||
| 9 | helper :profile | 9 | helper :profile |
app/models/add_friend.rb
app/models/add_member.rb
app/models/create_enterprise.rb
app/models/task.rb
| @@ -116,6 +116,11 @@ class Task < ActiveRecord::Base | @@ -116,6 +116,11 @@ class Task < ActiveRecord::Base | ||
| 116 | nil | 116 | nil |
| 117 | end | 117 | end |
| 118 | 118 | ||
| 119 | + # What permission is required to perform task? | ||
| 120 | + def permission | ||
| 121 | + :perform_task | ||
| 122 | + end | ||
| 123 | + | ||
| 119 | protected | 124 | protected |
| 120 | 125 | ||
| 121 | # This method must be overrided in subclasses, and its implementation must do | 126 | # This method must be overrided in subclasses, and its implementation must do |
test/unit/add_friend_test.rb
| @@ -82,4 +82,9 @@ class AddFriendTest < ActiveSupport::TestCase | @@ -82,4 +82,9 @@ class AddFriendTest < ActiveSupport::TestCase | ||
| 82 | assert_equal 'testuser1 wants to be your friend', task.description | 82 | assert_equal 'testuser1 wants to be your friend', task.description |
| 83 | end | 83 | end |
| 84 | 84 | ||
| 85 | + should 'has permission to manage friends' do | ||
| 86 | + t = AddFriend.new | ||
| 87 | + assert_equal :manage_friends, t.permission | ||
| 88 | + end | ||
| 89 | + | ||
| 85 | end | 90 | end |
test/unit/add_member_test.rb
| @@ -66,4 +66,9 @@ class AddMemberTest < ActiveSupport::TestCase | @@ -66,4 +66,9 @@ class AddMemberTest < ActiveSupport::TestCase | ||
| 66 | assert_same t.target, t.community | 66 | assert_same t.target, t.community |
| 67 | end | 67 | end |
| 68 | 68 | ||
| 69 | + should 'has permission to manage members' do | ||
| 70 | + t = AddMember.new | ||
| 71 | + assert_equal :manage_memberships, t.permission | ||
| 72 | + end | ||
| 73 | + | ||
| 69 | end | 74 | end |
test/unit/change_password_test.rb
| @@ -105,5 +105,10 @@ class ChangePasswordTest < Test::Unit::TestCase | @@ -105,5 +105,10 @@ class ChangePasswordTest < Test::Unit::TestCase | ||
| 105 | end | 105 | end |
| 106 | end | 106 | end |
| 107 | 107 | ||
| 108 | + should 'has default permission' do | ||
| 109 | + t1 = Task.new | ||
| 110 | + t2 = ChangePassword.new | ||
| 111 | + assert_equal t1.permission, t2.permission | ||
| 112 | + end | ||
| 108 | 113 | ||
| 109 | end | 114 | end |
test/unit/create_enterprise_test.rb
| @@ -186,4 +186,9 @@ class CreateEnterpriseTest < Test::Unit::TestCase | @@ -186,4 +186,9 @@ class CreateEnterpriseTest < Test::Unit::TestCase | ||
| 186 | assert request.errors.invalid?(:identifier) | 186 | assert request.errors.invalid?(:identifier) |
| 187 | end | 187 | end |
| 188 | 188 | ||
| 189 | + should 'has permission to validate enterprise' do | ||
| 190 | + t = CreateEnterprise.new | ||
| 191 | + assert_equal :validate_enterprise, t.permission | ||
| 192 | + end | ||
| 193 | + | ||
| 189 | end | 194 | end |
test/unit/task_test.rb
| @@ -169,6 +169,11 @@ class TaskTest < Test::Unit::TestCase | @@ -169,6 +169,11 @@ class TaskTest < Test::Unit::TestCase | ||
| 169 | assert_equal [t2], Task.finished | 169 | assert_equal [t2], Task.finished |
| 170 | end | 170 | end |
| 171 | 171 | ||
| 172 | + should 'has perform task permission' do | ||
| 173 | + t = Task.new | ||
| 174 | + assert_equal :perform_task, t.permission | ||
| 175 | + end | ||
| 176 | + | ||
| 172 | protected | 177 | protected |
| 173 | 178 | ||
| 174 | def sample_user | 179 | def sample_user |