switch_user 0.9.0 → 0.9.1
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/.gitignore +1 -0
- data/README.md +4 -4
- data/app/controllers/switch_user_controller.rb +3 -6
- data/app/helpers/switch_user_helper.rb +1 -1
- data/lib/switch_user.rb +17 -2
- data/lib/switch_user/provider.rb +3 -0
- data/lib/switch_user/provider/clearance.rb +23 -0
- data/lib/switch_user/provider/dummy.rb +23 -0
- data/lib/switch_user/provider/session.rb +29 -0
- data/lib/switch_user/rails.rb +5 -3
- data/lib/switch_user/user_loader.rb +17 -7
- data/lib/switch_user/version.rb +1 -1
- data/spec/controllers/switch_user_controller_spec.rb +24 -0
- data/spec/provider/clearance_spec.rb +23 -0
- data/spec/provider/{restful_authrentication_spec.rb → restful_authentication_spec.rb} +0 -0
- data/spec/provider/session_spec.rb +24 -0
- data/spec/spec_helper.rb +11 -0
- data/spec/support/application.rb +7 -0
- data/spec/switch_user/user_loader_spec.rb +31 -7
- data/spec/switch_user_spec.rb +17 -4
- data/switch_user.gemspec +5 -2
- metadata +60 -5
data/.gitignore
CHANGED
data/README.md
CHANGED
@@ -12,7 +12,9 @@ switch_user is very useful in such use cases
|
|
12
12
|
|
13
13
|
## Example
|
14
14
|
|
15
|
-
Visit here:
|
15
|
+
Visit here: <http://switch-user-example.heroku.com>, switch the current user in the select box.
|
16
|
+
|
17
|
+
And source code here: <https://github.com/flyerhzm/switch_user_example>
|
16
18
|
|
17
19
|
## Install
|
18
20
|
|
@@ -57,7 +59,7 @@ If you have a wildcard route in your Rails 3 project, add a route before the wil
|
|
57
59
|
By default, you can switch between Guest and all users in users table, you don't need to do anything. The following is the default configuration.
|
58
60
|
|
59
61
|
SwitchUser.setup do |config|
|
60
|
-
# provider may be :devise, :authlogic, :restful_authentication or :sorcery
|
62
|
+
# provider may be :devise, :authlogic, :clearance, :restful_authentication or :sorcery
|
61
63
|
config.provider = :devise
|
62
64
|
|
63
65
|
# available_users is a hash,
|
@@ -126,5 +128,3 @@ If you want to redirect user to "/dashboard" page
|
|
126
128
|
Copyright © 2010 - 2012 Richard Huang (flyerhzm@gmail.com), released under the MIT license
|
127
129
|
|
128
130
|
[0]: https://github.com/tablatom/hobo
|
129
|
-
[1]: http://switch-user-example.heroku.com/
|
130
|
-
|
@@ -19,18 +19,15 @@ class SwitchUserController < ApplicationController
|
|
19
19
|
end
|
20
20
|
|
21
21
|
def available?
|
22
|
-
SwitchUser.controller_guard
|
22
|
+
SwitchUser.controller_guard(provider.current_user, request)
|
23
23
|
end
|
24
24
|
|
25
25
|
def handle_request(params)
|
26
26
|
if params[:scope_identifier].blank?
|
27
27
|
provider.logout_all
|
28
28
|
else
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
user = SwitchUser::UserLoader.new(scope, identifier).load
|
33
|
-
provider.login_exclusive(user, :scope => scope)
|
29
|
+
loader = SwitchUser::UserLoader.prepare(params)
|
30
|
+
provider.login_exclusive(loader.user, :scope => loader.scope)
|
34
31
|
end
|
35
32
|
end
|
36
33
|
|
data/lib/switch_user.rb
CHANGED
@@ -11,9 +11,10 @@ module SwitchUser
|
|
11
11
|
mattr_accessor :available_users
|
12
12
|
mattr_accessor :available_users_identifiers
|
13
13
|
mattr_accessor :available_users_names
|
14
|
-
|
15
|
-
|
14
|
+
mattr_writer :controller_guard
|
15
|
+
mattr_writer :view_guard
|
16
16
|
mattr_accessor :redirect_path
|
17
|
+
mattr_accessor :session_key
|
17
18
|
|
18
19
|
def self.setup
|
19
20
|
yield self
|
@@ -27,6 +28,14 @@ module SwitchUser
|
|
27
28
|
available_users.keys
|
28
29
|
end
|
29
30
|
|
31
|
+
def self.controller_guard(*args)
|
32
|
+
call_guard(@@controller_guard, args)
|
33
|
+
end
|
34
|
+
|
35
|
+
def self.view_guard(*args)
|
36
|
+
call_guard(@@view_guard, args)
|
37
|
+
end
|
38
|
+
|
30
39
|
private
|
31
40
|
|
32
41
|
def self.reset_config
|
@@ -37,6 +46,12 @@ module SwitchUser
|
|
37
46
|
self.controller_guard = lambda { |current_user, request| Rails.env.development? }
|
38
47
|
self.view_guard = lambda { |current_user, request| Rails.env.development? }
|
39
48
|
self.redirect_path = lambda { |request, params| request.env["HTTP_REFERER"] ? :back : root_path }
|
49
|
+
self.session_key = :user_id
|
50
|
+
end
|
51
|
+
|
52
|
+
def self.call_guard(guard, args)
|
53
|
+
arity = guard.arity
|
54
|
+
guard.call(*args[0...arity])
|
40
55
|
end
|
41
56
|
|
42
57
|
reset_config
|
data/lib/switch_user/provider.rb
CHANGED
@@ -1,8 +1,11 @@
|
|
1
1
|
module SwitchUser
|
2
2
|
module Provider
|
3
3
|
autoload :Authlogic, "switch_user/provider/authlogic"
|
4
|
+
autoload :Clearance, "switch_user/provider/clearance"
|
4
5
|
autoload :Devise, "switch_user/provider/devise"
|
5
6
|
autoload :RestfulAuthentication, "switch_user/provider/restful_authentication"
|
6
7
|
autoload :Sorcery, "switch_user/provider/sorcery"
|
8
|
+
autoload :Dummy, "switch_user/provider/dummy"
|
9
|
+
autoload :Session, "switch_user/provider/session"
|
7
10
|
end
|
8
11
|
end
|
@@ -0,0 +1,23 @@
|
|
1
|
+
require 'switch_user/provider/base'
|
2
|
+
|
3
|
+
module SwitchUser
|
4
|
+
module Provider
|
5
|
+
class Clearance < Base
|
6
|
+
def initialize(controller)
|
7
|
+
@controller = controller
|
8
|
+
end
|
9
|
+
|
10
|
+
def login(user, scope = nil)
|
11
|
+
@controller.sign_in(user)
|
12
|
+
end
|
13
|
+
|
14
|
+
def logout(scope = nil)
|
15
|
+
@controller.sign_out
|
16
|
+
end
|
17
|
+
|
18
|
+
def current_user(scope = nil)
|
19
|
+
@controller.current_user
|
20
|
+
end
|
21
|
+
end
|
22
|
+
end
|
23
|
+
end
|
@@ -0,0 +1,23 @@
|
|
1
|
+
require 'switch_user/provider/base'
|
2
|
+
|
3
|
+
module SwitchUser
|
4
|
+
module Provider
|
5
|
+
class Dummy < Base
|
6
|
+
def initialize(controller)
|
7
|
+
@user = nil
|
8
|
+
end
|
9
|
+
|
10
|
+
def login(user, scope = nil)
|
11
|
+
@user = user
|
12
|
+
end
|
13
|
+
|
14
|
+
def logout(scope = nil)
|
15
|
+
@user = nil
|
16
|
+
end
|
17
|
+
|
18
|
+
def current_user(scope = nil)
|
19
|
+
@user
|
20
|
+
end
|
21
|
+
end
|
22
|
+
end
|
23
|
+
end
|
@@ -0,0 +1,29 @@
|
|
1
|
+
require 'switch_user/provider/base'
|
2
|
+
|
3
|
+
module SwitchUser
|
4
|
+
module Provider
|
5
|
+
class Session < Base
|
6
|
+
def initialize(controller)
|
7
|
+
@controller = controller
|
8
|
+
end
|
9
|
+
|
10
|
+
def login(user, scope = nil)
|
11
|
+
@controller.session[session_key] = user.id
|
12
|
+
end
|
13
|
+
|
14
|
+
def logout(scope = nil)
|
15
|
+
@controller.session.delete(session_key)
|
16
|
+
end
|
17
|
+
|
18
|
+
def current_user(scope = nil)
|
19
|
+
@controller.current_user
|
20
|
+
end
|
21
|
+
|
22
|
+
private
|
23
|
+
|
24
|
+
def session_key
|
25
|
+
SwitchUser.session_key
|
26
|
+
end
|
27
|
+
end
|
28
|
+
end
|
29
|
+
end
|
data/lib/switch_user/rails.rb
CHANGED
@@ -1,8 +1,10 @@
|
|
1
1
|
if defined?(Rails)
|
2
2
|
if defined? Rails::Engine
|
3
|
-
|
4
|
-
|
5
|
-
|
3
|
+
module SwitchUser
|
4
|
+
class Engine < Rails::Engine
|
5
|
+
config.to_prepare do
|
6
|
+
ActionView::Base.send :include, SwitchUserHelper
|
7
|
+
end
|
6
8
|
end
|
7
9
|
end
|
8
10
|
else
|
@@ -3,19 +3,31 @@ module SwitchUser
|
|
3
3
|
attr_reader :scope
|
4
4
|
attr_accessor :id
|
5
5
|
|
6
|
+
def self.prepare(*args)
|
7
|
+
options = args.extract_options!
|
8
|
+
|
9
|
+
if options[:scope_identifier]
|
10
|
+
options[:scope_identifier] =~ /^(.*)_([^_]+)$/
|
11
|
+
scope, id = $1, $2
|
12
|
+
else
|
13
|
+
scope, id = args
|
14
|
+
end
|
15
|
+
new(scope, id)
|
16
|
+
end
|
17
|
+
|
6
18
|
def initialize(scope, id)
|
7
19
|
self.scope = scope
|
8
20
|
self.id = id
|
9
21
|
end
|
10
22
|
|
11
|
-
def
|
12
|
-
user_class.
|
23
|
+
def user
|
24
|
+
user_class.where(column_name => id).first
|
13
25
|
end
|
14
26
|
|
15
27
|
private
|
16
28
|
|
17
29
|
def scope=(scope)
|
18
|
-
if SwitchUser.available_scopes.include?(scope.to_sym)
|
30
|
+
if scope && SwitchUser.available_scopes.include?(scope.to_sym)
|
19
31
|
@scope = scope
|
20
32
|
else
|
21
33
|
raise InvalidScope
|
@@ -26,10 +38,8 @@ module SwitchUser
|
|
26
38
|
scope.classify.constantize
|
27
39
|
end
|
28
40
|
|
29
|
-
def
|
30
|
-
|
31
|
-
|
32
|
-
"find_by_#{column_name}"
|
41
|
+
def column_name
|
42
|
+
SwitchUser.available_users_identifiers[scope.to_sym]
|
33
43
|
end
|
34
44
|
end
|
35
45
|
end
|
data/lib/switch_user/version.rb
CHANGED
@@ -0,0 +1,24 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
require 'switch_user'
|
3
|
+
require 'switch_user_controller'
|
4
|
+
|
5
|
+
describe SwitchUserController, :type => :controller do
|
6
|
+
before do
|
7
|
+
SwitchUser.provider = :dummy
|
8
|
+
end
|
9
|
+
|
10
|
+
it "redirects the user to the specified location" do
|
11
|
+
SwitchUser.redirect_path = lambda {|_,_| "/path"}
|
12
|
+
controller.stub(:available? => true)
|
13
|
+
get :set_current_user, :scope_identifier => "user_1"
|
14
|
+
|
15
|
+
response.should redirect_to("/path")
|
16
|
+
end
|
17
|
+
|
18
|
+
it "denies access according to the guard block" do
|
19
|
+
SwitchUser.controller_guard = lambda {|_,_| false }
|
20
|
+
get :set_current_user
|
21
|
+
|
22
|
+
response.should be_forbidden
|
23
|
+
end
|
24
|
+
end
|
@@ -0,0 +1,23 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
require 'switch_user/provider/clearance'
|
3
|
+
|
4
|
+
class ClearanceController
|
5
|
+
def sign_in(user)
|
6
|
+
@user = user
|
7
|
+
end
|
8
|
+
|
9
|
+
def sign_out
|
10
|
+
@user = nil
|
11
|
+
end
|
12
|
+
|
13
|
+
def current_user
|
14
|
+
@user
|
15
|
+
end
|
16
|
+
end
|
17
|
+
|
18
|
+
describe SwitchUser::Provider::Clearance do
|
19
|
+
let(:controller) { ClearanceController.new }
|
20
|
+
let(:provider) { SwitchUser::Provider::Clearance.new(controller) }
|
21
|
+
|
22
|
+
it_behaves_like "a provider"
|
23
|
+
end
|
File without changes
|
@@ -0,0 +1,24 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
require 'switch_user/provider/session'
|
3
|
+
|
4
|
+
class SessionController
|
5
|
+
def session
|
6
|
+
@session_hash ||= {}
|
7
|
+
end
|
8
|
+
|
9
|
+
def current_user
|
10
|
+
User.find_by_id(session[:uid]) if session[:uid]
|
11
|
+
end
|
12
|
+
end
|
13
|
+
|
14
|
+
describe SwitchUser::Provider::Session do
|
15
|
+
before do
|
16
|
+
user.stub(:id => 100)
|
17
|
+
User.stub(:find_by_id).with(100).and_return(user)
|
18
|
+
SwitchUser.session_key = :uid
|
19
|
+
end
|
20
|
+
let(:controller) { SessionController.new }
|
21
|
+
let(:provider) { SwitchUser::Provider::Session.new(controller) }
|
22
|
+
|
23
|
+
it_behaves_like "a provider"
|
24
|
+
end
|
data/spec/spec_helper.rb
CHANGED
@@ -1 +1,12 @@
|
|
1
1
|
require 'support/provider'
|
2
|
+
require 'support/application'
|
3
|
+
require 'rspec/rails'
|
4
|
+
|
5
|
+
RSpec.configure do |config|
|
6
|
+
config.filter_run :focus => true
|
7
|
+
config.run_all_when_everything_filtered = true
|
8
|
+
end
|
9
|
+
|
10
|
+
class ApplicationController < ActionController::Base
|
11
|
+
|
12
|
+
end
|
@@ -2,35 +2,59 @@ require 'spec_helper'
|
|
2
2
|
require 'switch_user/user_loader'
|
3
3
|
|
4
4
|
class User
|
5
|
-
def self.
|
5
|
+
def self.where(*)
|
6
|
+
[]
|
6
7
|
end
|
7
8
|
end
|
8
9
|
|
9
10
|
describe SwitchUser::UserLoader do
|
10
11
|
let(:user) { stub(:user) }
|
12
|
+
let(:user_result) { [user] }
|
11
13
|
|
12
14
|
it "raises an exception if we are passed an invalid scope" do
|
13
15
|
expect { SwitchUser::UserLoader.new("useeer", 1) }.to raise_error(SwitchUser::InvalidScope)
|
14
16
|
end
|
15
17
|
|
16
|
-
|
17
|
-
|
18
|
+
describe ".user" do
|
19
|
+
before do
|
20
|
+
SwitchUser.available_users_identifiers = {:user => :id}
|
21
|
+
User.stub(:where).with(:id => "1").and_return(user_result)
|
22
|
+
end
|
23
|
+
it "can be loaded from a scope and identifier" do
|
24
|
+
loaded_user = SwitchUser::UserLoader.prepare("user","1").user
|
25
|
+
|
26
|
+
loaded_user.should == user
|
27
|
+
end
|
28
|
+
it "can be loaded by a passing an unprocessed scope identifier" do
|
29
|
+
loaded_user = SwitchUser::UserLoader.prepare(:scope_identifier => "user_1").user
|
30
|
+
|
31
|
+
loaded_user.should == user
|
32
|
+
end
|
33
|
+
it "raises an error for an invalid scope" do
|
34
|
+
expect {
|
35
|
+
loaded_user = SwitchUser::UserLoader.prepare(nil, "1")
|
36
|
+
}.to raise_error(SwitchUser::InvalidScope)
|
37
|
+
end
|
38
|
+
end
|
39
|
+
|
40
|
+
it "returns a user" do
|
41
|
+
User.stub(:where).with(:id => 1).and_return(user_result)
|
18
42
|
|
19
43
|
loader = SwitchUser::UserLoader.new("user", 1)
|
20
44
|
|
21
|
-
loader.
|
45
|
+
loader.user.should == user
|
22
46
|
end
|
23
47
|
|
24
48
|
it "returns nil if no user is found" do
|
25
49
|
loader = SwitchUser::UserLoader.new("user", 2)
|
26
|
-
loader.
|
50
|
+
loader.user.should == nil
|
27
51
|
end
|
28
52
|
|
29
53
|
it "loads a user with an alternate identifier column" do
|
30
|
-
User.stub(:
|
54
|
+
User.stub(:where).with(:email => 2).and_return(user_result)
|
31
55
|
SwitchUser.available_users_identifiers = {:user => :email}
|
32
56
|
|
33
57
|
loader = SwitchUser::UserLoader.new("user", 2)
|
34
|
-
loader.
|
58
|
+
loader.user.should == user
|
35
59
|
end
|
36
60
|
end
|
data/spec/switch_user_spec.rb
CHANGED
@@ -2,10 +2,6 @@ require 'spec_helper'
|
|
2
2
|
require 'switch_user'
|
3
3
|
|
4
4
|
describe SwitchUser do
|
5
|
-
it "has a default provider" do
|
6
|
-
SwitchUser.provider.should == :devise
|
7
|
-
end
|
8
|
-
|
9
5
|
describe "#available_scopes" do
|
10
6
|
it "returns a list of available scopes" do
|
11
7
|
SwitchUser.available_scopes.should == [:user]
|
@@ -23,4 +19,21 @@ describe SwitchUser do
|
|
23
19
|
SwitchUser.provider_class.should == SwitchUser::Provider::Devise
|
24
20
|
end
|
25
21
|
end
|
22
|
+
|
23
|
+
describe "guards" do
|
24
|
+
it "can have a 1 argument lambda" do
|
25
|
+
a = 0
|
26
|
+
SwitchUser.controller_guard = lambda {|p1| a = p1 }
|
27
|
+
SwitchUser.controller_guard(1,2,3)
|
28
|
+
|
29
|
+
a.should == 1
|
30
|
+
end
|
31
|
+
it "can have a 3 argument lambda" do
|
32
|
+
a = 0
|
33
|
+
SwitchUser.view_guard = lambda {|p1,p2,p3| a = p3 }
|
34
|
+
SwitchUser.view_guard(1,2,3)
|
35
|
+
|
36
|
+
a.should == 3
|
37
|
+
end
|
38
|
+
end
|
26
39
|
end
|
data/switch_user.gemspec
CHANGED
@@ -14,9 +14,12 @@ Gem::Specification.new do |s|
|
|
14
14
|
s.required_rubygems_version = ">= 1.3.6"
|
15
15
|
s.rubyforge_project = "switch_user"
|
16
16
|
|
17
|
-
s.
|
17
|
+
s.add_development_dependency "activesupport"
|
18
18
|
s.add_development_dependency "bundler", ">= 1.0.0"
|
19
|
-
s.add_development_dependency "
|
19
|
+
s.add_development_dependency "actionpack"
|
20
|
+
s.add_development_dependency "railties"
|
21
|
+
s.add_development_dependency "rspec-rails", "~> 2.11.0"
|
22
|
+
s.add_development_dependency "tzinfo"
|
20
23
|
|
21
24
|
s.files = `git ls-files`.split("\n")
|
22
25
|
s.executables = `git ls-files`.split("\n").map{|f| f =~ /^bin\/(.*)/ ? $1 : nil}.compact
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: switch_user
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.9.
|
4
|
+
version: 0.9.1
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -10,7 +10,7 @@ authors:
|
|
10
10
|
autorequire:
|
11
11
|
bindir: bin
|
12
12
|
cert_chain: []
|
13
|
-
date: 2012-
|
13
|
+
date: 2012-12-21 00:00:00.000000000 Z
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|
16
16
|
name: activesupport
|
@@ -20,7 +20,7 @@ dependencies:
|
|
20
20
|
- - ! '>='
|
21
21
|
- !ruby/object:Gem::Version
|
22
22
|
version: '0'
|
23
|
-
type: :
|
23
|
+
type: :development
|
24
24
|
prerelease: false
|
25
25
|
version_requirements: !ruby/object:Gem::Requirement
|
26
26
|
none: false
|
@@ -45,7 +45,39 @@ dependencies:
|
|
45
45
|
- !ruby/object:Gem::Version
|
46
46
|
version: 1.0.0
|
47
47
|
- !ruby/object:Gem::Dependency
|
48
|
-
name:
|
48
|
+
name: actionpack
|
49
|
+
requirement: !ruby/object:Gem::Requirement
|
50
|
+
none: false
|
51
|
+
requirements:
|
52
|
+
- - ! '>='
|
53
|
+
- !ruby/object:Gem::Version
|
54
|
+
version: '0'
|
55
|
+
type: :development
|
56
|
+
prerelease: false
|
57
|
+
version_requirements: !ruby/object:Gem::Requirement
|
58
|
+
none: false
|
59
|
+
requirements:
|
60
|
+
- - ! '>='
|
61
|
+
- !ruby/object:Gem::Version
|
62
|
+
version: '0'
|
63
|
+
- !ruby/object:Gem::Dependency
|
64
|
+
name: railties
|
65
|
+
requirement: !ruby/object:Gem::Requirement
|
66
|
+
none: false
|
67
|
+
requirements:
|
68
|
+
- - ! '>='
|
69
|
+
- !ruby/object:Gem::Version
|
70
|
+
version: '0'
|
71
|
+
type: :development
|
72
|
+
prerelease: false
|
73
|
+
version_requirements: !ruby/object:Gem::Requirement
|
74
|
+
none: false
|
75
|
+
requirements:
|
76
|
+
- - ! '>='
|
77
|
+
- !ruby/object:Gem::Version
|
78
|
+
version: '0'
|
79
|
+
- !ruby/object:Gem::Dependency
|
80
|
+
name: rspec-rails
|
49
81
|
requirement: !ruby/object:Gem::Requirement
|
50
82
|
none: false
|
51
83
|
requirements:
|
@@ -60,6 +92,22 @@ dependencies:
|
|
60
92
|
- - ~>
|
61
93
|
- !ruby/object:Gem::Version
|
62
94
|
version: 2.11.0
|
95
|
+
- !ruby/object:Gem::Dependency
|
96
|
+
name: tzinfo
|
97
|
+
requirement: !ruby/object:Gem::Requirement
|
98
|
+
none: false
|
99
|
+
requirements:
|
100
|
+
- - ! '>='
|
101
|
+
- !ruby/object:Gem::Version
|
102
|
+
version: '0'
|
103
|
+
type: :development
|
104
|
+
prerelease: false
|
105
|
+
version_requirements: !ruby/object:Gem::Requirement
|
106
|
+
none: false
|
107
|
+
requirements:
|
108
|
+
- - ! '>='
|
109
|
+
- !ruby/object:Gem::Version
|
110
|
+
version: '0'
|
63
111
|
description: Easily switch current user to speed up development
|
64
112
|
email:
|
65
113
|
- flyerhzm@gmail.com
|
@@ -80,18 +128,25 @@ files:
|
|
80
128
|
- lib/switch_user/provider.rb
|
81
129
|
- lib/switch_user/provider/authlogic.rb
|
82
130
|
- lib/switch_user/provider/base.rb
|
131
|
+
- lib/switch_user/provider/clearance.rb
|
83
132
|
- lib/switch_user/provider/devise.rb
|
133
|
+
- lib/switch_user/provider/dummy.rb
|
84
134
|
- lib/switch_user/provider/restful_authentication.rb
|
135
|
+
- lib/switch_user/provider/session.rb
|
85
136
|
- lib/switch_user/provider/sorcery.rb
|
86
137
|
- lib/switch_user/rails.rb
|
87
138
|
- lib/switch_user/user_loader.rb
|
88
139
|
- lib/switch_user/version.rb
|
89
140
|
- rails/init.rb
|
141
|
+
- spec/controllers/switch_user_controller_spec.rb
|
90
142
|
- spec/provider/authlogic_spec.rb
|
143
|
+
- spec/provider/clearance_spec.rb
|
91
144
|
- spec/provider/devise_spec.rb
|
92
|
-
- spec/provider/
|
145
|
+
- spec/provider/restful_authentication_spec.rb
|
146
|
+
- spec/provider/session_spec.rb
|
93
147
|
- spec/provider/sorcery_spec.rb
|
94
148
|
- spec/spec_helper.rb
|
149
|
+
- spec/support/application.rb
|
95
150
|
- spec/support/provider.rb
|
96
151
|
- spec/switch_user/user_loader_spec.rb
|
97
152
|
- spec/switch_user_spec.rb
|