lib/authpds/acts_as_authentic.rb in authpds-0.2.0 vs lib/authpds/acts_as_authentic.rb in authpds-0.2.1
- old
+ new
@@ -1,68 +1,11 @@
module Authpds
module ActsAsAuthentic
def self.included(klass)
klass.class_eval do
- require 'institutions'
- add_acts_as_authentic_module(InstanceMethods, :prepend)
+ add_acts_as_authentic_module(Authpds::ActsAsAuthentic::CoreAttributes, :prepend)
+ add_acts_as_authentic_module(Authpds::ActsAsAuthentic::Expiration, :append)
+ add_acts_as_authentic_module(Authpds::ActsAsAuthentic::InstitutionAttributes, :append)
end
- end
-
- module InstanceMethods
- def self.included(klass)
- klass.class_eval do
- serialize :user_attributes
- attr_accessor :expiration_date
- end
- end
-
- # Setting the username field also resets the persistence_token if the value changes.
- def username=(value)
- write_attribute(:username, value)
- reset_persistence_token if username_changed?
- end
-
- def primary_institution
- all_institutions[user_attributes[:primary_institution]] unless user_attributes.nil?
- end
-
- def primary_institution=(new_primary_institution)
- new_primary_institution = new_primary_institution.code if new_primary_institution.is_a?(Institutions::Institution)
- self.user_attributes=({:primary_institution => new_primary_institution.to_sym})
- end
-
- def institutions
- user_attributes[:institutions].collect { |institution|
- all_institutions[institution] } unless user_attributes.nil?
- end
-
- def institutions=(new_institutions)
- raise ArgumentError.new("Institutions input should be an array.") unless new_institutions.is_a?(Array)
- new_institutions.collect! { |institution| institution.to_sym }
- new_institutions.select! { |institution|
- all_institutions[ new_institutions.is_a?(Institutions::Institution) ? institution.code : institution.to_sym]
- }
- self.user_attributes=({:institutions => new_institutions}) unless new_institutions.empty?
- end
-
- # "Smart" updating of user_attributes. Maintains user_attributes that are not explicity overwritten.
- def user_attributes=(new_attributes)
- write_attribute(:user_attributes, new_attributes) and return unless new_attributes.kind_of?(Hash)
- # Set new/updated attributes
- write_attribute(:user_attributes, (user_attributes || {}).merge(new_attributes))
- end
-
- # Returns a boolean based on whether the User has been refreshed recently.
- # If User#refreshed_at is older than User#expiration_date, the User is expired and the data
- # may need to be refreshed.
- def expired?
- # If the record is older than the expiration date, it is expired.
- (refreshed_at.nil?) ? true : refreshed_at < expiration_date
- end
-
- def all_institutions
- Institutions.institutions
- end
- private :all_institutions
end
end
end
\ No newline at end of file