authpwn_rails 0.10.1 → 0.10.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
data/Gemfile.lock CHANGED
@@ -67,7 +67,7 @@ GEM
67
67
  treetop (~> 1.4.8)
68
68
  mime-types (1.17.2)
69
69
  multi_json (1.0.3)
70
- multipart-post (1.1.3)
70
+ multipart-post (1.1.4)
71
71
  oauth2 (0.5.1)
72
72
  faraday (~> 0.7.4)
73
73
  multi_json (~> 1.0.3)
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.10.1
1
+ 0.10.2
@@ -18,19 +18,9 @@ class Email < ::Credential
18
18
  def set_verified_to_false
19
19
  self.verified ||= '0' if self.key.nil?
20
20
  end
21
+
22
+ # Forms can only change the e-mail in the credential.
23
+ attr_accessible :email
21
24
  end # class Credentials::Email
22
25
 
23
26
  end # namespace Credentials
24
-
25
- # :nodoc: adds e-mail integration to the user model
26
- module Authpwn::UserModel::InstanceMethods
27
- def email_credential
28
- credentials.find { |c| c.instance_of?(Credentials::Email) }
29
- end
30
-
31
- # The e-mail from the user's Email credential, or nil no credential exists.
32
- def email
33
- credential = self.email_credential
34
- credential && credential.email
35
- end
36
- end # module Authpwn::UserModel::InstanceMethods
@@ -30,12 +30,16 @@ class Facebook < ::Credential
30
30
  uid = uid_from_token access_token
31
31
  credential = self.where(:name => uid.to_str).first
32
32
  if credential
33
- credential.update_attributes! :key => access_token
33
+ credential.key = access_token
34
+ credential.save!
34
35
  else
35
36
  User.transaction do
36
37
  user = User.create!
37
- credential = self.create! :name => uid, :key => access_token,
38
- :user => user
38
+ credential = self.new
39
+ credential.facebook_uid = uid
40
+ credential.access_token = access_token
41
+ credential.user = user
42
+ credential.save!
39
43
  end
40
44
  end
41
45
  credential
@@ -49,29 +53,9 @@ class Facebook < ::Credential
49
53
  def self.uid_from_token(access_token)
50
54
  FBGraphRails.fbclient(access_token).selection.me.info!.id.to_s
51
55
  end
56
+
57
+ # Forms should not be able to touch any attribute.
58
+ attr_accessible
52
59
  end # class Credentials::Facebook
53
60
 
54
61
  end # namespace Credentials
55
-
56
- # :nodoc: adds Facebook integration methods to the User model.
57
- module Authpwn::UserModel::ClassMethods
58
- # Fills out a new user's information based on a Facebook access token.
59
- def create_with_facebook_token(token)
60
- self.create! :email => "#{token.external_uid}@graph.facebook.com"
61
- end
62
-
63
- # The user that owns a given Facebook OAuth2 token.
64
- #
65
- # A new user will be created if the token doesn't belong to any user. This
66
- # is the case for a new visitor.
67
- def for_facebook_token(access_token)
68
- Credentials::Facebook.for(access_token).user
69
- end
70
- end # module Authpwn::UserModel::ClassMethods
71
-
72
- # :nodoc: adds Facebook integration methods to the User model.
73
- module Authpwn::UserModel::InstanceMethods
74
- def facebook_credential
75
- credentials.find { |c| c.instance_of?(Credentials::Facebook) }
76
- end
77
- end # module Authpwn::UserModel::InstanceMethods
@@ -5,7 +5,8 @@ module Credentials
5
5
  class Password < ::Credential
6
6
  # Virtual attribute: the user's password.
7
7
  attr_accessor :password
8
- validates :password, :confirmation => true, :presence => true
8
+ validates :password, :presence => { :on => :create },
9
+ :confirmation => { :allow_nil => true }
9
10
 
10
11
  # Virtual attribute: confirmation for the user's password.
11
12
  attr_accessor :password_confirmation
@@ -51,13 +52,10 @@ class Password < ::Credential
51
52
  # Generates a random salt value.
52
53
  def self.random_salt
53
54
  [(0...12).map { |i| 1 + rand(255) }.pack('C*')].pack('m').strip
54
- end
55
+ end
56
+
57
+ # Forms can only change the plain-text password fields.
58
+ attr_accessible :password, :password_confirmation
55
59
  end # class Credentials::Password
56
60
 
57
61
  end # namespace Credentials
58
-
59
- module Authpwn::UserModel::InstanceMethods
60
- def password_credential
61
- credentials.find { |c| c.instance_of?(Credentials::Password) }
62
- end
63
- end
@@ -5,11 +5,11 @@
5
5
 
6
6
  Gem::Specification.new do |s|
7
7
  s.name = "authpwn_rails"
8
- s.version = "0.10.1"
8
+ s.version = "0.10.2"
9
9
 
10
10
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
11
  s.authors = ["Victor Costan"]
12
- s.date = "2011-11-21"
12
+ s.date = "2011-11-25"
13
13
  s.description = "Works with Facebook."
14
14
  s.email = "victor@costan.us"
15
15
  s.extra_rdoc_files = [
@@ -27,14 +27,13 @@ Gem::Specification.new do |s|
27
27
  "Rakefile",
28
28
  "VERSION",
29
29
  "app/helpers/session_helper.rb",
30
+ "app/models/credentials/email.rb",
31
+ "app/models/credentials/facebook.rb",
32
+ "app/models/credentials/password.rb",
30
33
  "authpwn_rails.gemspec",
31
34
  "legacy/migrate_09_to_010.rb",
32
35
  "lib/authpwn_rails.rb",
33
36
  "lib/authpwn_rails/credential_model.rb",
34
- "lib/authpwn_rails/credentials.rb",
35
- "lib/authpwn_rails/credentials/email.rb",
36
- "lib/authpwn_rails/credentials/facebook.rb",
37
- "lib/authpwn_rails/credentials/password.rb",
38
37
  "lib/authpwn_rails/engine.rb",
39
38
  "lib/authpwn_rails/facebook_session.rb",
40
39
  "lib/authpwn_rails/generators/all_generator.rb",
@@ -53,17 +52,22 @@ Gem::Specification.new do |s|
53
52
  "lib/authpwn_rails/session.rb",
54
53
  "lib/authpwn_rails/session_controller.rb",
55
54
  "lib/authpwn_rails/test_extensions.rb",
55
+ "lib/authpwn_rails/user_extensions/email_field.rb",
56
+ "lib/authpwn_rails/user_extensions/password_field.rb",
56
57
  "lib/authpwn_rails/user_model.rb",
57
58
  "test/cookie_controller_test.rb",
58
59
  "test/email_credential_test.rb",
60
+ "test/email_field_test.rb",
59
61
  "test/facebook_controller_test.rb",
60
62
  "test/facebook_credential_test.rb",
61
63
  "test/helpers/application_controller.rb",
64
+ "test/helpers/autoload_path.rb",
62
65
  "test/helpers/db_setup.rb",
63
66
  "test/helpers/fbgraph.rb",
64
67
  "test/helpers/routes.rb",
65
68
  "test/helpers/view_helpers.rb",
66
69
  "test/password_credential_test.rb",
70
+ "test/password_field_test.rb",
67
71
  "test/session_controller_api_test.rb",
68
72
  "test/test_helper.rb",
69
73
  "test/user_test.rb"
@@ -3,7 +3,7 @@ class CreateCredentials < ActiveRecord::Migration
3
3
  create_table :credentials do |t|
4
4
  t.references :user, :null => false
5
5
  t.string :type, :limit => 32, :null => false
6
- t.string :name, :limit => 256, :null => true
6
+ t.string :name, :limit => 128, :null => true
7
7
 
8
8
  t.boolean :verified, :null => false, :default => false
9
9
 
@@ -2,5 +2,10 @@
2
2
  class User < ActiveRecord::Base
3
3
  include Authpwn::UserModel
4
4
 
5
+ # Virtual email attribute, with validation.
6
+ # include Authpwn::UserExtensions::EmailField
7
+ # Virtual password attribute, with confirmation validation.
8
+ # include Authpwn::UserExtensions::PasswordField
9
+
5
10
  # Add your extensions to the User class here.
6
11
  end
@@ -0,0 +1,58 @@
1
+ require 'active_model'
2
+ require 'active_support'
3
+
4
+ # :nodoc: namespace
5
+ module Authpwn
6
+
7
+ # :nodoc: namespace
8
+ module UserExtensions
9
+
10
+ # Augments the User model with an email virtual attribute.
11
+ module EmailField
12
+ extend ActiveSupport::Concern
13
+
14
+ included do
15
+ validates :email, :format => /^[A-Za-z0-9.+_]+@[^@]*\.(\w+)$/,
16
+ :presence => true
17
+ attr_accessible :email
18
+ end
19
+
20
+ module ClassMethods
21
+ # The user who has a certain e-mail, or nil if the e-mail is unclaimed.
22
+ def with_email(email)
23
+ credential = Credentials::Email.where(:name => email).includes(:user).first
24
+ credential && credential.user
25
+ end
26
+ end
27
+
28
+ module InstanceMethods
29
+ # Credentials::Email instance associated with this user.
30
+ def email_credential
31
+ credentials.find { |c| c.instance_of?(Credentials::Email) }
32
+ end
33
+
34
+ # The e-mail from the user's Email credential.
35
+ #
36
+ # Returns nil if this user has no Email credential.
37
+ def email
38
+ credential = self.email_credential
39
+ credential && credential.email
40
+ end
41
+
42
+ # Sets the e-mail on the user's Email credential.
43
+ #
44
+ # Creates a new Credentials::Email instance if necessary.
45
+ def email=(new_email)
46
+ if credential = self.email_credential
47
+ credential.email = new_email
48
+ else
49
+ credentials << Credentials::Email.new(:email => new_email)
50
+ end
51
+ new_email
52
+ end
53
+ end
54
+ end # module Authpwn::UserExtensions::EmailField
55
+
56
+ end # module Authpwn::UserExtensions
57
+
58
+ end # module Authpwn
@@ -0,0 +1,79 @@
1
+ require 'active_model'
2
+ require 'active_support'
3
+
4
+ # :nodoc: namespace
5
+ module Authpwn
6
+
7
+ # :nodoc: namespace
8
+ module UserExtensions
9
+
10
+ # Augments the User model with a password virtual attribute.
11
+ module PasswordField
12
+ extend ActiveSupport::Concern
13
+
14
+ included do
15
+ validates :password, :presence => { :on => :create },
16
+ :confirmation => { :allow_nil => true }
17
+ attr_accessible :password, :password_confirmation
18
+ end
19
+
20
+ module ClassMethods
21
+ # The user who has a certain e-mail, or nil if the e-mail is unclaimed.
22
+ def with_email(email)
23
+ credential = Credentials::Email.where(:name => email).includes(:user).first
24
+ credential && credential.user
25
+ end
26
+ end
27
+
28
+ module InstanceMethods
29
+ # Credentials::Password instance associated with this user.
30
+ def password_credential
31
+ credentials.find { |c| c.instance_of?(Credentials::Password) }
32
+ end
33
+
34
+ # The password from the user's Password credential, or nil.
35
+ #
36
+ # Returns nil if this user has no Password credential.
37
+ def password
38
+ credential = self.password_credential
39
+ credential && credential.password
40
+ end
41
+
42
+ # The password_confirmation from the user's Password credential, or nil.
43
+ #
44
+ # Returns nil if this user has no Password credential.
45
+ def password_confirmation
46
+ credential = self.password_credential
47
+ credential && credential.password_confirmation
48
+ end
49
+
50
+ # Sets the password on the user's Password credential.
51
+ #
52
+ # Creates a new Credentials::Password instance if necessary.
53
+ def password=(new_password)
54
+ if credential = self.password_credential
55
+ credential.password = new_password
56
+ else
57
+ credentials << Credentials::Password.new(:password => new_password)
58
+ end
59
+ new_password
60
+ end
61
+
62
+ # Sets the password on the user's Password credential.
63
+ #
64
+ # Creates a new Credentials::Password instance if necessary.
65
+ def password_confirmation=(new_password_confirmation)
66
+ if credential = self.password_credential
67
+ credential.password_confirmation = new_password_confirmation
68
+ else
69
+ credentials << Credentials::Password.new(:password_confirmation =>
70
+ new_password_confirmation)
71
+ end
72
+ new_password_confirmation
73
+ end
74
+ end
75
+ end # module Authpwn::UserExtensions::PasswordField
76
+
77
+ end # module Authpwn::UserExtensions
78
+
79
+ end # module Authpwn
@@ -19,8 +19,15 @@ module UserModel
19
19
 
20
20
  # Credentials used to authenticate the user.
21
21
  has_many :credentials, :dependent => :destroy, :inverse_of => :user
22
+ validates_associated :credentials
23
+ # This is safe, because credentials use attr_accessible.
24
+ accepts_nested_attributes_for :credentials, :allow_destroy => true
22
25
 
26
+ # Automatically assign exuid.
23
27
  before_validation :set_default_exuid, :on => :create
28
+
29
+ # Forms should not be able to touch any attribute.
30
+ attr_accessible :credentials_attributes
24
31
  end
25
32
 
26
33
  # Class methods on models that include Authpwn::UserModel.
@@ -49,3 +56,22 @@ module UserModel
49
56
  end # namespace Authpwn::UserModel
50
57
 
51
58
  end # namespace Authpwn
59
+
60
+
61
+ # :nodoc: adds Facebook integration methods to the User model.
62
+ module Authpwn::UserModel::ClassMethods
63
+ # The user that owns a given Facebook OAuth2 token.
64
+ #
65
+ # A new user will be created if the token doesn't belong to any user. This
66
+ # is the case for a new visitor.
67
+ def for_facebook_token(access_token)
68
+ Credentials::Facebook.for(access_token).user
69
+ end
70
+ end # module Authpwn::UserModel::ClassMethods
71
+
72
+ # :nodoc: adds Facebook integration methods to the User model.
73
+ module Authpwn::UserModel::InstanceMethods
74
+ def facebook_credential
75
+ credentials.find { |c| c.instance_of?(Credentials::Facebook) }
76
+ end
77
+ end # module Authpwn::UserModel::InstanceMethods
data/lib/authpwn_rails.rb CHANGED
@@ -1,14 +1,23 @@
1
+ require 'active_support'
2
+
1
3
  # :nodoc: namespace
2
4
  module Authpwn
5
+ extend ActiveSupport::Autoload
6
+
7
+ autoload :CredentialModel, 'authpwn_rails/credential_model.rb'
8
+ autoload :SessionController, 'authpwn_rails/session_controller.rb'
9
+ autoload :UserModel, 'authpwn_rails/user_model.rb'
10
+
11
+ # Contains extensions to the User model.
12
+ module UserExtensions
13
+ autoload :EmailField, 'authpwn_rails/user_extensions/email_field.rb'
14
+ autoload :PasswordField, 'authpwn_rails/user_extensions/password_field.rb'
15
+ end
3
16
  end
4
17
 
5
- require 'authpwn_rails/credential_model.rb'
6
- require 'authpwn_rails/credentials.rb'
7
18
  require 'authpwn_rails/facebook_session.rb'
8
19
  require 'authpwn_rails/session.rb'
9
- require 'authpwn_rails/session_controller.rb'
10
20
  require 'authpwn_rails/test_extensions.rb'
11
- require 'authpwn_rails/user_model.rb'
12
21
 
13
22
  if defined?(Rails)
14
23
  require 'authpwn_rails/engine.rb'
@@ -2,8 +2,8 @@ require File.expand_path('../test_helper', __FILE__)
2
2
 
3
3
  class EmailCredentialTest < ActiveSupport::TestCase
4
4
  def setup
5
- @credential = Credentials::Email.new :email => 'dvdjohn@mit.edu',
6
- :user => users(:bill)
5
+ @credential = Credentials::Email.new :email => 'dvdjohn@mit.edu'
6
+ @credential.user = users(:bill)
7
7
  end
8
8
 
9
9
  test 'setup' do
@@ -41,16 +41,4 @@ class EmailCredentialTest < ActiveSupport::TestCase
41
41
  @credential.email = credentials(:john_email).email
42
42
  assert !@credential.valid?
43
43
  end
44
-
45
- test 'User#email_credential' do
46
- assert_equal credentials(:john_email), users(:john).email_credential
47
- assert_equal credentials(:jane_email), users(:jane).email_credential
48
- assert_nil users(:bill).email_credential
49
- end
50
-
51
- test 'User#email' do
52
- assert_equal credentials(:john_email).email, users(:john).email
53
- assert_equal credentials(:jane_email).email, users(:jane).email
54
- assert_nil users(:bill).email
55
- end
56
44
  end
@@ -0,0 +1,57 @@
1
+ require File.expand_path('../test_helper', __FILE__)
2
+
3
+ class UserWithEmail < User
4
+ include Authpwn::UserExtensions::EmailField
5
+ end
6
+
7
+ class EmailFieldTest < ActiveSupport::TestCase
8
+ def setup
9
+ @user = UserWithEmail.new :email => 'blah@gmail.com'
10
+
11
+ @john = UserWithEmail.find_by_id(users(:john).id)
12
+ @jane = UserWithEmail.find_by_id(users(:jane).id)
13
+ @bill = UserWithEmail.find_by_id(users(:bill).id)
14
+ end
15
+
16
+ test 'setup' do
17
+ @user.save!
18
+ assert @user.valid?
19
+ end
20
+
21
+ test 'email presence' do
22
+ @user.email = nil
23
+ assert !@user.valid?
24
+ end
25
+
26
+ test 'email_credential' do
27
+ assert_equal credentials(:john_email), @john.email_credential
28
+ assert_equal credentials(:jane_email), @jane.email_credential
29
+ assert_nil @bill.email_credential
30
+ end
31
+
32
+ test 'email length' do
33
+ @user.email = 'abcde' * 25 + '@mit.edu'
34
+ assert !@user.valid?, 'Overly long email'
35
+ end
36
+
37
+ test 'email format' do
38
+ ['cos tan@gmail.com', 'costan@x@mit.edu'].each do |email|
39
+ @user.email = email
40
+ assert !@user.valid?, "Bad email format - #{email}"
41
+ end
42
+ end
43
+
44
+ test 'email' do
45
+ assert_equal credentials(:john_email).email, @john.email
46
+ assert_equal credentials(:jane_email).email, @jane.email
47
+ assert_nil @bill.email
48
+ end
49
+
50
+ test 'with_email' do
51
+ assert_equal users(:john),
52
+ UserWithEmail.with_email(credentials(:john_email).email)
53
+ assert_equal users(:jane),
54
+ UserWithEmail.with_email(credentials(:jane_email).email)
55
+ assert_nil UserWithEmail.with_email('nosuch@email.com')
56
+ end
57
+ end
@@ -3,9 +3,10 @@ require File.expand_path('../test_helper', __FILE__)
3
3
  class FacebookCredentialTest < ActiveSupport::TestCase
4
4
  def setup
5
5
  @code = 'AAAEj8jKX2a8BAA4kNheRhOs6SlECVcZCE9o5pPKMytOjjoiNAoZBGZAwuL4KrrxXWesfJRhzDZCJiqrcQG3UdjRRNtyMJQMZD'
6
- @credential = Credentials::Facebook.new :facebook_uid => '1181310542',
7
- :key => 'AAAEj8jKX2a8BAOBMZCjxBe4dw7cRoD1JVxUgZAtB6ozJlR4Viazh6OAYcHB5kZAtUwgjpDy7a54ZA1DObLmBT9X99CLWYOj5Stqx8bHwnE7EzyBS1WxY',
8
- :user => users(:bill)
6
+ @credential = Credentials::Facebook.new
7
+ @credential.facebook_uid = '1181310542'
8
+ @credential.key = 'AAAEj8jKX2a8BAOBMZCjxBe4dw7cRoD1JVxUgZAtB6ozJlR4Viazh6OAYcHB5kZAtUwgjpDy7a54ZA1DObLmBT9X99CLWYOj5Stqx8bHwnE7EzyBS1WxY'
9
+ @credential.user = users(:bill)
9
10
  end
10
11
 
11
12
  test 'setup' do
@@ -0,0 +1,4 @@
1
+ require 'active_support/dependencies'
2
+
3
+ ActiveSupport::Dependencies.autoload_paths << File.expand_path(
4
+ '../../../app/models', __FILE__)
@@ -3,7 +3,8 @@ require File.expand_path('../test_helper', __FILE__)
3
3
  class PasswordCredentialTest < ActiveSupport::TestCase
4
4
  def setup
5
5
  @credential = Credentials::Password.new :password => 'awesome',
6
- :password_confirmation => 'awesome', :user => users(:bill)
6
+ :password_confirmation => 'awesome'
7
+ @credential.user = users(:bill)
7
8
  end
8
9
 
9
10
  test 'setup' do
@@ -58,10 +59,4 @@ class PasswordCredentialTest < ActiveSupport::TestCase
58
59
  Credentials::Password.authenticate_email('john@gmail.com', 'awesome'),
59
60
  'Bogus password'
60
61
  end
61
-
62
- test 'User#password_credential' do
63
- assert_equal credentials(:john_password), users(:john).password_credential
64
- assert_equal credentials(:jane_password), users(:jane).password_credential
65
- assert_nil users(:bill).password_credential
66
- end
67
62
  end
@@ -0,0 +1,41 @@
1
+ require File.expand_path('../test_helper', __FILE__)
2
+
3
+ class UserWithPassword < User
4
+ include Authpwn::UserExtensions::PasswordField
5
+ end
6
+
7
+ class PasswordFieldTest < ActiveSupport::TestCase
8
+ def setup
9
+ @user = UserWithPassword.new :password => 'awesome',
10
+ :password_confirmation => 'awesome'
11
+
12
+ @john = UserWithPassword.find_by_id(users(:john).id)
13
+ @jane = UserWithPassword.find_by_id(users(:jane).id)
14
+ @bill = UserWithPassword.find_by_id(users(:bill).id)
15
+ end
16
+
17
+ test 'setup' do
18
+ assert @user.valid?
19
+ end
20
+
21
+ test 'password required' do
22
+ @user.password = @user.password_confirmation = nil
23
+ assert !@user.valid?
24
+ end
25
+
26
+ test 'password assumed ok for existing records' do
27
+ @john.save!
28
+ assert @john.valid?
29
+ end
30
+
31
+ test 'password confirmation' do
32
+ @user.password_confirmation = 'not awesome'
33
+ assert !@user.valid?
34
+ end
35
+
36
+ test 'password_credential' do
37
+ assert_equal credentials(:john_password), @john.password_credential
38
+ assert_equal credentials(:jane_password), @jane.password_credential
39
+ assert_nil @bill.password_credential
40
+ end
41
+ end
data/test/test_helper.rb CHANGED
@@ -15,6 +15,7 @@ require 'authpwn_rails'
15
15
  require 'helpers/view_helpers.rb'
16
16
  # NOTE: application_controller has to follow view_helpers
17
17
  require 'helpers/application_controller.rb'
18
+ require 'helpers/autoload_path.rb'
18
19
  require 'helpers/db_setup.rb'
19
20
  require 'helpers/fbgraph.rb'
20
21
  require 'helpers/routes.rb'
data/test/user_test.rb CHANGED
@@ -34,4 +34,11 @@ class UserTest < ActiveSupport::TestCase
34
34
  assert_equal nil, User.find_by_param('bogus id')
35
35
  assert_equal nil, User.find_by_param(nil)
36
36
  end
37
+
38
+ test 'nested attributes' do
39
+ @user = User.new :credentials_attributes => { 0 =>
40
+ {:name => 'test@email.com', :type => 'Credentials::Password'}}
41
+ assert_equal 1, @user.credentials.length
42
+ assert_equal 'test@email.com', @user.credentials.first.name
43
+ end
37
44
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: authpwn_rails
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.10.1
4
+ version: 0.10.2
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,11 +9,11 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2011-11-21 00:00:00.000000000Z
12
+ date: 2011-11-25 00:00:00.000000000Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: fbgraph_rails
16
- requirement: &10153440 !ruby/object:Gem::Requirement
16
+ requirement: &17655420 !ruby/object:Gem::Requirement
17
17
  none: false
18
18
  requirements:
19
19
  - - ! '>='
@@ -21,10 +21,10 @@ dependencies:
21
21
  version: 0.2.2
22
22
  type: :runtime
23
23
  prerelease: false
24
- version_requirements: *10153440
24
+ version_requirements: *17655420
25
25
  - !ruby/object:Gem::Dependency
26
26
  name: rails
27
- requirement: &10152600 !ruby/object:Gem::Requirement
27
+ requirement: &17653940 !ruby/object:Gem::Requirement
28
28
  none: false
29
29
  requirements:
30
30
  - - ! '>='
@@ -32,10 +32,10 @@ dependencies:
32
32
  version: 3.1.3
33
33
  type: :runtime
34
34
  prerelease: false
35
- version_requirements: *10152600
35
+ version_requirements: *17653940
36
36
  - !ruby/object:Gem::Dependency
37
37
  name: bundler
38
- requirement: &10151940 !ruby/object:Gem::Requirement
38
+ requirement: &17652840 !ruby/object:Gem::Requirement
39
39
  none: false
40
40
  requirements:
41
41
  - - ~>
@@ -43,10 +43,10 @@ dependencies:
43
43
  version: 1.0.0
44
44
  type: :development
45
45
  prerelease: false
46
- version_requirements: *10151940
46
+ version_requirements: *17652840
47
47
  - !ruby/object:Gem::Dependency
48
48
  name: flexmock
49
- requirement: &10151200 !ruby/object:Gem::Requirement
49
+ requirement: &17599820 !ruby/object:Gem::Requirement
50
50
  none: false
51
51
  requirements:
52
52
  - - ~>
@@ -54,10 +54,10 @@ dependencies:
54
54
  version: 0.9.0
55
55
  type: :development
56
56
  prerelease: false
57
- version_requirements: *10151200
57
+ version_requirements: *17599820
58
58
  - !ruby/object:Gem::Dependency
59
59
  name: jeweler
60
- requirement: &10150220 !ruby/object:Gem::Requirement
60
+ requirement: &17598940 !ruby/object:Gem::Requirement
61
61
  none: false
62
62
  requirements:
63
63
  - - ~>
@@ -65,10 +65,10 @@ dependencies:
65
65
  version: 1.6.0
66
66
  type: :development
67
67
  prerelease: false
68
- version_requirements: *10150220
68
+ version_requirements: *17598940
69
69
  - !ruby/object:Gem::Dependency
70
70
  name: rcov
71
- requirement: &10149480 !ruby/object:Gem::Requirement
71
+ requirement: &17598120 !ruby/object:Gem::Requirement
72
72
  none: false
73
73
  requirements:
74
74
  - - ! '>='
@@ -76,10 +76,10 @@ dependencies:
76
76
  version: '0'
77
77
  type: :development
78
78
  prerelease: false
79
- version_requirements: *10149480
79
+ version_requirements: *17598120
80
80
  - !ruby/object:Gem::Dependency
81
81
  name: sqlite3
82
- requirement: &10148440 !ruby/object:Gem::Requirement
82
+ requirement: &17597180 !ruby/object:Gem::Requirement
83
83
  none: false
84
84
  requirements:
85
85
  - - ! '>='
@@ -87,7 +87,7 @@ dependencies:
87
87
  version: 1.3.3
88
88
  type: :development
89
89
  prerelease: false
90
- version_requirements: *10148440
90
+ version_requirements: *17597180
91
91
  description: Works with Facebook.
92
92
  email: victor@costan.us
93
93
  executables: []
@@ -106,14 +106,13 @@ files:
106
106
  - Rakefile
107
107
  - VERSION
108
108
  - app/helpers/session_helper.rb
109
+ - app/models/credentials/email.rb
110
+ - app/models/credentials/facebook.rb
111
+ - app/models/credentials/password.rb
109
112
  - authpwn_rails.gemspec
110
113
  - legacy/migrate_09_to_010.rb
111
114
  - lib/authpwn_rails.rb
112
115
  - lib/authpwn_rails/credential_model.rb
113
- - lib/authpwn_rails/credentials.rb
114
- - lib/authpwn_rails/credentials/email.rb
115
- - lib/authpwn_rails/credentials/facebook.rb
116
- - lib/authpwn_rails/credentials/password.rb
117
116
  - lib/authpwn_rails/engine.rb
118
117
  - lib/authpwn_rails/facebook_session.rb
119
118
  - lib/authpwn_rails/generators/all_generator.rb
@@ -132,17 +131,22 @@ files:
132
131
  - lib/authpwn_rails/session.rb
133
132
  - lib/authpwn_rails/session_controller.rb
134
133
  - lib/authpwn_rails/test_extensions.rb
134
+ - lib/authpwn_rails/user_extensions/email_field.rb
135
+ - lib/authpwn_rails/user_extensions/password_field.rb
135
136
  - lib/authpwn_rails/user_model.rb
136
137
  - test/cookie_controller_test.rb
137
138
  - test/email_credential_test.rb
139
+ - test/email_field_test.rb
138
140
  - test/facebook_controller_test.rb
139
141
  - test/facebook_credential_test.rb
140
142
  - test/helpers/application_controller.rb
143
+ - test/helpers/autoload_path.rb
141
144
  - test/helpers/db_setup.rb
142
145
  - test/helpers/fbgraph.rb
143
146
  - test/helpers/routes.rb
144
147
  - test/helpers/view_helpers.rb
145
148
  - test/password_credential_test.rb
149
+ - test/password_field_test.rb
146
150
  - test/session_controller_api_test.rb
147
151
  - test/test_helper.rb
148
152
  - test/user_test.rb
@@ -161,7 +165,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
161
165
  version: '0'
162
166
  segments:
163
167
  - 0
164
- hash: 2383073164549657310
168
+ hash: -3179900965882251985
165
169
  required_rubygems_version: !ruby/object:Gem::Requirement
166
170
  none: false
167
171
  requirements:
@@ -1,16 +0,0 @@
1
- # Loads sub-classes of the Credential model.
2
- #
3
- # We allow the Credential model to be defined in the Rails application, so the
4
- # application can choose the storage model (ActiveRecord vs Mongoid etc.). This
5
- # means that we have to load the classes that inherit from Credential after it's
6
- # defined, which is long after the authpwn_rails engine is loaded.
7
-
8
- require 'active_support'
9
-
10
- module Credentials
11
- extend ActiveSupport::Autoload
12
-
13
- autoload :Email, 'authpwn_rails/credentials/email.rb'
14
- autoload :Facebook, 'authpwn_rails/credentials/facebook.rb'
15
- autoload :Password, 'authpwn_rails/credentials/password.rb'
16
- end