dc_tunnel 0.0.3 → 0.0.6

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