aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--app/controllers/devise/cas_sessions_controller.rb2
-rw-r--r--spec/controllers/devise/cas_sessions_controller_spec.rb26
-rw-r--r--spec/controllers/imports_controller_spec.rb2
-rw-r--r--spec/support/devise.rb9
4 files changed, 34 insertions, 5 deletions
diff --git a/app/controllers/devise/cas_sessions_controller.rb b/app/controllers/devise/cas_sessions_controller.rb
index 629e209f2..399981c16 100644
--- a/app/controllers/devise/cas_sessions_controller.rb
+++ b/app/controllers/devise/cas_sessions_controller.rb
@@ -21,7 +21,7 @@ class Devise::CasSessionsController < Devise::SessionsController
redirect_to after_sign_in_path_for(current_user)
else
# TODO: Set flash here
- redirect_to :new
+ redirect_to cas_login_url
end
end
diff --git a/spec/controllers/devise/cas_sessions_controller_spec.rb b/spec/controllers/devise/cas_sessions_controller_spec.rb
new file mode 100644
index 000000000..6459e3b3d
--- /dev/null
+++ b/spec/controllers/devise/cas_sessions_controller_spec.rb
@@ -0,0 +1,26 @@
+RSpec.describe Devise::CasSessionsController, type: :controller do
+
+ login_user
+
+ context 'login is correctly redirected' do
+ it 'to #service' do
+ get :new
+ expect(response).to redirect_to(unauthenticated_root_path)
+ end
+ end
+
+ context 'user does not have any boiv:.+ permission' do
+ it 'cannot login and will be redirected to the login page' do
+ get :service
+ expect(response).to redirect_to("http://stif-portail-dev.af83.priv/sessions/login?service=http%3A%2F%2Ftest.host%2Fusers%2Fservice")
+ end
+ end
+
+ context 'user does have a boiv:.+ permission' do
+ it 'can login and will be redirected to the referentials page' do
+ @user.update_attribute :permissions, (@user.permissions << 'boiv:UnameIt')
+ get :service
+ expect(response).to redirect_to(authenticated_root_path)
+ end
+ end
+end
diff --git a/spec/controllers/imports_controller_spec.rb b/spec/controllers/imports_controller_spec.rb
index bffb89338..7b575ab61 100644
--- a/spec/controllers/imports_controller_spec.rb
+++ b/spec/controllers/imports_controller_spec.rb
@@ -1,5 +1,3 @@
-require 'rails_helper'
-
RSpec.describe ImportsController, :type => :controller do
login_user
diff --git a/spec/support/devise.rb b/spec/support/devise.rb
index 14e316bea..d4a279a41 100644
--- a/spec/support/devise.rb
+++ b/spec/support/devise.rb
@@ -36,8 +36,8 @@ module DeviseRequestHelper
end
module DeviseControllerHelper
- def login_user
- before(:each) do
+ def setup_user
+ before do
@request.env["devise.mapping"] = Devise.mappings[:user]
organisation = Organisation.where(:code => "first").first_or_create(attributes_for(:organisation))
@user = create(:user, :organisation => organisation,
@@ -47,6 +47,11 @@ module DeviseControllerHelper
'access_points.create', 'access_points.edit', 'access_points.destroy', 'access_links.create', 'access_links.edit', 'access_links.destroy',
'connection_links.create', 'connection_links.edit', 'connection_links.destroy', 'route_sections.create', 'route_sections.edit', 'route_sections.destroy',
'referentials.create', 'referentials.edit', 'referentials.destroy'])
+ end
+ end
+ def login_user()
+ setup_user
+ before do
sign_in @user
end
end