dc_tunnel 0.0.3 → 0.0.6
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/lib/dc_tunnel.rb +24 -12
- metadata +16 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: befe1055816644ed0dafc39a71fafc444e4bd1bc364f131cd3931e26ec111060
|
4
|
+
data.tar.gz: 3e205a66126584c486e7fe84b968178e0725394768a46452c2d3617187b8e177
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: f2c2953eb4da4e04bba6bc298e1cfcce34586cf73fe37f69ba39048652cff1a007dfb92582345fd5da9fbb11d3911a706d1e24009e9a99f33b9115e9ed29dfc4
|
7
|
+
data.tar.gz: d248e54c3fe8eeedf2fc224cdda17336cdc028f6e9d2ac2c1384c56935e708b9b5ab7d0684d2d6e9c464f93cb564a464ee2255f5322237d810d7e2098b4b3293
|
data/lib/dc_tunnel.rb
CHANGED
@@ -1,5 +1,6 @@
|
|
1
1
|
class DcTunnel
|
2
2
|
require 'net/http'
|
3
|
+
require 'advanced_hash_keys'
|
3
4
|
|
4
5
|
def initialize(settings)
|
5
6
|
@settings = settings
|
@@ -10,30 +11,32 @@ class DcTunnel
|
|
10
11
|
end
|
11
12
|
|
12
13
|
def http_get(url)
|
13
|
-
puts
|
14
|
+
puts '0.6'
|
15
|
+
puts "--- Tunnel : start get #{url} "
|
14
16
|
res = Net::HTTP.get(URI(url))
|
15
|
-
|
16
|
-
|
17
|
-
|
17
|
+
res = JSON.parse(res)
|
18
|
+
puts "--- Tunnel : got parsed response #{res} "
|
19
|
+
res = res.symbolize_keys(true)
|
20
|
+
puts "--- Tunnel : got symbolize_keys! response #{res} "
|
18
21
|
res
|
19
22
|
end
|
20
23
|
|
21
24
|
def http_post(url, postdata)
|
22
|
-
puts "Tunnel : start get #{url} "
|
25
|
+
puts "--- Tunnel : start get #{url} "
|
23
26
|
res = Net::HTTP.post_form(URI(url), postdata).body
|
24
|
-
res = JSON.parse(res).symbolize_keys
|
25
|
-
puts "Tunnel : got response #{res} "
|
27
|
+
res = JSON.parse(res).symbolize_keys(true)
|
28
|
+
puts "--- Tunnel : got response #{res} "
|
26
29
|
res
|
27
30
|
end
|
28
31
|
|
29
32
|
def sso_path(path, params = {})
|
30
33
|
settings = self.get_settings
|
31
|
-
puts "Tunnel : sso_path set to #{settings[:sso_host]} "
|
34
|
+
puts "--- Tunnel : sso_path set to #{settings[:sso_host]} "
|
32
35
|
auth = {
|
33
36
|
system_id: settings[:system_id],
|
34
37
|
system_token: settings[:system_token]
|
35
38
|
}
|
36
|
-
puts "Auth : #{auth}"
|
39
|
+
puts "--- Auth : #{auth}"
|
37
40
|
"#{settings[:sso_host]}#{path}.json?#{params.to_param}&#{auth.to_param}"
|
38
41
|
end
|
39
42
|
|
@@ -55,15 +58,19 @@ class DcTunnel
|
|
55
58
|
self.http_get self.sso_path("/users", params)
|
56
59
|
end
|
57
60
|
|
58
|
-
def
|
61
|
+
def synchronize_users
|
59
62
|
res = self.http_get self.sso_path('/users', {:system_ids => [self.get_settings[:system_id]]})
|
63
|
+
allowed_ids = []
|
60
64
|
res[:users].each do |sso_user|
|
61
65
|
puts "sso_user is #{sso_user}"
|
62
66
|
puts "sso_user_id is #{sso_user[:id]}"
|
63
67
|
user = User.find_by_sso_id sso_user[:id]
|
64
68
|
puts "user is #{user}"
|
69
|
+
allowed_ids.push sso_user[:id]
|
65
70
|
if user.nil?
|
66
|
-
create_attributes = {
|
71
|
+
create_attributes = {
|
72
|
+
sso_id: sso_user[:id]
|
73
|
+
}
|
67
74
|
get_settings[:default_user_props].each do |item|
|
68
75
|
name = item[0]
|
69
76
|
value = item[1]
|
@@ -74,11 +81,16 @@ class DcTunnel
|
|
74
81
|
else
|
75
82
|
update_attributes = {
|
76
83
|
name: sso_user[:name],
|
77
|
-
phone: sso_user[:phone]
|
84
|
+
phone: sso_user[:phone],
|
85
|
+
sso_id: sso_user[:id]
|
78
86
|
}
|
79
87
|
puts "update_attributes is #{update_attributes}"
|
80
88
|
user.update(update_attributes)
|
81
89
|
end
|
82
90
|
end
|
91
|
+
# 子系统内同步删除
|
92
|
+
puts "allowed sso ids is #{allowed_ids}"
|
93
|
+
User.where.not(:sso_id => allowed_ids).destroy_all
|
94
|
+
User.where(:sso_id => nil).destroy_all
|
83
95
|
end
|
84
96
|
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: dc_tunnel
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.6
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Qxchen
|
@@ -9,7 +9,21 @@ autorequire:
|
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
11
|
date: 2019-07-07 00:00:00.000000000 Z
|
12
|
-
dependencies:
|
12
|
+
dependencies:
|
13
|
+
- !ruby/object:Gem::Dependency
|
14
|
+
name: advanced_hash_keys
|
15
|
+
requirement: !ruby/object:Gem::Requirement
|
16
|
+
requirements:
|
17
|
+
- - ">="
|
18
|
+
- !ruby/object:Gem::Version
|
19
|
+
version: '0'
|
20
|
+
type: :runtime
|
21
|
+
prerelease: false
|
22
|
+
version_requirements: !ruby/object:Gem::Requirement
|
23
|
+
requirements:
|
24
|
+
- - ">="
|
25
|
+
- !ruby/object:Gem::Version
|
26
|
+
version: '0'
|
13
27
|
description: 信诺系统通信工具
|
14
28
|
email: 370306609@qq.com
|
15
29
|
executables: []
|