Guest User

Untitled

a guest
Jan 17th, 2019
131
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.97 KB | None | 0 0
  1. def self.create_user_from_facebook(auth_hash)
  2. a = self.create!({
  3. :facebook_uid => auth_hash["uid"],
  4. ...,
  5. :crypted_password => "facebook",
  6. :password_salt => "facebook",
  7. :persistence_token => "facebook",
  8. :provider => auth_hash["provider"]
  9. })
  10. puts a.errors.inspect #returns no errors, record is successfully saved
  11. puts a.inspect # returns: last_request_at: "2012-10-01 08:12:51"
  12. Assignment.create(:user_id => user.id, :role_id => 2)
  13. end
  14.  
  15. undefined method `last_request_at' for #<Assignment:0x0000012a1539e0>
  16.  
  17. **EDIT** another information:
  18. class UserOauthController < ApplicationController
  19. def create
  20. @current_user = User.find_or_create_from_oauth(auth_hash)
  21.  
  22. if current_user
  23. UserSession.create(current_user, true)
  24. flash[:success] = 'Successfully logged in.'
  25. redirect_to root_url
  26. else
  27. flash[:warning] = 'Authorization ERROR! Please, try it again.'
  28. redirect_to root_url
  29. end
  30. end
  31. end
  32.  
  33. class User < ActiveRecord::Base
  34. attr_accessible list of atteibutes
  35.  
  36. acts_as_authentic do |c|
  37. authlogic set up
  38. end
  39.  
  40. ...validations...
  41.  
  42. def self.find_or_create_from_oauth(auth_hash)
  43. provider = auth_hash["provider"]
  44. uid = auth_hash["uid"].to_s
  45.  
  46. case provider
  47. when 'facebook'
  48. if user = self.where('email = ? and provider = ?', auth_hash["info"]["email"], provider).first
  49. return user
  50. elsif user = self.find_by_facebook_uid(uid)
  51. return user
  52. else
  53. return self.create_user_from_facebook(auth_hash)
  54. end
  55.  
  56. end
  57.  
  58. def self.create_user_from_facebook(auth_hash)
  59. a = self.create!({
  60. :facebook_uid => auth_hash["uid"],
  61. ...,
  62. :crypted_password => "facebook",
  63. :password_salt => "facebook",
  64. :persistence_token => "facebook",
  65. :provider => auth_hash["provider"]
  66. })
  67. puts a.errors.inspect
  68. puts a.inspect
  69. a.assignments.create(:role_id => MEMBER)
  70. end
  71. end
Add Comment
Please, Sign In to add comment