Skip to content

Commit

Permalink
Support for :devise_oauth2_facebook
Browse files Browse the repository at this point in the history
  • Loading branch information
jbartosik committed Mar 19, 2011
1 parent b6fe397 commit 7fe1001
Show file tree
Hide file tree
Showing 5 changed files with 47 additions and 4 deletions.
1 change: 1 addition & 0 deletions Rakefile
Expand Up @@ -12,6 +12,7 @@ begin
gem.authors = ["Joachim Filip Ignacy Bartosik"]
gem.add_development_dependency "hobo", ">= 1.3.0.pre28"
gem.add_development_dependency "devise", ">= 1.1.7"
gem.add_development_dependency "devise_oauth2_facebook"
end
Jeweler::GemcutterTasks.new
rescue LoadError
Expand Down
6 changes: 5 additions & 1 deletion hobo_devise.gemspec
Expand Up @@ -9,7 +9,7 @@ Gem::Specification.new do |s|

s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
s.authors = ["Joachim Filip Ignacy Bartosik"]
s.date = %q{2011-03-11}
s.date = %q{2011-03-18}
s.description = %q{}
s.email = %q{jbartosik@gmail.com}
s.extra_rdoc_files = [
Expand All @@ -23,6 +23,7 @@ Gem::Specification.new do |s|
"README.rdoc",
"Rakefile",
"VERSION",
"hobo_devise.gemspec",
"lib/hobo_devise.rb",
"lib/hobo_devise/database_authenticable.rb",
"test/helper.rb",
Expand All @@ -45,13 +46,16 @@ Gem::Specification.new do |s|
if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
s.add_development_dependency(%q<hobo>, [">= 1.3.0.pre28"])
s.add_development_dependency(%q<devise>, [">= 1.1.7"])
s.add_development_dependency(%q<devise_oauth2_canvas_facebook>, [">= 0"])
else
s.add_dependency(%q<hobo>, [">= 1.3.0.pre28"])
s.add_dependency(%q<devise>, [">= 1.1.7"])
s.add_dependency(%q<devise_oauth2_canvas_facebook>, [">= 0"])
end
else
s.add_dependency(%q<hobo>, [">= 1.3.0.pre28"])
s.add_dependency(%q<devise>, [">= 1.1.7"])
s.add_dependency(%q<devise_oauth2_canvas_facebook>, [">= 0"])
end
end

30 changes: 30 additions & 0 deletions lib/hobo_devise.rb
@@ -1,10 +1,14 @@
require 'hobo_devise/database_authenticable.rb'
require 'hobo_devise/devise_oauth2_facebook.rb'

class ActiveRecord::Base
def self.hobo_devise_user_model(opts={})

self.class_eval do
hobo_user_model
fields do
email :email_address, :login => true
end
end

opts.reverse_merge!({ :auth_methods => :database_authenticatable })
Expand All @@ -22,3 +26,29 @@ def self.hobo_devise_user_model(opts={})
end

end

class ActionController::Base
def self.hobo_devise_oauth2_facebook_controller(model)
@@model = model
self.class_eval do
hobo_user_controller
include DeviseOauth2Facebook::FacebookConsumerHelper
include DeviseOauth2Facebook::ControllerMethods

def resource_name; @@model.to_s.downcase; end
def resource_class; @@model; end
def initialize; action_methods.add "callback"; end

def set_flash_message(type, message)
flash[type] = message
end

def sign_in_and_redirect(resource_name, user)
redirect_to "/"
options = {:notice => ht(:"#{model.to_s.underscore}.messages.logout", :default=>["You have logged out."]),
:redirect_to => base_url}
sign_user_in(user, options)
end
end
end
end
3 changes: 0 additions & 3 deletions lib/hobo_devise/database_authenticable.rb
Expand Up @@ -23,9 +23,6 @@ def password_salt; salt; end
def password_salt=(n); salt=n; end
def encrypted_password; read_attribute(:crypted_password); end
def encrypted_password=(n); write_attribute(:crypted_password, n); end
# (Should be login_attribute, not email_address?)
def email; email_address; end
def email(n); email_address = n; end

## This is c&p from devise sources. I'm not sure why, but it's necessary
require 'bcrypt'
Expand Down
11 changes: 11 additions & 0 deletions lib/hobo_devise/devise_oauth2_facebook.rb
@@ -0,0 +1,11 @@
module HoboDevise
def self.devise_oauth2_facebook(model)
model.class_eval do
devise :devise_oauth2_facebook
fields do
facebook_uid :string
facebook_token :string
end
end
end
end

0 comments on commit 7fe1001

Please sign in to comment.