From d915009407db39743ea9814d5e263dc93c25ed54 Mon Sep 17 00:00:00 2001 From: evazion Date: Sat, 22 Feb 2020 00:30:58 -0600 Subject: [PATCH] aliases/implications: remove dead approving/updating code. Remove the edit, update, and approve endpoints for tag aliases and implications. These have been useless since individual alias and implication requests were removed. Aliases and implications could only be edited or approved if they were in the pending state, which is no longer possible. Also remove unused new alias/implication request forms. --- app/controllers/tag_aliases_controller.rb | 25 +---------- .../tag_implications_controller.rb | 25 +---------- app/helpers/application_helper.rb | 4 +- app/models/tag_relationship.rb | 9 +--- app/views/tag_alias_requests/new.html.erb | 40 ----------------- app/views/tag_aliases/_listing.html.erb | 8 ---- app/views/tag_aliases/approve.js.erb | 1 - app/views/tag_aliases/edit.html.erb | 16 ------- app/views/tag_aliases/show.html.erb | 4 -- .../tag_implication_requests/new.html.erb | 40 ----------------- app/views/tag_implications/_listing.html.erb | 8 ---- app/views/tag_implications/approve.js.erb | 1 - app/views/tag_implications/edit.html.erb | 16 ------- app/views/tag_implications/show.html.erb | 4 -- config/routes.rb | 12 +---- .../functional/tag_aliases_controller_test.rb | 44 ------------------- .../tag_implications_controller_test.rb | 41 ----------------- 17 files changed, 9 insertions(+), 289 deletions(-) delete mode 100644 app/views/tag_alias_requests/new.html.erb delete mode 100644 app/views/tag_aliases/approve.js.erb delete mode 100644 app/views/tag_aliases/edit.html.erb delete mode 100644 app/views/tag_implication_requests/new.html.erb delete mode 100644 app/views/tag_implications/approve.js.erb delete mode 100644 app/views/tag_implications/edit.html.erb diff --git a/app/controllers/tag_aliases_controller.rb b/app/controllers/tag_aliases_controller.rb index 68116d1db..276502f1b 100644 --- a/app/controllers/tag_aliases_controller.rb +++ b/app/controllers/tag_aliases_controller.rb @@ -1,5 +1,5 @@ class TagAliasesController < ApplicationController - before_action :admin_only, :only => [:approve, :new, :create] + before_action :admin_only, only: [:destroy] respond_to :html, :xml, :json, :js def show @@ -7,20 +7,6 @@ class TagAliasesController < ApplicationController respond_with(@tag_alias) end - def edit - @tag_alias = TagAlias.find(params[:id]) - end - - def update - @tag_alias = TagAlias.find(params[:id]) - - if @tag_alias.is_pending? && @tag_alias.editable_by?(CurrentUser.user) - @tag_alias.update(tag_alias_params) - end - - respond_with(@tag_alias) - end - def index @tag_aliases = TagAlias.paginated_search(params, count_pages: true) @tag_aliases = @tag_aliases.includes(:antecedent_tag, :consequent_tag, :approver) if request.format.html? @@ -30,16 +16,9 @@ class TagAliasesController < ApplicationController def destroy @tag_alias = TagAlias.find(params[:id]) - raise User::PrivilegeError unless @tag_alias.deletable_by?(CurrentUser.user) - @tag_alias.reject! - respond_with(@tag_alias, location: tag_aliases_path, notice: "Tag alias was deleted") - end - def approve - @tag_alias = TagAlias.find(params[:id]) - @tag_alias.approve!(approver: CurrentUser.user) - respond_with(@tag_alias, :location => tag_alias_path(@tag_alias)) + respond_with(@tag_alias, location: tag_aliases_path, notice: "Tag alias was deleted") end private diff --git a/app/controllers/tag_implications_controller.rb b/app/controllers/tag_implications_controller.rb index b7e099f18..76c2f1fe2 100644 --- a/app/controllers/tag_implications_controller.rb +++ b/app/controllers/tag_implications_controller.rb @@ -1,5 +1,5 @@ class TagImplicationsController < ApplicationController - before_action :admin_only, :only => [:new, :create, :approve] + before_action :admin_only, only: [:destroy] respond_to :html, :xml, :json, :js def show @@ -7,20 +7,6 @@ class TagImplicationsController < ApplicationController respond_with(@tag_implication) end - def edit - @tag_implication = TagImplication.find(params[:id]) - end - - def update - @tag_implication = TagImplication.find(params[:id]) - - if @tag_implication.is_pending? && @tag_implication.editable_by?(CurrentUser.user) - @tag_implication.update(tag_implication_params) - end - - respond_with(@tag_implication) - end - def index @tag_implications = TagImplication.paginated_search(params, count_pages: true) @tag_implications = @tag_implications.includes(:antecedent_tag, :consequent_tag, :approver) if request.format.html? @@ -30,16 +16,9 @@ class TagImplicationsController < ApplicationController def destroy @tag_implication = TagImplication.find(params[:id]) - raise User::PrivilegeError unless @tag_implication.deletable_by?(CurrentUser.user) - @tag_implication.reject! - respond_with(@tag_implication, location: tag_implications_path, notice: "Tag implication was deleted") - end - def approve - @tag_implication = TagImplication.find(params[:id]) - @tag_implication.approve!(approver: CurrentUser.user) - respond_with(@tag_implication, :location => tag_implication_path(@tag_implication)) + respond_with(@tag_implication, location: tag_implications_path, notice: "Tag implication was deleted") end private diff --git a/app/helpers/application_helper.rb b/app/helpers/application_helper.rb index 86ff88415..8ce810f13 100644 --- a/app/helpers/application_helper.rb +++ b/app/helpers/application_helper.rb @@ -366,10 +366,10 @@ module ApplicationHelper when "moderator/dashboards" /^\/moderator/ - when "tag_aliases", "tag_alias_requests" + when "tag_aliases" /^\/tag_aliases/ - when "tag_implications", "tag_implication_requests" + when "tag_implications", /^\/tag_implications/ when "wiki_pages", "wiki_page_versions" diff --git a/app/models/tag_relationship.rb b/app/models/tag_relationship.rb index 994e2531b..be6827fe2 100644 --- a/app/models/tag_relationship.rb +++ b/app/models/tag_relationship.rb @@ -66,14 +66,7 @@ class TagRelationship < ApplicationRecord end def deletable_by?(user) - return true if user.is_admin? - return true if is_pending? && user.is_builder? - return true if is_pending? && user.id == creator_id - return false - end - - def editable_by?(user) - deletable_by?(user) + user.is_admin? end def reject!(update_topic: true) diff --git a/app/views/tag_alias_requests/new.html.erb b/app/views/tag_alias_requests/new.html.erb deleted file mode 100644 index c08e116ae..000000000 --- a/app/views/tag_alias_requests/new.html.erb +++ /dev/null @@ -1,40 +0,0 @@ -
-
-

Tag Alias Request

- - <%= error_messages_for :tag_alias_request %> - -

You can request a new tag alias be created. This will create a corresponding forum topic for community review.

- - <%= form_tag(tag_alias_request_path, :class => "simple_form") do %> -
- - <%= text_field "tag_alias_request", "antecedent_name", :data => { :autocomplete => "tag" } %> -
- -
- - <%= text_field "tag_alias_request", "consequent_name", :data => { :autocomplete => "tag" } %> -
- -
- <%= dtext_field "tag_alias_request", "reason", :name => "Reason" %> -
- -
- -

You can ignore the wiki page and minimum count requirements

-
- -
- <%= submit_tag "Submit" %> - <%= dtext_preview_button "tag_alias_request", "reason" %> -
- <% end %> -
-
- -<%= render "tag_aliases/secondary_links" %> diff --git a/app/views/tag_aliases/_listing.html.erb b/app/views/tag_aliases/_listing.html.erb index 9fdafc433..09867f87e 100644 --- a/app/views/tag_aliases/_listing.html.erb +++ b/app/views/tag_aliases/_listing.html.erb @@ -21,16 +21,8 @@ <% t.column column: "control", width: "15%" do |tag_alias| %> <%= link_to "Show", tag_alias_path(tag_alias) %> - <% if tag_alias.is_pending? && tag_alias.editable_by?(CurrentUser.user) %> - | <%= link_to "Edit", edit_tag_alias_path(tag_alias) %> - <% end %> - <% if tag_alias.deletable_by?(CurrentUser.user) %> | <%= link_to "Delete", tag_alias_path(tag_alias), :remote => true, :method => :delete, :data => {:confirm => "Are you sure you want to delete this alias?"} %> <% end %> - - <% if CurrentUser.user.is_admin? && tag_alias.is_pending? %> - | <%= link_to "Approve", approve_tag_alias_path(tag_alias), :remote => true, :method => :post %> - <% end %> <% end %> <% end %> diff --git a/app/views/tag_aliases/approve.js.erb b/app/views/tag_aliases/approve.js.erb deleted file mode 100644 index ec051ec70..000000000 --- a/app/views/tag_aliases/approve.js.erb +++ /dev/null @@ -1 +0,0 @@ -$("#tag-alias-status-for-<%= @tag_alias.id %>").html("queued"); diff --git a/app/views/tag_aliases/edit.html.erb b/app/views/tag_aliases/edit.html.erb deleted file mode 100644 index f2211621b..000000000 --- a/app/views/tag_aliases/edit.html.erb +++ /dev/null @@ -1,16 +0,0 @@ -
-
-

Edit Tag Alias

- - <%= error_messages_for :tag_alias %> - - <%= edit_form_for(@tag_alias) do |f| %> - <%= f.input :antecedent_name, :as => :string, :label => "From" %> - <%= f.input :consequent_name, :label => "To" %> - <%= f.input :forum_topic_id, :label => "Forum" %> - <%= f.button :submit, :data => { :disable_with => "Updating..." } %> - <% end %> -
-
- -<%= render "secondary_links" %> diff --git a/app/views/tag_aliases/show.html.erb b/app/views/tag_aliases/show.html.erb index fb6d091e6..531d1d9e7 100644 --- a/app/views/tag_aliases/show.html.erb +++ b/app/views/tag_aliases/show.html.erb @@ -19,10 +19,6 @@ <% end %>
  • Status <%= @tag_alias.status %>
  • - - <% if CurrentUser.is_admin? && @tag_alias.is_pending? %> -
  • Commands <%= link_to "Approve", approve_tag_alias_path(@tag_alias), :method => :post %>
  • - <% end %> diff --git a/app/views/tag_implication_requests/new.html.erb b/app/views/tag_implication_requests/new.html.erb deleted file mode 100644 index b62c53d90..000000000 --- a/app/views/tag_implication_requests/new.html.erb +++ /dev/null @@ -1,40 +0,0 @@ -
    -
    -

    Tag Implication Request

    - - <%= error_messages_for :tag_implication_request %> - -

    You can request a new tag implication be created. This will create a corresponding forum topic for community review.

    - - <%= form_tag(tag_implication_request_path, :class => "simple_form") do %> -
    - - <%= text_field "tag_implication_request", "antecedent_name", :data => { :autocomplete => "tag" } %> -
    - -
    - - <%= text_field "tag_implication_request", "consequent_name", :data => { :autocomplete => "tag" } %> -
    - -
    - <%= dtext_field "tag_implication_request", "reason", :name => "Reason" %> -
    - -
    - -

    You can ignore the wiki page and minimum count requirements

    -
    - -
    - <%= submit_tag "Submit" %> - <%= dtext_preview_button "tag_implication_request", "reason" %> -
    - <% end %> -
    -
    - -<%= render "tag_implications/secondary_links" %> diff --git a/app/views/tag_implications/_listing.html.erb b/app/views/tag_implications/_listing.html.erb index 3d633bc31..09a969cc0 100644 --- a/app/views/tag_implications/_listing.html.erb +++ b/app/views/tag_implications/_listing.html.erb @@ -21,16 +21,8 @@ <% t.column column: "control", width: "15%" do |tag_implication| %> <%= link_to "Show", tag_implication_path(tag_implication) %> - <% if tag_implication.is_pending? && tag_implication.editable_by?(CurrentUser.user) %> - | <%= link_to "Edit", edit_tag_implication_path(tag_implication) %> - <% end %> - <% if tag_implication.deletable_by?(CurrentUser.user) %> | <%= link_to "Delete", tag_implication_path(tag_implication), :remote => true, :method => :delete, :data => {:confirm => "Are you sure you want to delete this implication?"} %> <% end %> - - <% if CurrentUser.user.is_admin? && tag_implication.is_pending? %> - | <%= link_to "Approve", approve_tag_implication_path(tag_implication), :remote => true, :method => :post %> - <% end %> <% end %> <% end %> diff --git a/app/views/tag_implications/approve.js.erb b/app/views/tag_implications/approve.js.erb deleted file mode 100644 index 1849bc49c..000000000 --- a/app/views/tag_implications/approve.js.erb +++ /dev/null @@ -1 +0,0 @@ -$("#tag-implication-status-for-<%= @tag_implication.id %>").html("queued"); diff --git a/app/views/tag_implications/edit.html.erb b/app/views/tag_implications/edit.html.erb deleted file mode 100644 index b91bd9542..000000000 --- a/app/views/tag_implications/edit.html.erb +++ /dev/null @@ -1,16 +0,0 @@ -
    -
    -

    Edit Tag Implication

    - - <%= error_messages_for :tag_implication %> - - <%= edit_form_for(@tag_implication) do |f| %> - <%= f.input :antecedent_name, :label => "From" %> - <%= f.input :consequent_name, :label => "To" %> - <%= f.input :forum_topic_id, :label => "Forum" %> - <%= f.button :submit, :data => { :disable_with => "Updating..." } %> - <% end %> -
    -
    - -<%= render "secondary_links" %> diff --git a/app/views/tag_implications/show.html.erb b/app/views/tag_implications/show.html.erb index a2236267e..f4717d050 100644 --- a/app/views/tag_implications/show.html.erb +++ b/app/views/tag_implications/show.html.erb @@ -19,10 +19,6 @@ <% end %>
  • Status: <%= @tag_implication.status %>
  • - - <% if CurrentUser.is_admin? && @tag_implication.is_pending? %> -
  • Commands <%= link_to "Approve", approve_tag_implication_path(@tag_implication), :method => :post %>
  • - <% end %> diff --git a/config/routes.rb b/config/routes.rb index 7be2ca840..d5ad09293 100644 --- a/config/routes.rb +++ b/config/routes.rb @@ -241,16 +241,8 @@ Rails.application.routes.draw do get :autocomplete end end - resources :tag_aliases do - member do - post :approve - end - end - resources :tag_implications do - member do - post :approve - end - end + resources :tag_aliases, only: [:show, :index, :destroy] + resources :tag_implications, only: [:show, :index, :destroy] resources :uploads do collection do post :preprocess diff --git a/test/functional/tag_aliases_controller_test.rb b/test/functional/tag_aliases_controller_test.rb index 1805ca893..540e253eb 100644 --- a/test/functional/tag_aliases_controller_test.rb +++ b/test/functional/tag_aliases_controller_test.rb @@ -7,50 +7,6 @@ class TagAliasesControllerTest < ActionDispatch::IntegrationTest @tag_alias = create(:tag_alias, antecedent_name: "aaa", consequent_name: "bbb") end - context "edit action" do - should "render" do - get_auth edit_tag_alias_path(@tag_alias), @user - assert_response :success - end - end - - context "update action" do - context "for a pending alias" do - setup do - as_admin do - @tag_alias.update(status: "pending") - end - end - - should "succeed" do - put_auth tag_alias_path(@tag_alias), @user, params: {:tag_alias => {:antecedent_name => "xxx"}} - @tag_alias.reload - assert_equal("xxx", @tag_alias.antecedent_name) - end - - should "not allow changing the status" do - put_auth tag_alias_path(@tag_alias), @user, params: {:tag_alias => {:status => "active"}} - @tag_alias.reload - assert_equal("pending", @tag_alias.status) - end - - # TODO: Broken in shoulda-matchers 2.8.0. Need to upgrade to 3.1.1. - # should_eventually permit(:antecedent_name, :consequent_name, :forum_topic_id).for(:update) - end - - context "for an approved alias" do - setup do - @tag_alias.update_attribute(:status, "approved") - end - - should "fail" do - put_auth tag_alias_path(@tag_alias), @user, params: {:tag_alias => {:antecedent_name => "xxx"}} - @tag_alias.reload - assert_equal("aaa", @tag_alias.antecedent_name) - end - end - end - context "index action" do should "list all tag alias" do get_auth tag_aliases_path, @user diff --git a/test/functional/tag_implications_controller_test.rb b/test/functional/tag_implications_controller_test.rb index 81b024837..29dd4dd05 100644 --- a/test/functional/tag_implications_controller_test.rb +++ b/test/functional/tag_implications_controller_test.rb @@ -7,47 +7,6 @@ class TagImplicationsControllerTest < ActionDispatch::IntegrationTest @tag_implication = create(:tag_implication, antecedent_name: "aaa", consequent_name: "bbb") end - context "edit action" do - should "render" do - get_auth tag_implication_path(@tag_implication), @user - assert_response :success - end - end - - context "update action" do - context "for a pending implication" do - setup do - as_admin do - @tag_implication.update(status: "pending") - end - end - - should "succeed" do - put_auth tag_implication_path(@tag_implication), @user, params: {:tag_implication => {:antecedent_name => "xxx"}} - @tag_implication.reload - assert_equal("xxx", @tag_implication.antecedent_name) - end - - should "not allow changing the status" do - put_auth tag_implication_path(@tag_implication), @user, params: {:tag_implication => {:status => "active"}} - @tag_implication.reload - assert_equal("pending", @tag_implication.status) - end - end - - context "for an approved implication" do - setup do - @tag_implication.update_attribute(:status, "approved") - end - - should "fail" do - put_auth tag_implication_path(@tag_implication), @user, params: {:tag_implication => {:antecedent_name => "xxx"}} - @tag_implication.reload - assert_equal("aaa", @tag_implication.antecedent_name) - end - end - end - context "index action" do should "list all tag implications" do get tag_implications_path