devise_ichain_authenticatable 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 +6 -14
- data/README.md +14 -5
- data/app/controllers/devise/ichain_sessions_controller.rb +2 -2
- data/app/views/devise/ichain_sessions/new.html.erb +1 -1
- data/lib/devise_ichain_authenticatable.rb +8 -2
- data/lib/devise_ichain_authenticatable/models.rb +7 -4
- data/lib/devise_ichain_authenticatable/version.rb +1 -1
- metadata +7 -8
checksums.yaml
CHANGED
@@ -1,15 +1,7 @@
|
|
1
1
|
---
|
2
|
-
|
3
|
-
metadata.gz:
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
metadata.gz: !binary |-
|
9
|
-
MzA1YTE4MDA5NTBhNDJmNmRmNGUzNzZhMTNiODJmMGI3MGIxMDIzZmZkMzVj
|
10
|
-
YTJkYTBmMTg1YjcyZGNhYjRjMWJmYWFkZmEwZjk1N2MxNWRlZjY4ZmJlM2I4
|
11
|
-
MWZlNTJlYTc1MGZjODY1YjdhYjNiOThkZjU3NzMzNDBjNTM5ODM=
|
12
|
-
data.tar.gz: !binary |-
|
13
|
-
NmIwZjg1ZTNhZjUwODlkMDgwZDNhMTM0N2M4NTRkZjA0MTU4OTEyOTA1YmYy
|
14
|
-
Mzk4YmE0NWUwZjg2ZGQwYzVjYjFlZDI3Njc1NGI4ZmRhMDc4ZjE2YjU2NjBi
|
15
|
-
NTQ2ZTM2MTdmOGM0NzQzMmNjZTc1OTMwM2VmMjVmYzYzZThjM2U=
|
2
|
+
SHA1:
|
3
|
+
metadata.gz: 5c464140caabf7bc6a25efdc813300f15633122e
|
4
|
+
data.tar.gz: ba7d54cf541b68092ed802e76a639a740c0c2f8e
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: 81b07af69ed0fd985790d1210c2002d0d639c6815f4665efdc6b062337fb3a068145c4b715d141b5e96d33d7d215604baabed1a399b7d49e64c3209ff8252b32
|
7
|
+
data.tar.gz: 56759efd6146ded0216362b3ccaca0d1a047b2d8208db839c5b6375572c96c10865ef085fa65026e80b09dda0f81ba55fe06cadcd204c94bfabc308f65850878
|
data/README.md
CHANGED
@@ -11,12 +11,12 @@ desired.
|
|
11
11
|
Requirements
|
12
12
|
------------
|
13
13
|
|
14
|
-
The plugin should be compatible with Ruby 1.8.7, 1.9
|
15
|
-
|
14
|
+
The plugin should be compatible with Ruby 1.8.7, 1.9 and 2.0 (tested with
|
15
|
+
1.9.3 and 2.0.0).
|
16
16
|
|
17
17
|
In the same way, it should work with any version of Devise equal or greater than 2.2
|
18
|
-
and with any version of Rails equal or greater than 3.2
|
19
|
-
|
18
|
+
and with any version of Rails equal or greater than 3.2 (tested with Devise 2.2
|
19
|
+
on Rails 3.2 and with Devise 3.1 on Rails 4).
|
20
20
|
|
21
21
|
Reporting of success stories with other setups would be highly appreciated.
|
22
22
|
|
@@ -39,7 +39,11 @@ class User < ActiveRecord::Base
|
|
39
39
|
devise :ichain_authenticatable, :ichain_registerable
|
40
40
|
|
41
41
|
def self.for_ichain_username(username, attributes)
|
42
|
-
|
42
|
+
if user = find_by(login: username)
|
43
|
+
user.update_column(email: attributes[:email]) if user.email != attributes[:email]
|
44
|
+
else
|
45
|
+
user = create(login: username, email: attributes[:email])
|
46
|
+
end
|
43
47
|
end
|
44
48
|
end
|
45
49
|
```
|
@@ -66,6 +70,11 @@ Devise.setup do |config|
|
|
66
70
|
# You will always need to set this parameter.
|
67
71
|
config.ichain_base_url = "https://my.application.org"
|
68
72
|
|
73
|
+
# Paths (relative to ichain_base_url) used by your proxy
|
74
|
+
# config.ichain_login_path = "ICSLogin/"
|
75
|
+
# config.ichain_registration_path = "ICSLogin/auth-up/"
|
76
|
+
# config.ichain_logout_path = "cmd/ICSLogout/"
|
77
|
+
|
69
78
|
# The header used by your iChain proxy to pass the username.
|
70
79
|
# config.ichain_username_header = "HTTP_X_USERNAME"
|
71
80
|
|
@@ -4,7 +4,7 @@ class Devise::IchainSessionsController < DeviseController
|
|
4
4
|
# GET /resource/sign_in
|
5
5
|
def new
|
6
6
|
return new_test if ::Devise.ichain_test_mode
|
7
|
-
self.resource =
|
7
|
+
self.resource = resource_class.new
|
8
8
|
@back_url = base_url + after_sign_in_path_for(resource_name)
|
9
9
|
# The slash at the end is very important
|
10
10
|
@login_url = resource_class.ichain_login_url
|
@@ -40,7 +40,7 @@ class Devise::IchainSessionsController < DeviseController
|
|
40
40
|
protected
|
41
41
|
|
42
42
|
def new_test
|
43
|
-
self.resource =
|
43
|
+
self.resource = resource_class.new
|
44
44
|
@fields = (::Devise.ichain_attribute_headers.keys rescue [])
|
45
45
|
@login_url = test_ichain_session_path(resource_name)
|
46
46
|
render :new_test
|
@@ -9,7 +9,7 @@
|
|
9
9
|
<%= text_field_tag :username, "", :autofocus => true %></div>
|
10
10
|
|
11
11
|
<div><%= label_tag :Password, "Password" %><br />
|
12
|
-
<%=
|
12
|
+
<%= password_field_tag :password, "" %></div>
|
13
13
|
|
14
14
|
<div><%= submit_tag "Sign in" %></div>
|
15
15
|
<% end %>
|
@@ -15,9 +15,15 @@ module Devise
|
|
15
15
|
@@ichain_proxypath = "reverse"
|
16
16
|
@@ichain_username_header = "HTTP_X_USERNAME"
|
17
17
|
@@ichain_attribute_headers = {:email => "HTTP_X_EMAIL"}
|
18
|
+
# The slashes at the end of the urls looks to be relevant
|
19
|
+
@@ichain_login_path = "ICSLogin/"
|
20
|
+
@@ichain_registration_path = "ICSLogin/auth-up/"
|
21
|
+
@@ichain_logout_path = "cmd/ICSLogout/"
|
18
22
|
|
19
|
-
mattr_accessor :ichain_test_mode, :ichain_base_url,
|
20
|
-
:
|
23
|
+
mattr_accessor :ichain_test_mode, :ichain_base_url,
|
24
|
+
:ichain_login_path, :ichain_registration_path, :ichain_logout_path,
|
25
|
+
:ichain_context, :ichain_proxypath,
|
26
|
+
:ichain_username_header, :ichain_attribute_headers
|
21
27
|
end
|
22
28
|
|
23
29
|
Devise.add_module :ichain_authenticatable,
|
@@ -6,18 +6,21 @@ module Devise
|
|
6
6
|
end
|
7
7
|
|
8
8
|
module ClassMethods
|
9
|
-
|
9
|
+
def ichain_url_for(action)
|
10
|
+
URI::join(::Devise.ichain_base_url || "",
|
11
|
+
::Devise.send(:"ichain_#{action}_path")).to_s
|
12
|
+
end
|
10
13
|
|
11
14
|
def ichain_registration_url
|
12
|
-
(
|
15
|
+
ichain_url_for(:registration)
|
13
16
|
end
|
14
17
|
|
15
18
|
def ichain_login_url
|
16
|
-
(
|
19
|
+
ichain_url_for(:login)
|
17
20
|
end
|
18
21
|
|
19
22
|
def ichain_logout_url
|
20
|
-
(
|
23
|
+
ichain_url_for(:logout)
|
21
24
|
end
|
22
25
|
end
|
23
26
|
|
metadata
CHANGED
@@ -1,27 +1,27 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: devise_ichain_authenticatable
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.3.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Ancor González Sosa
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2013-09-
|
11
|
+
date: 2013-09-17 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: devise
|
15
15
|
requirement: !ruby/object:Gem::Requirement
|
16
16
|
requirements:
|
17
|
-
- -
|
17
|
+
- - '>='
|
18
18
|
- !ruby/object:Gem::Version
|
19
19
|
version: '2.2'
|
20
20
|
type: :runtime
|
21
21
|
prerelease: false
|
22
22
|
version_requirements: !ruby/object:Gem::Requirement
|
23
23
|
requirements:
|
24
|
-
- -
|
24
|
+
- - '>='
|
25
25
|
- !ruby/object:Gem::Version
|
26
26
|
version: '2.2'
|
27
27
|
description: Devise extension to allow authentication via iChain
|
@@ -58,19 +58,18 @@ require_paths:
|
|
58
58
|
- lib
|
59
59
|
required_ruby_version: !ruby/object:Gem::Requirement
|
60
60
|
requirements:
|
61
|
-
- -
|
61
|
+
- - '>='
|
62
62
|
- !ruby/object:Gem::Version
|
63
63
|
version: '0'
|
64
64
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
65
65
|
requirements:
|
66
|
-
- -
|
66
|
+
- - '>='
|
67
67
|
- !ruby/object:Gem::Version
|
68
68
|
version: '0'
|
69
69
|
requirements: []
|
70
70
|
rubyforge_project:
|
71
|
-
rubygems_version: 2.0.
|
71
|
+
rubygems_version: 2.0.2
|
72
72
|
signing_key:
|
73
73
|
specification_version: 4
|
74
74
|
summary: Devise extension to allow authentication via iChain
|
75
75
|
test_files: []
|
76
|
-
has_rdoc:
|