easy_auth 0.2.1 → 0.3.0
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.
- checksums.yaml +7 -0
- data/README.md +10 -4
- data/Rakefile +1 -1
- data/app/helpers/easy_auth_helper.rb +1 -44
- data/db/migrate/20120227014023_create_easy_auth_identities.rb +2 -6
- data/lib/easy_auth/active_support/concern.rb +37 -0
- data/lib/easy_auth/controllers/authenticated.rb +3 -3
- data/lib/easy_auth/controllers/sessions.rb +25 -34
- data/lib/easy_auth/helpers/easy_auth.rb +48 -0
- data/lib/easy_auth/helpers.rb +4 -0
- data/lib/easy_auth/models/account.rb +4 -47
- data/lib/easy_auth/models/identity.rb +5 -43
- data/lib/easy_auth/token_generator.rb +1 -1
- data/lib/easy_auth/version.rb +1 -1
- data/lib/easy_auth.rb +2 -2
- metadata +42 -72
- data/lib/easy_auth/reverse_concern.rb +0 -27
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA1:
|
3
|
+
metadata.gz: 8031ade914227fa6a302b315b81ed1d770c983dc
|
4
|
+
data.tar.gz: 460ce79e6dc08a35bfa723d51e78022ec6f6f627
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: f61a2d1b0133d7e119fc5bc045b4b34bdcd647541d2edcdcd9c54edbc40416afd00b90ea9557edb649e5933e5a8da030cdfccb35e9cfe2bd43440fcb8bb94a33
|
7
|
+
data.tar.gz: 37c2b860b6c5319df03ecf7d159088d9db713a2f2aae59790bfa75610bdc0552951ce3cc85f78975436ef19acd6a164ead24f2bf3dc14a223312f6889ab1a780
|
data/README.md
CHANGED
@@ -2,9 +2,9 @@
|
|
2
2
|
|
3
3
|
[](http://travis-ci.org/dockyard/easy_auth)
|
4
4
|
[](https://gemnasium.com/dockyard/easy_auth)
|
5
|
-
[](https://codeclimate.com/github/dockyard/easy_auth)
|
6
6
|
|
7
|
-
Dead simple drop in authentication for Rails
|
7
|
+
Dead simple drop in authentication for Rails 3.2+
|
8
8
|
|
9
9
|
## Installation ##
|
10
10
|
|
@@ -47,8 +47,14 @@ Your application is now ready for EasyAuth.
|
|
47
47
|
## Usage ##
|
48
48
|
|
49
49
|
You will need to use one of the many
|
50
|
-
[plugins](https://github.com/dockyard/easy_auth/wiki/Plugins) available for EasyAuth to
|
51
|
-
|
50
|
+
[plugins](https://github.com/dockyard/easy_auth/wiki/Plugins) available for EasyAuth to provide a specific authentication strategy.
|
51
|
+
|
52
|
+
## What you get ##
|
53
|
+
|
54
|
+
You `User` model will be setup with an association to `identities`. The modeling is pretty simple:
|
55
|
+
|
56
|
+

|
57
|
+
|
52
58
|
|
53
59
|
## Authors ##
|
54
60
|
|
data/Rakefile
CHANGED
@@ -1,6 +1,5 @@
|
|
1
1
|
require 'bundler/setup'
|
2
2
|
require 'rspec/core/rake_task'
|
3
|
-
Bundler::GemHelper.install_tasks
|
4
3
|
|
5
4
|
RSpec::Core::RakeTask.new('default') do |t|
|
6
5
|
t.pattern = FileList['spec/**/*_spec.rb']
|
@@ -8,3 +7,4 @@ end
|
|
8
7
|
|
9
8
|
APP_RAKEFILE = File.expand_path("../spec/dummy/Rakefile", __FILE__)
|
10
9
|
load 'rails/tasks/engine.rake'
|
10
|
+
Bundler::GemHelper.install_tasks
|
@@ -1,46 +1,3 @@
|
|
1
1
|
module EasyAuthHelper
|
2
|
-
|
3
|
-
base.class_eval do
|
4
|
-
helper_method :current_account, :current_user, :account_signed_in?, :user_signed_in?, :account_not_signed_in?, :user_not_signed_in?
|
5
|
-
end
|
6
|
-
end
|
7
|
-
|
8
|
-
# Access the current account the users is authenticated with
|
9
|
-
#
|
10
|
-
# @return [Account] instance
|
11
|
-
def current_account
|
12
|
-
if session[:session_token] && session[:account_class]
|
13
|
-
begin
|
14
|
-
@current_account ||= session[:account_class].constantize.find_by_session_token(session[:session_token])
|
15
|
-
rescue
|
16
|
-
@current_account = nil
|
17
|
-
session.delete(:session_token)
|
18
|
-
end
|
19
|
-
elsif cookies[:remember_token]
|
20
|
-
begin
|
21
|
-
@current_account ||= EasyAuth.identity_model.find_by_remember_token(cookies[:remember_token]).account
|
22
|
-
rescue
|
23
|
-
@current_acount = nil
|
24
|
-
cookies.delete(:remember_token)
|
25
|
-
end
|
26
|
-
else
|
27
|
-
session.delete(:session_token)
|
28
|
-
cookies.delete(:remember_token)
|
29
|
-
end
|
30
|
-
|
31
|
-
@current_account
|
32
|
-
end
|
33
|
-
alias :current_user :current_account
|
34
|
-
|
35
|
-
# Should be used to test if user is authenticated
|
36
|
-
def account_signed_in?
|
37
|
-
current_account
|
38
|
-
end
|
39
|
-
alias :user_signed_in? :account_signed_in?
|
40
|
-
|
41
|
-
# Should be used to test if user is not authenticated
|
42
|
-
def account_not_signed_in?
|
43
|
-
!account_signed_in?
|
44
|
-
end
|
45
|
-
alias :user_not_signed_in? :account_not_signed_in?
|
2
|
+
include EasyAuth::Helpers::EasyAuth
|
46
3
|
end
|
@@ -1,18 +1,14 @@
|
|
1
1
|
class CreateEasyAuthIdentities < ActiveRecord::Migration
|
2
2
|
def change
|
3
3
|
create_table :identities do |t|
|
4
|
-
t.string :
|
4
|
+
t.string :uid
|
5
5
|
t.string :token
|
6
6
|
t.string :account_type
|
7
7
|
t.integer :account_id
|
8
|
-
t.string :reset_token
|
9
|
-
t.string :remember_token
|
10
8
|
t.string :type
|
11
9
|
t.timestamps
|
12
10
|
end
|
13
11
|
|
14
|
-
|
15
|
-
add_index :identities, column
|
16
|
-
end
|
12
|
+
add_index :identities, :uid, using: :gin
|
17
13
|
end
|
18
14
|
end
|
@@ -0,0 +1,37 @@
|
|
1
|
+
module ActiveSupport::Concern
|
2
|
+
def append_features(base)
|
3
|
+
if base.instance_variable_defined?("@_dependencies")
|
4
|
+
base.instance_variable_get("@_dependencies") << { :method => :include, :module => self }
|
5
|
+
return false
|
6
|
+
else
|
7
|
+
return false if base < self
|
8
|
+
@_dependencies.each { |dep| Hash === dep ? base.send(dep[:method], dep[:module]) : base.send(:include, dep) }
|
9
|
+
super
|
10
|
+
base.extend const_get("ClassMethods") if const_defined?("ClassMethods")
|
11
|
+
base.class_eval(&@_included_block) if instance_variable_defined?("@_included_block")
|
12
|
+
end
|
13
|
+
end
|
14
|
+
|
15
|
+
def prepend_features(base)
|
16
|
+
if base.instance_variable_defined?("@_dependencies")
|
17
|
+
base.instance_variable_get("@_dependencies").unshift({ :method => :prepend, :module => self })
|
18
|
+
return false
|
19
|
+
else
|
20
|
+
return false if base < self
|
21
|
+
super
|
22
|
+
base.singleton_class.send(:prepend, const_get("ClassMethods")) if const_defined?("ClassMethods")
|
23
|
+
@_dependencies.each { |dep| Hash === dep ? base.send(dep[:method], dep[:module]) : base.send(:prepend, dep) }
|
24
|
+
base.class_eval(&@_prepended_block) if instance_variable_defined?("@_prepended_block")
|
25
|
+
end
|
26
|
+
end
|
27
|
+
|
28
|
+
def prepended(base = nil, &block)
|
29
|
+
if base.nil?
|
30
|
+
raise MultipleIncludedBlocks if instance_variable_defined?("@_prepended_block")
|
31
|
+
|
32
|
+
@_prepended_block = block
|
33
|
+
else
|
34
|
+
super
|
35
|
+
end
|
36
|
+
end
|
37
|
+
end
|
@@ -1,7 +1,7 @@
|
|
1
1
|
module EasyAuth::Controllers::Authenticated
|
2
|
-
extend
|
2
|
+
extend ActiveSupport::Concern
|
3
3
|
|
4
|
-
|
4
|
+
included do
|
5
5
|
before_filter :attempt_to_authenticate
|
6
6
|
end
|
7
7
|
|
@@ -9,7 +9,7 @@ module EasyAuth::Controllers::Authenticated
|
|
9
9
|
|
10
10
|
def attempt_to_authenticate
|
11
11
|
if account_not_signed_in?
|
12
|
-
session[:requested_path] = request.path
|
12
|
+
session[:requested_path] = request.method == 'GET' ? request.path : request.referer
|
13
13
|
respond_to do |format|
|
14
14
|
format.html { redirect_to main_app.sign_in_url }
|
15
15
|
format.json { render :json => {}, :status => 401 }
|
@@ -1,64 +1,61 @@
|
|
1
1
|
module EasyAuth::Controllers::Sessions
|
2
|
-
extend
|
2
|
+
extend ActiveSupport::Concern
|
3
3
|
|
4
4
|
def new
|
5
5
|
EasyAuth.new_session(self)
|
6
6
|
end
|
7
7
|
|
8
8
|
def create
|
9
|
-
if identity = EasyAuth.authenticate(self)
|
10
|
-
identity.
|
11
|
-
|
12
|
-
if identity.remember
|
13
|
-
cookies[:remember_token] = { :value => identity.generate_remember_token!, :expires => identity.remember_time.from_now }
|
14
|
-
end
|
15
|
-
after_successful_sign_in(identity)
|
9
|
+
if @identity = EasyAuth.authenticate(self)
|
10
|
+
session[:identity_id] = @identity.id
|
11
|
+
after_successful_sign_in
|
16
12
|
else
|
17
13
|
@identity = EasyAuth.find_identity_model(params).new(params[params[:identity]])
|
18
|
-
after_failed_sign_in
|
14
|
+
after_failed_sign_in
|
19
15
|
end
|
16
|
+
rescue AbstractController::DoubleRenderError
|
20
17
|
end
|
21
18
|
|
22
19
|
def destroy
|
23
|
-
session.delete(:
|
24
|
-
session.delete(:account_class)
|
25
|
-
cookies.delete(:remember_token)
|
20
|
+
session.delete(:identity_id)
|
26
21
|
after_sign_out
|
27
22
|
end
|
28
23
|
|
29
|
-
|
30
|
-
|
31
|
-
def after_with_or_default(method_name, identity)
|
32
|
-
send("#{method_name}_with_#{params[:identity]}", identity) || send("#{method_name}_default", identity)
|
24
|
+
def after_with_or_default(method_name)
|
25
|
+
send("#{method_name}_with_#{params[:identity]}") || send("#{method_name}_default")
|
33
26
|
end
|
34
27
|
|
35
|
-
def after_successful_sign_in
|
36
|
-
after_with_or_default(__method__
|
28
|
+
def after_successful_sign_in
|
29
|
+
after_with_or_default(__method__)
|
37
30
|
end
|
38
31
|
|
39
|
-
def after_successful_sign_in_url
|
40
|
-
after_with_or_default(__method__
|
32
|
+
def after_successful_sign_in_url
|
33
|
+
after_with_or_default(__method__)
|
41
34
|
end
|
42
35
|
|
43
|
-
def after_failed_sign_in
|
44
|
-
after_with_or_default(__method__
|
36
|
+
def after_failed_sign_in
|
37
|
+
after_with_or_default(__method__)
|
45
38
|
end
|
46
39
|
|
47
|
-
def after_successful_sign_in_default
|
48
|
-
redirect_to(session.delete(:requested_path) || after_successful_sign_in_url
|
40
|
+
def after_successful_sign_in_default
|
41
|
+
redirect_to(session.delete(:requested_path) || after_successful_sign_in_url, :notice => I18n.t('easy_auth.sessions.create.notice'))
|
49
42
|
end
|
50
43
|
|
51
|
-
def after_successful_sign_in_url_default
|
52
|
-
identity.account
|
44
|
+
def after_successful_sign_in_url_default
|
45
|
+
@identity.account
|
53
46
|
end
|
54
47
|
|
55
|
-
def after_failed_sign_in_default
|
48
|
+
def after_failed_sign_in_default
|
56
49
|
flash.now[:error] = I18n.t('easy_auth.sessions.create.error')
|
57
50
|
render :new
|
58
51
|
end
|
59
52
|
|
60
53
|
def after_sign_out
|
61
|
-
redirect_to
|
54
|
+
redirect_to after_sign_out_url, :notice => I18n.t('easy_auth.sessions.delete.notice')
|
55
|
+
end
|
56
|
+
|
57
|
+
def after_sign_out_url
|
58
|
+
main_app.root_url
|
62
59
|
end
|
63
60
|
|
64
61
|
def no_authentication
|
@@ -77,10 +74,4 @@ module EasyAuth::Controllers::Sessions
|
|
77
74
|
super
|
78
75
|
end
|
79
76
|
end
|
80
|
-
|
81
|
-
def set_remember(identity)
|
82
|
-
if identity_attributes = params[ActiveModel::Naming.param_key(EasyAuth.find_identity_model(params).new)]
|
83
|
-
identity.remember = identity_attributes[:remember]
|
84
|
-
end
|
85
|
-
end
|
86
77
|
end
|
@@ -0,0 +1,48 @@
|
|
1
|
+
module EasyAuth::Helpers::EasyAuth
|
2
|
+
extend ActiveSupport::Concern
|
3
|
+
|
4
|
+
def self.included(base)
|
5
|
+
base.class_eval do
|
6
|
+
def self.included(base)
|
7
|
+
base.class_eval do
|
8
|
+
helper_method :current_account, :current_user, :account_signed_in?, :user_signed_in?, :account_not_signed_in?, :user_not_signed_in?
|
9
|
+
end
|
10
|
+
end
|
11
|
+
end
|
12
|
+
end
|
13
|
+
|
14
|
+
# Access the current account the users is authenticated with
|
15
|
+
#
|
16
|
+
# @return [Account] instance
|
17
|
+
def current_account
|
18
|
+
if session[:identity_id]
|
19
|
+
begin
|
20
|
+
@current_account ||= EasyAuth.identity_model.find(session[:identity_id]).account
|
21
|
+
rescue ActiveRecord::RecordNotFound
|
22
|
+
@current_account = nil
|
23
|
+
delete_session_data
|
24
|
+
end
|
25
|
+
end
|
26
|
+
|
27
|
+
@current_account
|
28
|
+
end
|
29
|
+
alias :current_user :current_account
|
30
|
+
|
31
|
+
# Should be used to test if user is authenticated
|
32
|
+
def account_signed_in?
|
33
|
+
current_account
|
34
|
+
end
|
35
|
+
alias :user_signed_in? :account_signed_in?
|
36
|
+
|
37
|
+
# Should be used to test if user is not authenticated
|
38
|
+
def account_not_signed_in?
|
39
|
+
!account_signed_in?
|
40
|
+
end
|
41
|
+
alias :user_not_signed_in? :account_not_signed_in?
|
42
|
+
|
43
|
+
private
|
44
|
+
|
45
|
+
def delete_session_data
|
46
|
+
session.delete(:identity_id)
|
47
|
+
end
|
48
|
+
end
|
@@ -1,52 +1,9 @@
|
|
1
1
|
module EasyAuth::Models::Account
|
2
|
-
|
3
|
-
extend EasyAuth::ReverseConcern
|
4
|
-
class NoIdentityUsernameError < StandardError; end
|
2
|
+
extend ActiveSupport::Concern
|
5
3
|
|
6
|
-
|
4
|
+
included do
|
7
5
|
# Relationships
|
8
|
-
has_many :identities, :class_name => 'Identity', :as => :account, :dependent => :destroy
|
9
|
-
|
10
|
-
def identity_username_attribute
|
11
|
-
self.send(self.class.identity_username_attribute)
|
12
|
-
end
|
13
|
-
end
|
14
|
-
|
15
|
-
module ClassMethods
|
16
|
-
# Will attempt to find the username attribute
|
17
|
-
#
|
18
|
-
# First will check to see if #identity_username_attribute is already defined in the model.
|
19
|
-
#
|
20
|
-
# If not, will check to see if `username` exists as a column on the record
|
21
|
-
# If not, will check to see if `email` exists as a column on the record
|
22
|
-
#
|
23
|
-
# @return [Symbol]
|
24
|
-
def identity_username_attribute
|
25
|
-
if respond_to?(:super)
|
26
|
-
super
|
27
|
-
elsif column_names.include?('username')
|
28
|
-
:username
|
29
|
-
elsif column_names.include?('email')
|
30
|
-
:email
|
31
|
-
else
|
32
|
-
raise EasyAuth::Models::Account::NoIdentityUsernameError, 'your model must have either a #username or #email attribute. Or you must override the .identity_username_attribute class method'
|
33
|
-
end
|
34
|
-
end
|
35
|
-
end
|
36
|
-
|
37
|
-
# Generates a new session token and updates the record
|
38
|
-
#
|
39
|
-
# @return [String]
|
40
|
-
def generate_session_token!
|
41
|
-
self.update_column(:session_token, _generate_token(:session))
|
42
|
-
self.session_token
|
43
|
-
end
|
44
|
-
|
45
|
-
# Used to set the session for the authenticated account
|
46
|
-
#
|
47
|
-
# @param [Rack::Session::Abstract::SessionHash] session controller session
|
48
|
-
def set_session(session)
|
49
|
-
session[:session_token] = generate_session_token!
|
50
|
-
session[:account_class] = self.class.to_s
|
6
|
+
has_many :identities, :class_name => 'Identity', :as => :account, :dependent => :destroy, :autosave => true
|
7
|
+
accepts_nested_attributes_for :identities
|
51
8
|
end
|
52
9
|
end
|
@@ -1,12 +1,10 @@
|
|
1
1
|
module EasyAuth::Models::Identity
|
2
|
-
|
3
|
-
include EasyAuth::ReverseConcern
|
2
|
+
extend ActiveSupport::Concern
|
4
3
|
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
end
|
4
|
+
included do
|
5
|
+
belongs_to :account, polymorphic: true, dependent: :destroy, autosave: true, validate: true
|
6
|
+
validates :uid, :uniqueness => { :scope => :type }, :presence => true
|
7
|
+
validates :token, presence: true
|
10
8
|
end
|
11
9
|
|
12
10
|
module ClassMethods
|
@@ -24,40 +22,4 @@ module EasyAuth::Models::Identity
|
|
24
22
|
controller.instance_variable_set(:@identity, self.new)
|
25
23
|
end
|
26
24
|
end
|
27
|
-
|
28
|
-
# Sets the session for the association account
|
29
|
-
#
|
30
|
-
# @param [Rack::Session::Abstract::SessionHash] session controller session
|
31
|
-
def set_account_session(session)
|
32
|
-
account.set_session(session)
|
33
|
-
end
|
34
|
-
|
35
|
-
# Getter for the remember flag
|
36
|
-
def remember
|
37
|
-
@remember
|
38
|
-
end
|
39
|
-
|
40
|
-
# Setter for the remember flag
|
41
|
-
#
|
42
|
-
# @param [Boolean] value
|
43
|
-
def remember=(value)
|
44
|
-
@remember = ::ActiveRecord::ConnectionAdapters::Column.value_to_boolean(value)
|
45
|
-
end
|
46
|
-
|
47
|
-
# Generates a new remember token and updates it on the identity record
|
48
|
-
#
|
49
|
-
# @return [String]
|
50
|
-
def generate_remember_token!
|
51
|
-
update_column(:remember_token, _generate_token(:remember))
|
52
|
-
remember_token
|
53
|
-
end
|
54
|
-
|
55
|
-
# The time used for remembering how long to stay signed in
|
56
|
-
#
|
57
|
-
# Defaults to 1 year, override in the model to set your own custom remember time
|
58
|
-
#
|
59
|
-
# @return [DateTime]
|
60
|
-
def remember_time
|
61
|
-
1.year
|
62
|
-
end
|
63
25
|
end
|
data/lib/easy_auth/version.rb
CHANGED
data/lib/easy_auth.rb
CHANGED
@@ -1,15 +1,15 @@
|
|
1
1
|
require 'active_support'
|
2
|
-
require 'bcrypt'
|
3
2
|
require 'easy_auth/engine'
|
4
3
|
require 'easy_auth/version'
|
4
|
+
require 'easy_auth/active_support/concern'
|
5
5
|
|
6
6
|
module EasyAuth
|
7
7
|
extend ActiveSupport::Autoload
|
8
8
|
|
9
9
|
autoload :Controllers
|
10
|
+
autoload :Helpers
|
10
11
|
autoload :Mailers
|
11
12
|
autoload :Models
|
12
|
-
autoload :ReverseConcern
|
13
13
|
autoload :Routes
|
14
14
|
autoload :TokenGenerator
|
15
15
|
|
metadata
CHANGED
@@ -1,8 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: easy_auth
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
5
|
-
prerelease:
|
4
|
+
version: 0.3.0
|
6
5
|
platform: ruby
|
7
6
|
authors:
|
8
7
|
- Brian Cardarella
|
@@ -10,124 +9,109 @@ authors:
|
|
10
9
|
autorequire:
|
11
10
|
bindir: bin
|
12
11
|
cert_chain: []
|
13
|
-
date:
|
12
|
+
date: 2014-03-11 00:00:00.000000000 Z
|
14
13
|
dependencies:
|
15
14
|
- !ruby/object:Gem::Dependency
|
16
15
|
name: rails
|
17
16
|
requirement: !ruby/object:Gem::Requirement
|
18
|
-
none: false
|
19
17
|
requirements:
|
20
|
-
- -
|
18
|
+
- - '>='
|
21
19
|
- !ruby/object:Gem::Version
|
22
|
-
version: 3.2.
|
20
|
+
version: 3.2.0
|
23
21
|
type: :runtime
|
24
22
|
prerelease: false
|
25
23
|
version_requirements: !ruby/object:Gem::Requirement
|
26
|
-
none: false
|
27
24
|
requirements:
|
28
|
-
- -
|
25
|
+
- - '>='
|
29
26
|
- !ruby/object:Gem::Version
|
30
|
-
version: 3.2.
|
27
|
+
version: 3.2.0
|
31
28
|
- !ruby/object:Gem::Dependency
|
32
|
-
name:
|
29
|
+
name: rails
|
33
30
|
requirement: !ruby/object:Gem::Requirement
|
34
|
-
none: false
|
35
31
|
requirements:
|
36
32
|
- - ~>
|
37
33
|
- !ruby/object:Gem::Version
|
38
|
-
version:
|
39
|
-
type: :
|
34
|
+
version: 4.0.0
|
35
|
+
type: :development
|
40
36
|
prerelease: false
|
41
37
|
version_requirements: !ruby/object:Gem::Requirement
|
42
|
-
none: false
|
43
38
|
requirements:
|
44
39
|
- - ~>
|
45
40
|
- !ruby/object:Gem::Version
|
46
|
-
version:
|
41
|
+
version: 4.0.0
|
47
42
|
- !ruby/object:Gem::Dependency
|
48
43
|
name: sqlite3
|
49
44
|
requirement: !ruby/object:Gem::Requirement
|
50
|
-
none: false
|
51
45
|
requirements:
|
52
|
-
- -
|
46
|
+
- - '>='
|
53
47
|
- !ruby/object:Gem::Version
|
54
48
|
version: '0'
|
55
49
|
type: :development
|
56
50
|
prerelease: false
|
57
51
|
version_requirements: !ruby/object:Gem::Requirement
|
58
|
-
none: false
|
59
52
|
requirements:
|
60
|
-
- -
|
53
|
+
- - '>='
|
61
54
|
- !ruby/object:Gem::Version
|
62
55
|
version: '0'
|
63
56
|
- !ruby/object:Gem::Dependency
|
64
57
|
name: rspec-rails
|
65
58
|
requirement: !ruby/object:Gem::Requirement
|
66
|
-
none: false
|
67
59
|
requirements:
|
68
|
-
- -
|
60
|
+
- - '>='
|
69
61
|
- !ruby/object:Gem::Version
|
70
62
|
version: '0'
|
71
63
|
type: :development
|
72
64
|
prerelease: false
|
73
65
|
version_requirements: !ruby/object:Gem::Requirement
|
74
|
-
none: false
|
75
66
|
requirements:
|
76
|
-
- -
|
67
|
+
- - '>='
|
77
68
|
- !ruby/object:Gem::Version
|
78
69
|
version: '0'
|
79
70
|
- !ruby/object:Gem::Dependency
|
80
71
|
name: capybara
|
81
72
|
requirement: !ruby/object:Gem::Requirement
|
82
|
-
none: false
|
83
73
|
requirements:
|
84
|
-
- -
|
74
|
+
- - ~>
|
85
75
|
- !ruby/object:Gem::Version
|
86
|
-
version: '
|
76
|
+
version: '2.1'
|
87
77
|
type: :development
|
88
78
|
prerelease: false
|
89
79
|
version_requirements: !ruby/object:Gem::Requirement
|
90
|
-
none: false
|
91
80
|
requirements:
|
92
|
-
- -
|
81
|
+
- - ~>
|
93
82
|
- !ruby/object:Gem::Version
|
94
|
-
version: '
|
83
|
+
version: '2.1'
|
95
84
|
- !ruby/object:Gem::Dependency
|
96
85
|
name: database_cleaner
|
97
86
|
requirement: !ruby/object:Gem::Requirement
|
98
|
-
none: false
|
99
87
|
requirements:
|
100
|
-
- -
|
88
|
+
- - ~>
|
101
89
|
- !ruby/object:Gem::Version
|
102
|
-
version:
|
90
|
+
version: 1.0.1
|
103
91
|
type: :development
|
104
92
|
prerelease: false
|
105
93
|
version_requirements: !ruby/object:Gem::Requirement
|
106
|
-
none: false
|
107
94
|
requirements:
|
108
|
-
- -
|
95
|
+
- - ~>
|
109
96
|
- !ruby/object:Gem::Version
|
110
|
-
version:
|
97
|
+
version: 1.0.1
|
111
98
|
- !ruby/object:Gem::Dependency
|
112
99
|
name: valid_attribute
|
113
100
|
requirement: !ruby/object:Gem::Requirement
|
114
|
-
none: false
|
115
101
|
requirements:
|
116
|
-
- -
|
102
|
+
- - '>='
|
117
103
|
- !ruby/object:Gem::Version
|
118
104
|
version: '0'
|
119
105
|
type: :development
|
120
106
|
prerelease: false
|
121
107
|
version_requirements: !ruby/object:Gem::Requirement
|
122
|
-
none: false
|
123
108
|
requirements:
|
124
|
-
- -
|
109
|
+
- - '>='
|
125
110
|
- !ruby/object:Gem::Version
|
126
111
|
version: '0'
|
127
112
|
- !ruby/object:Gem::Dependency
|
128
113
|
name: factory_girl_rails
|
129
114
|
requirement: !ruby/object:Gem::Requirement
|
130
|
-
none: false
|
131
115
|
requirements:
|
132
116
|
- - ~>
|
133
117
|
- !ruby/object:Gem::Version
|
@@ -135,7 +119,6 @@ dependencies:
|
|
135
119
|
type: :development
|
136
120
|
prerelease: false
|
137
121
|
version_requirements: !ruby/object:Gem::Requirement
|
138
|
-
none: false
|
139
122
|
requirements:
|
140
123
|
- - ~>
|
141
124
|
- !ruby/object:Gem::Version
|
@@ -143,7 +126,6 @@ dependencies:
|
|
143
126
|
- !ruby/object:Gem::Dependency
|
144
127
|
name: factory_girl
|
145
128
|
requirement: !ruby/object:Gem::Requirement
|
146
|
-
none: false
|
147
129
|
requirements:
|
148
130
|
- - ~>
|
149
131
|
- !ruby/object:Gem::Version
|
@@ -151,57 +133,50 @@ dependencies:
|
|
151
133
|
type: :development
|
152
134
|
prerelease: false
|
153
135
|
version_requirements: !ruby/object:Gem::Requirement
|
154
|
-
none: false
|
155
136
|
requirements:
|
156
137
|
- - ~>
|
157
138
|
- !ruby/object:Gem::Version
|
158
139
|
version: 2.6.0
|
159
140
|
- !ruby/object:Gem::Dependency
|
160
|
-
name:
|
141
|
+
name: mocha
|
161
142
|
requirement: !ruby/object:Gem::Requirement
|
162
|
-
none: false
|
163
143
|
requirements:
|
164
|
-
- -
|
144
|
+
- - ~>
|
165
145
|
- !ruby/object:Gem::Version
|
166
|
-
version:
|
146
|
+
version: 0.10.5
|
167
147
|
type: :development
|
168
148
|
prerelease: false
|
169
149
|
version_requirements: !ruby/object:Gem::Requirement
|
170
|
-
none: false
|
171
150
|
requirements:
|
172
|
-
- -
|
151
|
+
- - ~>
|
173
152
|
- !ruby/object:Gem::Version
|
174
|
-
version:
|
153
|
+
version: 0.10.5
|
175
154
|
- !ruby/object:Gem::Dependency
|
176
155
|
name: launchy
|
177
156
|
requirement: !ruby/object:Gem::Requirement
|
178
|
-
none: false
|
179
157
|
requirements:
|
180
|
-
- -
|
158
|
+
- - '>='
|
181
159
|
- !ruby/object:Gem::Version
|
182
160
|
version: '0'
|
183
161
|
type: :development
|
184
162
|
prerelease: false
|
185
163
|
version_requirements: !ruby/object:Gem::Requirement
|
186
|
-
none: false
|
187
164
|
requirements:
|
188
|
-
- -
|
165
|
+
- - '>='
|
189
166
|
- !ruby/object:Gem::Version
|
190
167
|
version: '0'
|
191
168
|
- !ruby/object:Gem::Dependency
|
192
169
|
name: generator_spec
|
193
170
|
requirement: !ruby/object:Gem::Requirement
|
194
|
-
none: false
|
195
171
|
requirements:
|
196
|
-
- -
|
172
|
+
- - '>='
|
197
173
|
- !ruby/object:Gem::Version
|
198
174
|
version: '0'
|
199
175
|
type: :development
|
200
176
|
prerelease: false
|
201
177
|
version_requirements: !ruby/object:Gem::Requirement
|
202
|
-
none: false
|
203
178
|
requirements:
|
204
|
-
- -
|
179
|
+
- - '>='
|
205
180
|
- !ruby/object:Gem::Version
|
206
181
|
version: '0'
|
207
182
|
description: EasyAuth
|
@@ -220,16 +195,18 @@ files:
|
|
220
195
|
- config/locales/en.yml
|
221
196
|
- config/routes.rb
|
222
197
|
- db/migrate/20120227014023_create_easy_auth_identities.rb
|
198
|
+
- lib/easy_auth/active_support/concern.rb
|
223
199
|
- lib/easy_auth/controllers/authenticated.rb
|
224
200
|
- lib/easy_auth/controllers/sessions.rb
|
225
201
|
- lib/easy_auth/controllers.rb
|
226
202
|
- lib/easy_auth/engine.rb
|
203
|
+
- lib/easy_auth/helpers/easy_auth.rb
|
204
|
+
- lib/easy_auth/helpers.rb
|
227
205
|
- lib/easy_auth/mailers.rb
|
228
206
|
- lib/easy_auth/models/account.rb
|
229
207
|
- lib/easy_auth/models/identities.rb
|
230
208
|
- lib/easy_auth/models/identity.rb
|
231
209
|
- lib/easy_auth/models.rb
|
232
|
-
- lib/easy_auth/reverse_concern.rb
|
233
210
|
- lib/easy_auth/routes.rb
|
234
211
|
- lib/easy_auth/token_generator.rb
|
235
212
|
- lib/easy_auth/version.rb
|
@@ -240,32 +217,25 @@ files:
|
|
240
217
|
- README.md
|
241
218
|
homepage: https://github.com/dockyard/easy_auth
|
242
219
|
licenses: []
|
220
|
+
metadata: {}
|
243
221
|
post_install_message:
|
244
222
|
rdoc_options: []
|
245
223
|
require_paths:
|
246
224
|
- lib
|
247
225
|
required_ruby_version: !ruby/object:Gem::Requirement
|
248
|
-
none: false
|
249
226
|
requirements:
|
250
|
-
- -
|
227
|
+
- - '>='
|
251
228
|
- !ruby/object:Gem::Version
|
252
|
-
version: '0'
|
253
|
-
segments:
|
254
|
-
- 0
|
255
|
-
hash: 911422429951666950
|
229
|
+
version: '2.0'
|
256
230
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
257
|
-
none: false
|
258
231
|
requirements:
|
259
|
-
- -
|
232
|
+
- - '>='
|
260
233
|
- !ruby/object:Gem::Version
|
261
234
|
version: '0'
|
262
|
-
segments:
|
263
|
-
- 0
|
264
|
-
hash: 911422429951666950
|
265
235
|
requirements: []
|
266
236
|
rubyforge_project:
|
267
|
-
rubygems_version:
|
237
|
+
rubygems_version: 2.0.3
|
268
238
|
signing_key:
|
269
|
-
specification_version:
|
239
|
+
specification_version: 4
|
270
240
|
summary: EasyAuth
|
271
241
|
test_files: []
|
@@ -1,27 +0,0 @@
|
|
1
|
-
module EasyAuth::ReverseConcern
|
2
|
-
def self.extended(base)
|
3
|
-
base.instance_variable_set("@_dependencies", [])
|
4
|
-
end
|
5
|
-
|
6
|
-
def append_features(base)
|
7
|
-
if base.instance_variable_defined?("@_dependencies")
|
8
|
-
base.instance_variable_get("@_dependencies") << self
|
9
|
-
return false
|
10
|
-
else
|
11
|
-
return false if base < self
|
12
|
-
base.class_eval(&@_included_block) if instance_variable_defined?("@_included_block")
|
13
|
-
base.extend const_get("ClassMethods") if const_defined?("ClassMethods")
|
14
|
-
@_dependencies.each { |dep| base.send(:include, dep) }
|
15
|
-
super
|
16
|
-
end
|
17
|
-
end
|
18
|
-
|
19
|
-
def reverse_included(base = nil, &block)
|
20
|
-
if base.nil?
|
21
|
-
@_included_block = block
|
22
|
-
else
|
23
|
-
super
|
24
|
-
end
|
25
|
-
end
|
26
|
-
end
|
27
|
-
|