Don't show users password change page if ldap users
This commit is contained in:
parent
16b6040c2e
commit
ca1b67ce38
4 changed files with 40 additions and 1 deletions
|
@ -151,7 +151,7 @@ class ApplicationController < ActionController::Base
|
|||
end
|
||||
|
||||
def check_password_expiration
|
||||
if current_user && current_user.password_expires_at && current_user.password_expires_at < Time.now
|
||||
if current_user && current_user.password_expires_at && current_user.password_expires_at < Time.now && !current_user.ldap_user?
|
||||
redirect_to new_profile_password_path and return
|
||||
end
|
||||
end
|
||||
|
|
|
@ -18,6 +18,7 @@ Feature: Profile
|
|||
|
||||
Scenario: My password is expired
|
||||
Given my password is expired
|
||||
And I am not an ldap user
|
||||
And I visit profile account page
|
||||
Then I redirected to expired password page
|
||||
And I submit new password
|
||||
|
|
|
@ -91,6 +91,11 @@ class Profile < Spinach::FeatureSteps
|
|||
current_user.update_attributes(password_expires_at: Time.now - 1.hour)
|
||||
end
|
||||
|
||||
step "I am not an ldap user" do
|
||||
current_user.update_attributes(extern_uid: nil, provider: '')
|
||||
current_user.ldap_user?.should be_false
|
||||
end
|
||||
|
||||
step 'I redirected to expired password page' do
|
||||
current_path.should == new_profile_password_path
|
||||
end
|
||||
|
|
33
spec/controllers/application_controller_spec.rb
Normal file
33
spec/controllers/application_controller_spec.rb
Normal file
|
@ -0,0 +1,33 @@
|
|||
require 'spec_helper'
|
||||
|
||||
describe ApplicationController do
|
||||
describe '#check_password_expiration' do
|
||||
let(:user) { create(:user) }
|
||||
let(:controller) { ApplicationController.new }
|
||||
|
||||
it 'should redirect if the user is over their password expiry' do
|
||||
user.password_expires_at = Time.new(2002)
|
||||
user.ldap_user?.should be_false
|
||||
controller.stub!(:current_user).and_return(user)
|
||||
controller.should_receive(:redirect_to)
|
||||
controller.should_receive(:new_profile_password_path)
|
||||
controller.send(:check_password_expiration)
|
||||
end
|
||||
|
||||
it 'should not redirect if the user is under their password expiry' do
|
||||
user.password_expires_at = Time.now + 20010101
|
||||
user.ldap_user?.should be_false
|
||||
controller.stub!(:current_user).and_return(user)
|
||||
controller.should_not_receive(:redirect_to)
|
||||
controller.send(:check_password_expiration)
|
||||
end
|
||||
|
||||
it 'should not redirect if the user is over their password expiry but they are an ldap user' do
|
||||
user.password_expires_at = Time.new(2002)
|
||||
user.stub!(:ldap_user?).and_return(true)
|
||||
controller.stub!(:current_user).and_return(user)
|
||||
controller.should_not_receive(:redirect_to)
|
||||
controller.send(:check_password_expiration)
|
||||
end
|
||||
end
|
||||
end
|
Loading…
Reference in a new issue