devise_cas_authenticatable 1.4.1 → 1.5.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 +4 -4
- data/CHANGELOG.md +4 -0
- data/README.md +3 -10
- data/devise_cas_authenticatable.gemspec +1 -1
- data/lib/devise_cas_authenticatable.rb +7 -18
- data/lib/devise_cas_authenticatable/cas_action_url_factory_base.rb +65 -0
- metadata +3 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: afd477a0c8c3fbfdc6c1b7d93d716653511a2c0b
|
4
|
+
data.tar.gz: ab099c67e758e660a4ddf79237ccf7c172a18b00
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: ded65e626018cddabb73244ef1c40c81534a5c5b564bc13d929e9041a0c186b061f9c4d89293da5c95d50e41a91c1de5be10c9dbebdd5694cf7dc3255a53e194
|
7
|
+
data.tar.gz: fcd19457ddfaa198c4832df3f6d85d75303835973e4fd1bbec899bf6af28e93160611d02390ce82a3302eb5ef50e9c80fbfe1923669f0c5289989bcf05402431
|
data/CHANGELOG.md
CHANGED
@@ -1,5 +1,9 @@
|
|
1
1
|
# Changelog for devise\_cas\_authenticatable
|
2
2
|
|
3
|
+
## Version 1.5.0 - July 27, 2015
|
4
|
+
|
5
|
+
* Generation of cas_action_url is now done by a customizable class, so you can use Rails routes to provide this (thanks to @eturino again!)
|
6
|
+
|
3
7
|
## Version 1.4.1 - July 23, 2015
|
4
8
|
|
5
9
|
* Internal refactor to avoid conflicting with common route names, specifically logout_url (thanks to @eturino!)
|
data/README.md
CHANGED
@@ -13,21 +13,14 @@ using [rubycas-server](http://github.com/gunark/rubycas-server)).
|
|
13
13
|
Requirements
|
14
14
|
------------
|
15
15
|
|
16
|
-
- Rails
|
17
|
-
- Devise 1.
|
16
|
+
- Rails 3.0 or greater (works with 4.x versions as well)
|
17
|
+
- Devise 1.2 or greater
|
18
18
|
- rubycas-client
|
19
19
|
|
20
20
|
Installation
|
21
21
|
------------
|
22
22
|
|
23
|
-
|
24
|
-
|
25
|
-
and in your config/environment.rb (on Rails 2.3):
|
26
|
-
|
27
|
-
config.gem 'devise', :version => '~> 1.0.6'
|
28
|
-
config.gem 'devise_cas_authenticatable'
|
29
|
-
|
30
|
-
or Gemfile (Rails 3.x):
|
23
|
+
Add to your Gemfile:
|
31
24
|
|
32
25
|
gem 'devise'
|
33
26
|
gem 'devise_cas_authenticatable'
|
@@ -2,7 +2,7 @@
|
|
2
2
|
|
3
3
|
Gem::Specification.new do |s|
|
4
4
|
s.name = %q{devise_cas_authenticatable}
|
5
|
-
s.version = "1.
|
5
|
+
s.version = "1.5.0"
|
6
6
|
|
7
7
|
s.required_rubygems_version = Gem::Requirement.new("> 1.3.1") if s.respond_to? :required_rubygems_version=
|
8
8
|
s.authors = ["Nat Budin", "Jeremy Haile"]
|
@@ -7,6 +7,8 @@ require 'devise_cas_authenticatable/exceptions'
|
|
7
7
|
|
8
8
|
require 'devise_cas_authenticatable/single_sign_out'
|
9
9
|
|
10
|
+
require 'devise_cas_authenticatable/cas_action_url_factory_base'
|
11
|
+
|
10
12
|
require 'rubycas-client'
|
11
13
|
|
12
14
|
require 'devise_cas_authenticatable/railtie' if defined?(Rails::Railtie)
|
@@ -111,24 +113,11 @@ module Devise
|
|
111
113
|
|
112
114
|
private
|
113
115
|
def self.cas_action_url(base_url, mapping, action)
|
114
|
-
|
115
|
-
|
116
|
-
|
117
|
-
|
118
|
-
|
119
|
-
else
|
120
|
-
mapping.fullpath
|
121
|
-
end
|
122
|
-
else
|
123
|
-
if ENV['RAILS_RELATIVE_URL_ROOT']
|
124
|
-
ENV['RAILS_RELATIVE_URL_ROOT'] + mapping.raw_path
|
125
|
-
else
|
126
|
-
mapping.raw_path
|
127
|
-
end
|
128
|
-
end
|
129
|
-
u.path << "/" unless u.path =~ /\/$/
|
130
|
-
u.path << action
|
131
|
-
u.to_s
|
116
|
+
cas_action_url_factory_class.new(base_url, mapping, action).call
|
117
|
+
end
|
118
|
+
|
119
|
+
def self.cas_action_url_factory_class
|
120
|
+
@cas_action_url_factory_class ||= CasActionUrlFactoryBase.prepare_class
|
132
121
|
end
|
133
122
|
end
|
134
123
|
|
@@ -0,0 +1,65 @@
|
|
1
|
+
module Devise
|
2
|
+
class CasActionUrlFactoryBase
|
3
|
+
attr_reader :base_url, :mapping, :action
|
4
|
+
|
5
|
+
def self.prepare_class
|
6
|
+
Class.new(self) do
|
7
|
+
include Rails.application.routes.url_helpers
|
8
|
+
include Rails.application.routes.mounted_helpers if Rails.application.routes.try(:mounted_helpers)
|
9
|
+
end
|
10
|
+
end
|
11
|
+
|
12
|
+
def initialize(base_url, mapping, action)
|
13
|
+
@base_url = base_url
|
14
|
+
@mapping = mapping
|
15
|
+
@action = action
|
16
|
+
end
|
17
|
+
|
18
|
+
def call
|
19
|
+
uri = URI.parse(base_url).tap { |uri| uri.query = nil }
|
20
|
+
uri.path = load_base_path
|
21
|
+
uri.to_s
|
22
|
+
end
|
23
|
+
|
24
|
+
alias_method :build, :call
|
25
|
+
|
26
|
+
private
|
27
|
+
def load_base_path
|
28
|
+
load_routes_path || load_mapping_path
|
29
|
+
end
|
30
|
+
|
31
|
+
def load_routes_path
|
32
|
+
router_name = mapping.router_name || Devise.available_router_name
|
33
|
+
context = send(router_name)
|
34
|
+
|
35
|
+
route = "#{mapping.singular}_#{action}_path"
|
36
|
+
if context.respond_to? route
|
37
|
+
context.send route
|
38
|
+
else
|
39
|
+
nil
|
40
|
+
end
|
41
|
+
rescue NameError, NoMethodError
|
42
|
+
nil
|
43
|
+
end
|
44
|
+
|
45
|
+
def load_mapping_path
|
46
|
+
path = mapping_fullpath || mapping_raw_path
|
47
|
+
path << "/" unless path =~ /\/$/
|
48
|
+
path << action
|
49
|
+
path
|
50
|
+
end
|
51
|
+
|
52
|
+
def mapping_fullpath
|
53
|
+
return nil unless mapping.respond_to?(:fullpath)
|
54
|
+
"#{rails_relative_url_root}#{mapping.fullpath}"
|
55
|
+
end
|
56
|
+
|
57
|
+
def mapping_raw_path
|
58
|
+
"#{rails_relative_url_root}#{mapping.raw_path}"
|
59
|
+
end
|
60
|
+
|
61
|
+
def rails_relative_url_root
|
62
|
+
ENV['RAILS_RELATIVE_URL_ROOT']
|
63
|
+
end
|
64
|
+
end
|
65
|
+
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: devise_cas_authenticatable
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.
|
4
|
+
version: 1.5.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Nat Budin
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2015-07-
|
12
|
+
date: 2015-07-27 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: devise
|
@@ -220,6 +220,7 @@ files:
|
|
220
220
|
- app/views/devise/cas_sessions/unregistered.html.erb
|
221
221
|
- devise_cas_authenticatable.gemspec
|
222
222
|
- lib/devise_cas_authenticatable.rb
|
223
|
+
- lib/devise_cas_authenticatable/cas_action_url_factory_base.rb
|
223
224
|
- lib/devise_cas_authenticatable/exceptions.rb
|
224
225
|
- lib/devise_cas_authenticatable/model.rb
|
225
226
|
- lib/devise_cas_authenticatable/railtie.rb
|