diff options
| -rw-r--r-- | app/controllers/devise/cas_sessions_controller.rb | 2 | ||||
| -rw-r--r-- | spec/controllers/devise/cas_sessions_controller_spec.rb | 26 | ||||
| -rw-r--r-- | spec/controllers/imports_controller_spec.rb | 2 | ||||
| -rw-r--r-- | spec/support/devise.rb | 9 |
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 |
