summaryrefslogtreecommitdiff
path: root/app/controllers/application_controller.rb
diff options
context:
space:
mode:
authorDouwe Maan <douwe@gitlab.com>2015-12-21 17:38:37 +0100
committerDouwe Maan <douwe@gitlab.com>2015-12-21 17:38:37 +0100
commit9832e60ffb801427453301c6da4675f81518cdeb (patch)
treedc8e1b7692be8cde7e57b7059de23385e177beed /app/controllers/application_controller.rb
parente209ba7002238459b56ced1f5b4a7ce8bd6e2b8b (diff)
parent7fc2422c8d660d310b819b2b6ffbca9a9e4d8cd6 (diff)
downloadgitlab-ce-9832e60ffb801427453301c6da4675f81518cdeb.tar.gz
Merge branch 'tduehr/gitlab-ce-cas-support'
Diffstat (limited to 'app/controllers/application_controller.rb')
-rw-r--r--app/controllers/application_controller.rb15
1 files changed, 15 insertions, 0 deletions
diff --git a/app/controllers/application_controller.rb b/app/controllers/application_controller.rb
index 0d182e8eb04..01e2e7b2f98 100644
--- a/app/controllers/application_controller.rb
+++ b/app/controllers/application_controller.rb
@@ -10,6 +10,7 @@ class ApplicationController < ActionController::Base
before_action :authenticate_user_from_token!
before_action :authenticate_user!
+ before_action :validate_user_service_ticket!
before_action :reject_blocked!
before_action :check_password_expiration
before_action :ldap_security_check
@@ -202,6 +203,20 @@ class ApplicationController < ActionController::Base
end
end
+ def validate_user_service_ticket!
+ return unless signed_in? && session[:service_tickets]
+
+ valid = session[:service_tickets].all? do |provider, ticket|
+ Gitlab::OAuth::Session.valid?(provider, ticket)
+ end
+
+ unless valid
+ session[:service_tickets] = nil
+ sign_out current_user
+ redirect_to new_user_session_path
+ end
+ end
+
def check_password_expiration
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