]> git.openstreetmap.org Git - rails.git/commitdiff
Show edit links for revoked blocks to revokers
authorAnton Khorev <tony29@yandex.ru>
Thu, 25 Jul 2024 01:05:31 +0000 (04:05 +0300)
committerAnton Khorev <tony29@yandex.ru>
Thu, 25 Jul 2024 01:05:31 +0000 (04:05 +0300)
app/views/user_blocks/_block.html.erb
app/views/user_blocks/show.html.erb
test/controllers/user_blocks_controller_test.rb

index 461dc7a8d9e8ef6c19b34a80ce1a05900c17455f..a18d1dbdbabe51a753515e138fad795483d2b422 100644 (file)
@@ -15,7 +15,8 @@
     <% end %>
   </td>
   <td><%= link_to t(".show"), block %></td>
     <% end %>
   </td>
   <td><%= link_to t(".show"), block %></td>
-  <td><% if current_user and current_user.id == block.creator_id %><%= link_to t(".edit"), edit_user_block_path(block) %><% end %></td>
+  <td><% if current_user && (current_user.id == block.creator_id ||
+                             current_user.id == block.revoker_id) %><%= link_to t(".edit"), edit_user_block_path(block) %><% end %></td>
   <% if show_revoke_link %>
   <td><% if block.active? %><%= link_to t(".revoke"), revoke_user_block_path(block) %><% end %></td>
   <% end %>
   <% if show_revoke_link %>
   <td><% if block.active? %><%= link_to t(".revoke"), revoke_user_block_path(block) %><% end %></td>
   <% end %>
index 619cd6c3f0c58d3fdee045698ca72b59882fd0b2..c36c043cf80434d2f3120bf767154c69fb33323a 100644 (file)
   <dd class="col-sm-9"><div class="richtext text-break"><%= @user_block.reason.to_html %></div></dd>
 </dl>
 
   <dd class="col-sm-9"><div class="richtext text-break"><%= @user_block.reason.to_html %></div></dd>
 </dl>
 
-<% if current_user&.id == @user_block.creator_id || can?(:revoke, UserBlock) && @user_block.active? %>
+<% if current_user && (current_user.id == @user_block.creator_id ||
+                       current_user.id == @user_block.revoker_id) ||
+      can?(:revoke, UserBlock) && @user_block.active? %>
   <div>
   <div>
-    <% if current_user&.id == @user_block.creator_id %>
+    <% if current_user && (current_user.id == @user_block.creator_id ||
+                           current_user.id == @user_block.revoker_id) %>
       <%= link_to t(".edit"), edit_user_block_path(@user_block), :class => "btn btn-outline-primary" %>
     <% end %>
     <% if can?(:revoke, UserBlock) && @user_block.active? %>
       <%= link_to t(".edit"), edit_user_block_path(@user_block), :class => "btn btn-outline-primary" %>
     <% end %>
     <% if can?(:revoke, UserBlock) && @user_block.active? %>
index dd0b1287b414c7805395a82bcccb62c0b5c773e6..d164d6aef3114d6f00d45abadb2433a43eb164c3 100644 (file)
@@ -212,7 +212,7 @@ class UserBlocksControllerTest < ActionDispatch::IntegrationTest
     check_block_buttons block, :edit => 1
 
     session_for(revoker_user)
     check_block_buttons block, :edit => 1
 
     session_for(revoker_user)
-    check_block_buttons block
+    check_block_buttons block, :edit => 1
   end
 
   private
   end
 
   private