Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save bfolkens/256345 to your computer and use it in GitHub Desktop.
Save bfolkens/256345 to your computer and use it in GitHub Desktop.
diff --git a/vendor/plugins/authlogic_facebook_connect/lib/authlogic_facebook_connect/acts_as_authentic.rb b/vendor/plugins/authlogic_facebook_connect/lib/authlogic_facebook_connect/acts_as_authentic.rb
index fb9fa1b..9f08b05 100644
--- a/vendor/plugins/authlogic_facebook_connect/lib/authlogic_facebook_connect/acts_as_authentic.rb
+++ b/vendor/plugins/authlogic_facebook_connect/lib/authlogic_facebook_connect/acts_as_authentic.rb
@@ -11,10 +11,32 @@ module AuthlogicFacebookConnect
end
module Methods
+ # Set up some simple validations
def self.included(klass)
+ return if !klass.column_names.include?('facebook_uid')
+
klass.class_eval do
+ validate :validate_by_facebook_connect, :if => :authenticating_with_facebook_connect?
+ validates_uniqueness_of :facebook_uid, :scope => validations_scope, :if => :using_facebook_connect?
end
end
+
+ private
+ def session_facebook_uid
+ session_class.controller.facebook_session.user.uid
+ end
+
+ def authenticating_with_facebook_connect?
+ (session_class.controller.params && !session_class.controller.params[:register_with_facebook_connect].blank?)
+ end
+
+ def using_facebook_connect?
+ respond_to?(:facebook_uid) && !facebook_uid.blank?
+ end
+
+ def validate_by_facebook_connect
+ write_attribute(:facebook_uid, session_facebook_uid.blank? ? nil : session_facebook_uid)
+ end
end
end
end
\ No newline at end of file
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment