sessions_controller.rb 1.0 KB
Newer Older
1 2
class SessionsController < Devise::SessionsController
  def new
3 4 5 6 7 8 9 10 11 12 13
    redirect_path =
      if request.referer.present? && (params['redirect_to_referer'] == 'yes')
        referer_uri = URI(request.referer)
        if referer_uri.host == Gitlab.config.gitlab.host
          referer_uri.path
        else
          request.fullpath
        end
      else
        request.fullpath
      end
M
Marin Jankovski 已提交
14

15 16 17 18 19
    # Prevent a 'you are already signed in' message directly after signing:
    # we should never redirect to '/users/sign_in' after signing in successfully.
    unless redirect_path == '/users/sign_in'
      store_location_for(:redirect, redirect_path)
    end
20

21
    if Gitlab.config.ldap.enabled
22
      @ldap_servers = Gitlab::LDAP::Config.servers
23 24
    end

25 26 27 28
    super
  end

  def create
29 30 31 32 33 34 35
    super do |resource|
      # User has successfully signed in, so clear any unused reset tokens
      if resource.reset_password_token.present?
        resource.update_attributes(reset_password_token: nil,
                                   reset_password_sent_at: nil)
      end
    end
36 37
  end
end