diff --git a/app/controllers/concerns/access_request_actions.rb b/app/controllers/concerns/access_request_actions.rb
index 1b0a1fe308154a9b70044289cec0ba91ccf8f0e8..c4d22749d6a8a5b9874a6031a4eb1d2a9dd7f963 100644
--- a/app/controllers/concerns/access_request_actions.rb
+++ b/app/controllers/concerns/access_request_actions.rb
@@ -8,7 +8,7 @@ module AccessRequestActions
                 notice: 'Your request for access has been queued for review.'
   end
 
-  def approve
+  def approve_access_request
     @member = access_requestable_resource.public_send(member_entity_name.pluralize).request.find(params[:id])
 
     return render_403 unless can?(current_user, :"update_#{member_entity_name}", @member)
diff --git a/app/helpers/members_helper.rb b/app/helpers/members_helper.rb
index 6599c59d1c9325d1a187fbc3dfa015431dd89529..bd84b8b239fdbbdf34e659126aa2aaf35842025c 100644
--- a/app/helpers/members_helper.rb
+++ b/app/helpers/members_helper.rb
@@ -53,9 +53,9 @@ module MembersHelper
   def approve_request_member_path(member)
     case member.source
     when Project
-      approve_namespace_project_project_member_path(member.source.namespace, member.source, member)
+      approve_access_request_namespace_project_project_member_path(member.source.namespace, member.source, member)
     when Group
-      approve_group_group_member_path(member.source, member)
+      approve_access_request_group_group_member_path(member.source, member)
     else
       raise ArgumentError.new('Unknown object class')
     end
diff --git a/config/routes.rb b/config/routes.rb
index 2eccb19deff2c8e3bf1bebd53e4acca6f98d6a9b..f5574fb99a57cd64cf80af04db21c484c7e60822 100644
--- a/config/routes.rb
+++ b/config/routes.rb
@@ -32,7 +32,7 @@ Rails.application.routes.draw do
 
   concern :access_requestable do
     post :request_access, on: :collection
-    post :approve_access_request_access_request, on: :member
+    post :approve_access_request, on: :member
   end
 
   namespace :ci do
@@ -414,16 +414,9 @@ Rails.application.routes.draw do
     end
 
     scope module: :groups do
-      resources :group_members, only: [:index, :create, :update, :destroy] do
-        collection do
-          delete :leave
-          post :request_access
-        end
-
-        member do
-          post :resend_invite
-          post :approve
-        end
+      resources :group_members, only: [:index, :create, :update, :destroy], concerns: :access_requestable do
+        post :resend_invite, on: :member
+        delete :leave, on: :collection
       end
 
       resource :avatar, only: [:destroy]
@@ -777,10 +770,9 @@ Rails.application.routes.draw do
           end
         end
 
-        resources :project_members, except: [:new, :edit], constraints: { id: /[a-zA-Z.\/0-9_\-#%+]+/ } do
+        resources :project_members, except: [:new, :edit], constraints: { id: /[a-zA-Z.\/0-9_\-#%+]+/ }, concerns: :access_requestable do
           collection do
             delete :leave
-            post :request_access
 
             # Used for import team
             # from another project
@@ -790,7 +782,6 @@ Rails.application.routes.draw do
 
           member do
             post :resend_invite
-            post :approve
           end
         end
 
diff --git a/spec/helpers/members_helper_spec.rb b/spec/helpers/members_helper_spec.rb
index f1782146241d8286e82fa10691d9757ae7ef3162..c2f10e1db75deb9c6d3f968ab7cb5c08a032026b 100644
--- a/spec/helpers/members_helper_spec.rb
+++ b/spec/helpers/members_helper_spec.rb
@@ -72,8 +72,8 @@ describe MembersHelper do
     let(:project_member) { create(:project_member) }
     let(:group_member) { create(:group_member) }
 
-    it { expect(approve_request_member_path(project_member)).to eq approve_namespace_project_project_member_path(project_member.source.namespace, project_member.source, project_member) }
-    it { expect(approve_request_member_path(group_member)).to eq approve_group_group_member_path(group_member.source, group_member) }
+    it { expect(approve_request_member_path(project_member)).to eq approve_access_request_namespace_project_project_member_path(project_member.source.namespace, project_member.source, project_member) }
+    it { expect(approve_request_member_path(group_member)).to eq approve_access_request_group_group_member_path(group_member.source, group_member) }
     it { expect { approve_request_member_path(double(:member, source: 'foo')) }.to raise_error ArgumentError, 'Unknown object class' }
   end