devise_ichain_authenticatable 0.2.1 → 0.3.0
Sign up to get free protection for your applications and to get access to all the features.
- 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:
|