lib/authpds-nyu/session.rb in authpds-nyu-0.2.1 vs lib/authpds-nyu/session.rb in authpds-nyu-0.2.2

- old
+ new

@@ -10,99 +10,22 @@ # :aleph_url:: Aleph url (http://aleph.library.nyu.edu) # :aleph_default_adm:: Aleph default ADM (NYU50) # :aleph_default_sublibrary:: Aleph default sublibrary (BOBST) # module Session + include AuthpdsNyu::Session::CoreAttributes + include AuthpdsNyu::Session::Aleph + include AuthpdsNyu::Session::Callbacks + def self.included(klass) klass.class_eval do - extend Config - include AuthpdsCallbackMethods - include InstanceMethods - end - end - - module Config - # Base opensso url - def opensso_url(value = nil) - rw_config(:opensso_url, value, "https://login.nyu.edu:443/sso") - end - alias_method :opensso_url=, :opensso_url - - # Base aleph url - def aleph_url(value = nil) - rw_config(:aleph_url, value, "http://aleph.library.nyu.edu") - end - alias_method :aleph_url=, :aleph_url - - # Default aleph ADM - def aleph_default_adm(value = nil) - rw_config(:aleph_default_adm, value, "NYU50") - end - alias_method :aleph_default_adm=, :aleph_default_adm - - # Default aleph sublibrary - def aleph_default_sublibrary(value = nil) - rw_config(:aleph_default_sublibrary, value, "BOBST") - end - alias_method :aleph_default_sublibrary=, :aleph_default_sublibrary - end - - module AuthpdsCallbackMethods - def pds_record_identifier - (pds_user.opensso.nil?) ? :id : :uid - end - - def valid_sso_session? - begin - @valid_sso_session ||= AuthpdsNyu::Sun::Opensso.new(controller, self.class.opensso_url).is_valid? - rescue Exception => e - handle_login_exception e - return false - end - return @valid_sso_session - end - end - - module InstanceMethods - def self.included(klass) - klass.class_eval do - pds_attributes :firstname => "givenname", :lastname => "sn", :email => "email", :primary_institution => "institute" - remember_me true - remember_me_for 300 - httponly true - secure true - login_inaccessible_url "http://library.nyu.edu/errors/login-library-nyu-edu/" - end - end - - # Overriden logout url for NYU. - def logout_url(params={}) - return "#{self.class.pds_url}/logout?url=#{CGI::escape(controller.user_session_redirect_url(self.class.redirect_logout_url))}" - end - - def aleph_bor_auth_permissions(bor_id=nil, verification=nil, adm=nil, sublibrary=nil) - bor_auth = aleph_bor_auth(bor_id, verification, adm, sublibrary) - return (bor_auth.nil? or bor_auth.error) ? {} : bor_auth.permissions - end - - def aleph_bor_auth(bor_id=nil, verification=nil, adm=nil, sublibrary=nil) - bor_id = pds_user.id if bor_id.nil? unless pds_user.nil? - raise ArgumentError.new("Argument Error in #{self.class}. bor_id not specified.") if bor_id.nil?; - verification = pds_user.verification if verification.nil? unless pds_user.nil? - raise ArgumentError.new("Argument Error in #{self.class}. verification not specified.") if verification.nil?; - aleph_url = self.class.aleph_url - adm = self.class.aleph_default_adm if adm.nil? - sublibrary = self.class.aleph_default_sublibrary if sublibrary.nil? - # Call X-Service - bor_auth = - Exlibris::Aleph::BorAuth. - new(aleph_url, adm, sublibrary, "N", bor_id, verification) - controller.logger.error( - "Error in #{self.class}. "+ - "No permissions returned from Aleph bor-auth for user with bor_id #{bor_id}."+ - "Error: #{(bor_auth.nil?) ? "bor_auth is nil." : bor_auth.error.inspect}" - ) and return nil if bor_auth.nil? or bor_auth.error - return bor_auth + pds_attributes :firstname => "givenname", :lastname => "sn", :email => "email", :primary_institution => "institute" + remember_me true + remember_me_for 300 + httponly true + secure true + login_inaccessible_url "http://library.nyu.edu/errors/login-library-nyu-edu/" + extend AuthpdsNyu::Session::Config end end end end \ No newline at end of file