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.
Files changed (3) hide show
  1. checksums.yaml +4 -4
  2. data/lib/dc_tunnel.rb +24 -12
  3. metadata +16 -2
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 73c6efee8fa1e3825471d39b0a0f24c29055ae7f2605a98e6eb63921e94ca8bd
4
- data.tar.gz: 27b329ac15d2f7f1b2800f67e699e6a8b99774d0a591e528751c4da0575fb739
3
+ metadata.gz: befe1055816644ed0dafc39a71fafc444e4bd1bc364f131cd3931e26ec111060
4
+ data.tar.gz: 3e205a66126584c486e7fe84b968178e0725394768a46452c2d3617187b8e177
5
5
  SHA512:
6
- metadata.gz: 42fa2f5c3197c38800aa1b97e3d17e0eade4ba3cbd104dd0a78a61f3f32be23136586190fd7c6e4f831ce7585b2e0c7c364866142a3916cc35c6b4d8900bb70f
7
- data.tar.gz: 089aa1c928184eca34759faf1512130fc92dc6bdf2cdc6d6003d62ec5ce93323e8dda901f3f1f6569c1cf857c5be33540404fcfabc2b0bb9ed5ee63b19bfe7ce
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 "Tunnel : start get #{url} "
14
+ puts '0.6'
15
+ puts "--- Tunnel : start get #{url} "
14
16
  res = Net::HTTP.get(URI(url))
15
- puts "Tunnel : got response #{res} "
16
- res = JSON.parse(res).symbolize_keys!
17
- puts "Tunnel : got symbolize_keys! response #{res} "
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 synchronize
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.3
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: []