avmtrf1-tools 0.3.0 → 0.4.0

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 23b69be00c89091457f4244306d815817987b87caa3690b02d18f6c9fe45077e
4
- data.tar.gz: 000f384ddec2ba3b349bb3fab9fb2900c547c99ac6536ed7b1fb5c69fdab8492
3
+ metadata.gz: a1a4ef4f8d57d9aa000216c4f531d4c531a220632b8c09e43f90cf9465c1b5a8
4
+ data.tar.gz: 6276b7f1bb63b64447f19f8c25c0de1cdea1880a8020b3a9f62c224fdb873b1a
5
5
  SHA512:
6
- metadata.gz: 82236d3324c6971ef223ce2c05052ca2ed1d8b165e530834d26f2fbbf5a469b7ff8c515e49ac02fe07742bd3351eb5599290ef2a9fad88478fe2341213a793a0
7
- data.tar.gz: 8ffa24e233fddef75c55692181d604a4ae6dce639730306ae8b592ab411e24c25cff765913f6eebc322f5fce53023078871c18464629ab541c5725af08c94da2
6
+ metadata.gz: 62fb2aaf5b5b3131e05e1e574c556f43a3e61913fa7b6eee4fcd55ec2834f4a40ab43de43ef921674f22eb9f9fa21caf1b5da8a3234716aed47f9799012c6e7c
7
+ data.tar.gz: 41238e7ba019f46891bfe962b8df8d260e947e3dfc838e374def7922da42c63a8ac6dee9ff829ec77adf99d6432510f7ea3ee6fc49f6fc5d71b4a18c4b32c694
data/lib/avmtrf1.rb CHANGED
@@ -1,7 +1,12 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Avmtrf1
4
+ require 'avmtrf1/active_directory'
5
+ require 'avmtrf1/ad_user'
6
+ require 'avmtrf1/configs'
7
+ require 'avmtrf1/ini'
4
8
  require 'avmtrf1/oracle'
5
9
  require 'avmtrf1/patches'
10
+ require 'avmtrf1/red'
6
11
  require 'avmtrf1/tools'
7
12
  end
@@ -0,0 +1,8 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'avmtrf1/active_directory/user'
4
+
5
+ module Avmtrf1
6
+ module ActiveDirectory
7
+ end
8
+ end
@@ -0,0 +1,28 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Avmtrf1
4
+ module ActiveDirectory
5
+ class User
6
+ class << self
7
+ def by_configs(path_prefix)
8
+ new(
9
+ ::Avmtrf1.configs.read_entry("#{path_prefix}.domain"),
10
+ ::Avmtrf1.configs.read_entry("#{path_prefix}.username"),
11
+ ::Avmtrf1.configs.read_password("#{path_prefix}.password")
12
+ )
13
+ end
14
+ end
15
+ attr_reader :domain, :username, :password
16
+
17
+ def initialize(domain, username, password)
18
+ @domain = domain
19
+ @username = username
20
+ @password = password
21
+ end
22
+
23
+ def username_with_domain
24
+ "#{domain}\\#{username}"
25
+ end
26
+ end
27
+ end
28
+ end
@@ -0,0 +1,11 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'avmtrf1/active_directory/user'
4
+
5
+ module Avmtrf1
6
+ class << self
7
+ def ad_user
8
+ @ad_user ||= ::Avmtrf1::ActiveDirectory::User.by_configs('ad_user')
9
+ end
10
+ end
11
+ end
@@ -0,0 +1,3 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'avmtrf1/check_point/session'
@@ -0,0 +1,59 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'avmtrf1/ad_user'
4
+ require 'avmtrf1/check_point/session/login'
5
+
6
+ module Avmtrf1
7
+ module CheckPoint
8
+ class Session
9
+ ROOT_URL = 'https://cp.trf1.jus.br'
10
+ LOGIN_URL = "#{ROOT_URL}/connect/PortalMain"
11
+ LOGGED_TITLE_TEXT = 'Network Access Granted'
12
+
13
+ class << self
14
+ def by_ad_user(ad_user, driver_options = {})
15
+ new(
16
+ ad_user.username_with_domain,
17
+ ad_user.password,
18
+ driver_options
19
+ )
20
+ end
21
+
22
+ def by_default_ad_user(driver_options = {})
23
+ by_ad_user(::Avmtrf1.ad_user, driver_options)
24
+ end
25
+ end
26
+
27
+ attr_reader :username, :password, :session
28
+
29
+ def initialize(username, password, driver_options = {})
30
+ @username = username
31
+ @password = password
32
+ @session = ::Aranha::Selenium::Session.new(
33
+ driver_options.merge(accept_insecure_certs: true)
34
+ )
35
+ end
36
+
37
+ def logged?
38
+ session.navigate.to LOGIN_URL
39
+ title_text == LOGGED_TITLE_TEXT
40
+ end
41
+
42
+ def login
43
+ ::Avmtrf1::CheckPoint::Session::Login.new(self)
44
+ end
45
+
46
+ def title_text
47
+ result_text = nil
48
+ session.wait.until do
49
+ element = session.find_element(id: 'usercheck_title_div')
50
+ return false unless element
51
+
52
+ result_text = element.text.strip
53
+ result_text.present?
54
+ end
55
+ result_text
56
+ end
57
+ end
58
+ end
59
+ end
@@ -0,0 +1,53 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Avmtrf1
4
+ module CheckPoint
5
+ class Session
6
+ class Login
7
+ def initialize(parent)
8
+ @parent = parent
9
+ run
10
+ end
11
+
12
+ private
13
+
14
+ attr_reader :parent
15
+
16
+ def session
17
+ parent.session
18
+ end
19
+
20
+ def run
21
+ go_to_login_form
22
+ fill_username
23
+ fill_password
24
+ click_login_button
25
+ wait_for_result_page
26
+ end
27
+
28
+ def go_to_login_form
29
+ session.navigate.to ::Avmtrf1::CheckPoint::Session::LOGIN_URL
30
+ end
31
+
32
+ def fill_username
33
+ session.wait_for_element(id: 'LoginUserPassword_auth_username').send_keys(parent.username)
34
+ end
35
+
36
+ def fill_password
37
+ session.wait_for_element(id: 'LoginUserPassword_auth_password').send_keys(parent.password)
38
+ end
39
+
40
+ def click_login_button
41
+ session.wait_for_element(id: 'UserCheck_Login_Button_span').click
42
+ end
43
+
44
+ def wait_for_result_page
45
+ session.wait.until do
46
+ element = session.find_element(id: 'usercheck_title_div')
47
+ element && element.text == 'Network Access Granted'
48
+ end
49
+ end
50
+ end
51
+ end
52
+ end
53
+ end
@@ -0,0 +1,13 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'eac_ruby_utils/console/configs'
4
+
5
+ module Avmtrf1
6
+ CONFIGS_KEY = 'avm-trf1-tools'
7
+
8
+ class << self
9
+ def configs
10
+ @configs ||= ::EacRubyUtils::Console::Configs.new(CONFIGS_KEY)
11
+ end
12
+ end
13
+ end
@@ -1,6 +1,7 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  require 'eac_ruby_utils/console/docopt_runner'
4
+ require 'avmtrf1/tools/runner/check_point'
4
5
  require 'avmtrf1/tools/runner/esosti'
5
6
  require 'avmtrf1/tools/runner/oracle'
6
7
  require 'avmtrf1/tools/runner/red'
@@ -0,0 +1,23 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'eac_ruby_utils/console/docopt_runner'
4
+ require 'avmtrf1/tools/runner/check_point/login'
5
+
6
+ module Avmtrf1
7
+ module Tools
8
+ class Runner < ::EacRubyUtils::Console::DocoptRunner
9
+ class CheckPoint < ::EacRubyUtils::Console::DocoptRunner
10
+ DOC = <<~DOCOPT
11
+ Utilidades para Check Point (https://cp.trf1.jus.br).
12
+
13
+ Usage:
14
+ __PROGRAM__ __SUBCOMMANDS__
15
+ __PROGRAM__ -h | --help
16
+
17
+ Options:
18
+ -h --help Mostra esta ajuda.
19
+ DOCOPT
20
+ end
21
+ end
22
+ end
23
+ end
@@ -0,0 +1,47 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'eac_ruby_utils/console/docopt_runner'
4
+ require 'eac_ruby_utils/console/speaker'
5
+ require 'eac_ruby_utils/simple_cache'
6
+ require 'avmtrf1'
7
+ require 'avmtrf1/check_point/session'
8
+
9
+ module Avmtrf1
10
+ module Tools
11
+ class Runner < ::EacRubyUtils::Console::DocoptRunner
12
+ class CheckPoint < ::EacRubyUtils::Console::DocoptRunner
13
+ class Login < ::EacRubyUtils::Console::DocoptRunner
14
+ include ::EacRubyUtils::SimpleCache
15
+ include ::EacRubyUtils::Console::Speaker
16
+
17
+ DOC = <<~DOCOPT
18
+ Login no CheckPoint (https://cp.trf1.jus.br).
19
+
20
+ Usage:
21
+ __PROGRAM__ [options]
22
+ __PROGRAM__ -h | --help
23
+
24
+ Options:
25
+ -h --help Mostra esta ajuda.
26
+ -H --headless Não mostra a interface gráfica do navegador web.
27
+ DOCOPT
28
+
29
+ def run
30
+ infov 'Username', session.username
31
+ logged = session.logged?
32
+ infov 'Logged', logged
33
+ return if logged
34
+
35
+ infom 'Trying login...'
36
+ session.login
37
+ infov 'Logged after login?', session.logged?
38
+ end
39
+
40
+ def session_uncached
41
+ ::Avmtrf1::CheckPoint::Session.by_default_ad_user(headless: options.fetch('--headless'))
42
+ end
43
+ end
44
+ end
45
+ end
46
+ end
47
+ end
@@ -1,5 +1,8 @@
1
1
  # frozen_string_literal: true
2
2
 
3
+ require 'eac_ruby_utils/console/docopt_runner'
4
+ require 'eac_ruby_utils/console/speaker'
5
+
3
6
  module Avmtrf1
4
7
  module Tools
5
8
  class Runner < ::EacRubyUtils::Console::DocoptRunner
@@ -2,6 +2,6 @@
2
2
 
3
3
  module Avmtrf1
4
4
  module Tools
5
- VERSION = '0.3.0'
5
+ VERSION = '0.4.0'
6
6
  end
7
7
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: avmtrf1-tools
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.3.0
4
+ version: 0.4.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Eduardo H. Bogoni
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2019-08-05 00:00:00.000000000 Z
11
+ date: 2019-08-12 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: aranha
@@ -16,28 +16,34 @@ dependencies:
16
16
  requirements:
17
17
  - - "~>"
18
18
  - !ruby/object:Gem::Version
19
- version: '0.7'
19
+ version: 0.9.0
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
- version: '0.7'
26
+ version: 0.9.0
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: eac_ruby_utils
29
29
  requirement: !ruby/object:Gem::Requirement
30
30
  requirements:
31
31
  - - "~>"
32
32
  - !ruby/object:Gem::Version
33
- version: '0.7'
33
+ version: '0.10'
34
+ - - ">="
35
+ - !ruby/object:Gem::Version
36
+ version: 0.10.1
34
37
  type: :runtime
35
38
  prerelease: false
36
39
  version_requirements: !ruby/object:Gem::Requirement
37
40
  requirements:
38
41
  - - "~>"
39
42
  - !ruby/object:Gem::Version
40
- version: '0.7'
43
+ version: '0.10'
44
+ - - ">="
45
+ - !ruby/object:Gem::Version
46
+ version: 0.10.1
41
47
  - !ruby/object:Gem::Dependency
42
48
  name: inifile
43
49
  requirement: !ruby/object:Gem::Requirement
@@ -132,6 +138,13 @@ files:
132
138
  - Gemfile
133
139
  - exe/avmtrf1
134
140
  - lib/avmtrf1.rb
141
+ - lib/avmtrf1/active_directory.rb
142
+ - lib/avmtrf1/active_directory/user.rb
143
+ - lib/avmtrf1/ad_user.rb
144
+ - lib/avmtrf1/check_point.rb
145
+ - lib/avmtrf1/check_point/session.rb
146
+ - lib/avmtrf1/check_point/session/login.rb
147
+ - lib/avmtrf1/configs.rb
135
148
  - lib/avmtrf1/esosti/parsers/solicitacao/main.rb
136
149
  - lib/avmtrf1/esosti/session.rb
137
150
  - lib/avmtrf1/esosti/session/action_base.rb
@@ -156,6 +169,8 @@ files:
156
169
  - lib/avmtrf1/red/server.rb
157
170
  - lib/avmtrf1/tools.rb
158
171
  - lib/avmtrf1/tools/runner.rb
172
+ - lib/avmtrf1/tools/runner/check_point.rb
173
+ - lib/avmtrf1/tools/runner/check_point/login.rb
159
174
  - lib/avmtrf1/tools/runner/esosti.rb
160
175
  - lib/avmtrf1/tools/runner/oracle.rb
161
176
  - lib/avmtrf1/tools/runner/oracle/source_get.rb