Guest User

Untitled

a guest
Jun 18th, 2018
93
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.26 KB | None | 0 0
  1. source_paths << File.dirname(__FILE__)
  2.  
  3. gem 'oa-oauth', :require => 'omniauth/oauth'
  4.  
  5. initializer 'omniauth.rb', <<-FILE
  6. Rails.application.config.middleware.use OmniAuth::Builder do
  7. provider :facebook, ENV['API_KEY'], ENV['APP_SECRET']
  8. end
  9. FILE
  10.  
  11. apply 'devise.rb'
  12.  
  13. rvm 'rails g model authentication user_id:integer provider:string uid:string'
  14. route "match 'auth/:provider/callback' => 'authentications#create'"
  15.  
  16. data = <<-FILE
  17. has_many :authentications
  18.  
  19. def apply_omniauth(omniauth)
  20. if email.blank?
  21. self.email = omniauth['user_info']['email'] ||
  22. omniauth['extra']['user_hash']['email']
  23. end
  24.  
  25. if name.blank?
  26. self.name = omniauth['user_info']['first_name'] + ' ' +
  27. omniauth['user_info']['last_name']
  28. end
  29.  
  30. authentications.build(
  31. :provider => omniauth['provider'],
  32. :uid => omniauth['uid']
  33. )
  34. end
  35.  
  36. def password_required?
  37. (authentications.empty? || !password.blank?) && super
  38. end
  39. FILE
  40. inject_into_file 'app/models/user.rb', data, :after => /attr_access.*\n/
  41.  
  42. data = <<-FILE
  43. belongs_to :user
  44.  
  45. validates_presence_of :provider, :uid
  46. FILE
  47. inject_into_class 'app/models/authentication.rb', data, 'Authentication'
  48. copy_file 'facebook/authentications_controller.rb',
  49. 'app/controllers/authentications_controller.rb'
Add Comment
Please, Sign In to add comment