diff options
| author | Robert | 2017-07-10 14:07:31 +0200 |
|---|---|---|
| committer | Robert | 2017-07-24 17:54:03 +0200 |
| commit | 45226369543a8d7cb1f2152c07613c2f23d70813 (patch) | |
| tree | 8d1ff2a53df9d10e48c2f01d87c9f7da761ced21 | |
| parent | a0800acd0f650577a0be9f0002f9cfdd386eae7b (diff) | |
| download | chouette-core-45226369543a8d7cb1f2152c07613c2f23d70813.tar.bz2 | |
Refs: #4019@0.5h; Fixes devise/cas_controller spec
| -rw-r--r-- | app/policies/login_policy.rb | 2 | ||||
| -rw-r--r-- | spec/controllers/devise/cas_sessions_controller_spec.rb | 26 |
2 files changed, 20 insertions, 8 deletions
diff --git a/app/policies/login_policy.rb b/app/policies/login_policy.rb index 3364c37ac..5b07b97f3 100644 --- a/app/policies/login_policy.rb +++ b/app/policies/login_policy.rb @@ -7,7 +7,7 @@ class LoginPolicy end def boiv? - !(user.permissions || []).grep(%r{\Aboiv:.}).empty? + (user.permissions || []).include?('sessions:create') end end diff --git a/spec/controllers/devise/cas_sessions_controller_spec.rb b/spec/controllers/devise/cas_sessions_controller_spec.rb index 950d141fd..c82fd2cdb 100644 --- a/spec/controllers/devise/cas_sessions_controller_spec.rb +++ b/spec/controllers/devise/cas_sessions_controller_spec.rb @@ -1,25 +1,37 @@ RSpec.describe Devise::CasSessionsController, type: :controller do - login_user + before do + @user = signed_in_user + allow_any_instance_of(Warden::Proxy).to receive(:authenticate).and_return @user + allow_any_instance_of(Warden::Proxy).to receive(:authenticate!).and_return @user + @request.env["devise.mapping"] = Devise.mappings[:user] + end + context 'login is correctly redirected' do + let( :signed_in_user ){ build_stubbed :user } it 'to #service' do get :new - expect(response).to redirect_to(unauthenticated_root_path) + expect( response ).to be_redirect + expect( response.redirect_url ).to eq("http://stif-portail-dev.af83.priv/sessions/login?service=http%3A%2F%2Ftest.host%2Fusers%2Fservice") end end - context 'user does not have any boiv:.+ permission' do - xit 'cannot login and will be redirected to the login page, with a corresponding message' do + context 'user does not have permission sessions:create' do + let( :signed_in_user ){ build_stubbed :user } + + it 'cannot login and will be redirected to the login page, with a corresponding message' do get :service expect(controller).to set_flash[:alert].to(%r{IBOO}) - expect(response).to redirect_to("http://stif-portail-dev.af83.priv/sessions/login?service=http%3A%2F%2Ftest.host%2Fusers%2Fservice") + expect(response).to redirect_to "http://stif-portail-dev.af83.priv/sessions/logout?service=http%3A%2F%2Ftest.host%2Fusers%2Fservice" end end - context 'user does have a boiv:.+ permission' do + context 'user does have permission sessions:create' do + let( :signed_in_user ){ build_stubbed :allmighty_user } + it 'can login and will be redirected to the referentials page' do - @user.update_attribute :permissions, (@user.permissions << 'boiv:UnameIt') + @user.permissions << 'sessions:create' get :service expect(response).to redirect_to(authenticated_root_path) end |
