sq_auth 0.0.24 → 0.0.25
Sign up to get free protection for your applications and to get access to all the features.
- data/examples/client.rb +2 -3
- data/lib/sq_auth/sq_auth_access.rb +6 -4
- data/lib/sq_auth/sq_auth_client.rb +12 -0
- data/lib/sq_auth/sq_auth_utils.rb +2 -2
- data/lib/sq_auth/version.rb +1 -1
- metadata +2 -2
data/examples/client.rb
CHANGED
@@ -1,13 +1,12 @@
|
|
1
1
|
require 'sinatra'
|
2
2
|
require 'sq_auth'
|
3
|
-
|
4
3
|
enable :sessions
|
5
4
|
set :port, 7842
|
6
5
|
|
7
|
-
SqAuth.connect(host: "localhost", port: 3000) do |d|
|
6
|
+
SqAuth.connect(host: "localhost", port: 3000, https: false) do |d|
|
8
7
|
d.project_name = "Project"
|
8
|
+
# d.gateway_ip = "192.168.0.1"
|
9
9
|
end
|
10
|
-
|
11
10
|
get ["admin"], "/something" do
|
12
11
|
<<-EOF
|
13
12
|
Logined to something with params #{params}
|
@@ -1,7 +1,7 @@
|
|
1
1
|
module SqAuth
|
2
2
|
class SqAuthAccess
|
3
3
|
DEFAULT_ACCESS_PATH = "/access_partial"
|
4
|
-
DEFAULT_DRAW_PROC = Proc.new {|uri,
|
4
|
+
DEFAULT_DRAW_PROC = Proc.new {|uri, project_params, user_params| SqAuthUtils::default_draw_template(uri, project_params, user_params)}
|
5
5
|
DEFAULT_DATA_PROC = Proc.new { "Forbidden" }
|
6
6
|
DEFAULT_OPTIONS = {project: "Project", https: true}
|
7
7
|
attr_accessor :login_path, :callback, :project_name, :gateway_ip, :forced_host, :forced_port
|
@@ -53,7 +53,7 @@ module SqAuth
|
|
53
53
|
if sq_auth_filter(roles, project, options)
|
54
54
|
when_ok.call
|
55
55
|
else
|
56
|
-
when_no_role.(not_logged_in_proc.(login_to, callback, roles, project, @session_provider.
|
56
|
+
when_no_role.(not_logged_in_proc.(login_to, form_project_params(callback, roles, project), @session_provider.current_user_params))
|
57
57
|
end
|
58
58
|
end
|
59
59
|
|
@@ -61,10 +61,13 @@ module SqAuth
|
|
61
61
|
@session_provider.session_for_current_user && @session_provider.role_exist_for_current_user?(roles, project)
|
62
62
|
end
|
63
63
|
|
64
|
+
def form_project_params callback, roles, project
|
65
|
+
{callback: callback, roles: [*roles], auth_name: project}
|
66
|
+
end
|
64
67
|
|
65
68
|
def when_not_authenticated(roles, project, options = {})
|
66
69
|
not_logged_in_proc = get_not_logged_in_proc(options[:draw])
|
67
|
-
not_logged_in_proc.call(login_to, callback, roles, project, @session_provider.
|
70
|
+
not_logged_in_proc.call(login_to, form_project_params(callback, roles, project), @session_provider.current_user_params)
|
68
71
|
end
|
69
72
|
|
70
73
|
def draw_when_not_authenticated(roles, project = @project_name)
|
@@ -95,7 +98,6 @@ module SqAuth
|
|
95
98
|
else
|
96
99
|
@session_provider.user.user_ip = ip
|
97
100
|
end
|
98
|
-
p @session_provider.user.user_ip
|
99
101
|
end
|
100
102
|
|
101
103
|
def login_to
|
@@ -20,6 +20,10 @@ module SqAuth
|
|
20
20
|
session_for current_user
|
21
21
|
end
|
22
22
|
|
23
|
+
def ip_for_current_user
|
24
|
+
ip_for current_user
|
25
|
+
end
|
26
|
+
|
23
27
|
def check_connection
|
24
28
|
send_request :check_connection
|
25
29
|
end
|
@@ -50,6 +54,10 @@ module SqAuth
|
|
50
54
|
@sessions[user]
|
51
55
|
end
|
52
56
|
|
57
|
+
def ip_for user
|
58
|
+
user[:ip]
|
59
|
+
end
|
60
|
+
|
53
61
|
def role_exist? user, roles, project
|
54
62
|
request_hash = {sqauthsession: session_for(user), roles: [*roles], auth_name: project, ip: user[:ip]}
|
55
63
|
response = send_request :check_role, request_hash
|
@@ -68,5 +76,9 @@ module SqAuth
|
|
68
76
|
uri_builder = (@https ? URI::HTTPS : URI::HTTP)
|
69
77
|
uri_builder.build(host: @host, port: @port)
|
70
78
|
end
|
79
|
+
|
80
|
+
def current_user_params
|
81
|
+
{session: session_for_current_user, ip: ip_for_current_user}
|
82
|
+
end
|
71
83
|
end
|
72
84
|
end
|
@@ -1,9 +1,9 @@
|
|
1
1
|
module SqAuth
|
2
2
|
module SqAuthUtils
|
3
|
-
def self.default_draw_template uri, callback, role, project, session
|
3
|
+
def self.default_draw_template uri, project_params, user_params #callback, role, project, session, ip
|
4
4
|
<<-EOF
|
5
5
|
<div class="sq_auth_not_logged_in">
|
6
|
-
<iframe src='#{uri}?#{SqAuth::SqAuthRequest.hash_to_query(
|
6
|
+
<iframe src='#{uri}?#{SqAuth::SqAuthRequest.hash_to_query(project_params.merge(user_params))}'>
|
7
7
|
</iframe>
|
8
8
|
</div>
|
9
9
|
EOF
|
data/lib/sq_auth/version.rb
CHANGED
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: sq_auth
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.25
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2012-05-
|
12
|
+
date: 2012-05-28 00:00:00.000000000Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: rake
|