Sha256: 9b6b1a1620a822613ff009ad11c5aa9e4e857935a487ad8633e267ec1bb825ab

Contents?: true

Size: 1.63 KB

Versions: 2

Compression:

Stored size: 1.63 KB

Contents

module SsoClyent
  module CurrentUserHelpers
  
    def self.included base
      unless base.is_a?(Module)
        base.send :before_filter, :sso_clyent_check_if_from_sign_up
        base.send :before_filter, :sso_clyent_store_return_to_url
      end
    end
    
    def login_required
      if !current_user
        return respond_to do |format|
          format.html { redirect_to login_path }
          format.json { render :json => { 'error' => 'Access Denied' }.to_json }
        end
      end
    end
  
    def current_user
      return nil unless session[:user_id]
      users = sso_clyent_user_klass
      uid = sso_clyent_userid
      if users.respond_to?(:"find_by_#{uid}")
        @current_user ||= users.send(:"find_by_#{uid}", session[:user_id]['uid'])
      end
    end
  
    def user_signed_in?
      !!current_user
    end
  
    def check_for_login_error api_response
      current_user_logout if !api_response.is_a?(Array) and api_response.try(:[],:error).try(:==,'401 Unauthorized')
    end

    def current_user_logout
      session[:user_id] = nil
    end

    def sso_clyent_user_klass
      SsoClyent.user_class
    end

    def sso_clyent_userid
      SsoClyent.unique_id
    end
  
    def sso_clyent_check_if_from_sign_up
      if from_sign_up = params.delete(:from_sign_up)
        login_required
        begin process_params_from_sign_up(from_sign_up)
        rescue
        end
        unless performed?
          return redirect_to(url_for(params))
        end
      end
    end
    
    def sso_clyent_store_return_to_url
      (session['for_sign_up'] ||= {})['send_back_to'] = session['return-to-url'] = request.url
    end
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
sso_clyent-0.0.7.38 lib/sso_clyent/controllers/current_user_helpers.rb
sso_clyent-0.0.7.37 lib/sso_clyent/controllers/current_user_helpers.rb