avmtrf1-tools 0.3.0 → 0.4.0

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