Browse Source

Fixes #4664 - Visiting any /#ticket/view link while not signed in only shows a blank page and does not redirect to login screen

Martin Edenhofer 1 year ago
parent
commit
d80710acaf

+ 3 - 0
app/assets/javascripts/app/controllers/agent_ticket_create.coffee

@@ -810,6 +810,9 @@ class Router extends App.ControllerPermanent
       @navigate "#ticket/create/id/#{id}#{split}"
       return
 
+    # check authentication
+    @authenticateCheckRedirect()
+
     # cleanup params
     clean_params =
       ticket_id:   params.ticket_id

+ 3 - 0
app/assets/javascripts/app/controllers/ticket_overview.coffee

@@ -238,6 +238,9 @@ class TicketOverviewRouter extends App.ControllerPermanent
   constructor: (params) ->
     super
 
+    # check authentication
+    @authenticateCheckRedirect()
+
     # cleanup params
     clean_params =
       view: params.view

+ 3 - 3
app/assets/javascripts/app/controllers/user_profile.coffee

@@ -4,9 +4,6 @@ class App.UserProfile extends App.Controller
   constructor: (params) ->
     super
 
-    # check authentication
-    @authenticateCheckRedirect()
-
     # fetch new data if needed
     App.User.full(@user_id, @render)
 
@@ -87,6 +84,9 @@ class Router extends App.ControllerPermanent
   constructor: (params) ->
     super
 
+    # check authentication
+    @authenticateCheckRedirect()
+
     # cleanup params
     clean_params =
       user_id:  params.user_id

+ 10 - 0
spec/system/organization/profile_spec.rb

@@ -7,6 +7,16 @@ require 'system/examples/core_workflow_examples'
 RSpec.describe 'Organization Profile', type: :system do
   let(:organization) { create(:organization) }
 
+  describe 'when calling without session' do
+    describe 'redirect to' do
+      it 'login screen', authenticated_as: false do
+        visit "#organization/profile/#{organization.id}"
+
+        expect(page).to have_selector('#login')
+      end
+    end
+  end
+
   describe 'Core Workflow' do
     include_examples 'core workflow' do
       let(:object_name) { 'Organization' }

+ 18 - 0
spec/system/ticket/create_spec.rb

@@ -6,6 +6,24 @@ require 'system/examples/core_workflow_examples'
 require 'system/examples/text_modules_examples'
 
 RSpec.describe 'Ticket Create', type: :system do
+
+  context 'when calling without session' do
+    describe 'redirect to' do
+
+      it 'login screen after certain create was called', authenticated_as: false do
+        visit '#ticket/create/id/1234'
+
+        expect(page).to have_selector('#login')
+      end
+
+      it 'login screen after generic create was called', authenticated_as: false do
+        visit '#ticket/create'
+
+        expect(page).to have_selector('#login')
+      end
+    end
+  end
+
   context 'when logged in as non admin' do
     let(:agent) { create(:agent) }
 

+ 16 - 0
spec/system/ticket/view_spec.rb

@@ -7,6 +7,22 @@ RSpec.describe 'Ticket views', authenticated_as: :authenticate, type: :system do
     true
   end
 
+  context 'when calling without session' do
+    describe 'redirect to' do
+      it 'login screen after certain overview was called', authenticated_as: false do
+        visit '#ticket/view/all_open'
+
+        expect(page).to have_selector('#login')
+      end
+
+      it 'login screen after not overview was called', authenticated_as: false do
+        visit '#ticket/view'
+
+        expect(page).to have_selector('#login')
+      end
+    end
+  end
+
   context 'macros' do
     let(:group1)              { create(:group) }
     let(:group2)              { create(:group) }

+ 10 - 0
spec/system/user/profile_spec.rb

@@ -70,6 +70,16 @@ RSpec.describe 'User Profile', type: :system do
     expect(page).to have_css('.popover label', count: 2)
   end
 
+  context 'when calling without session' do
+    describe 'redirect to' do
+      it 'login screen', authenticated_as: false do
+        visit "#user/profile/#{customer.id}"
+
+        expect(page).to have_selector('#login')
+      end
+    end
+  end
+
   context 'Assign user to multiple organizations #1573', authenticated_as: :authenticate do
     def authenticate
       customer