eac_rails_base0 0.48.0 → 0.52.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: 3e6e5c1e785de509bd1c7599df86fdb868e057c4edadd170c31db62b0d2b15bf
4
- data.tar.gz: aa1eea6644eb191c24f0a3fc7e9b9482bfc23ebc080b2c4a73ce206676b9434a
3
+ metadata.gz: 13666e6e80c12579c34b3e0a653bc043e61248ea32d3f71f8e7f54585bacdf8d
4
+ data.tar.gz: 26710509272bd25866ef7149c031637bf41b1eca57506266a47d7ef96ef221ff
5
5
  SHA512:
6
- metadata.gz: c0b4391fc0d49c14e2d20cd08a0e0be11f9ead8f39cb81a78a2d26c842389a8c5d68d8ec0ba2052d7c1919aa015893b3d9bb9bcc1c5be88861bd3646bb052652
7
- data.tar.gz: edfe1a77f9782c2845a647a1ffa991652ebd9fd8810218abeec65accbf4ded71bd2df46074cb219be21b15fccdc4e6e4174b2fd311d5afdce79e3759e2a69006
6
+ metadata.gz: 42aaa638fcde68752c27af5cd5e57559e9c28d4d4b479947b755e9770985236d2f000ebcb348af7f387e4a60b5a7912f4fb94ebb71cc542ef33683b0eba6445f
7
+ data.tar.gz: bffc0d52763f01ff91b3eb6a6c0ce4e356a813eccf95c62d43efc3e53b9d8e96347bc02b02262e39f98440d931b4bf8421bb6a0ca854d995948c1f0d3652b103
@@ -7,9 +7,11 @@ module EacRailsBase0
7
7
  layout 'eac_rails_base0/application'
8
8
  helper ::EacRailsBase0::AppVersionHelper
9
9
  helper ::EacRailsBase0::LayoutHelper
10
+ helper ::EacRailsBase0::MainMenuHelper
10
11
  helper ::EacRailsUtils::FormatterHelper
11
12
  helper ::EacRailsUtils::LinksHelper
12
13
  helper ::EacRailsUtils::OpenGraphProtocolHelper
14
+ helper ::EacRailsBase0::UserMenuHelper
13
15
 
14
16
  # Prevent CSRF attacks by raising an exception.
15
17
  # For APIs, you may want to use :null_session instead.
@@ -3,8 +3,6 @@
3
3
  module EacRailsBase0
4
4
  module LayoutHelper
5
5
  APP_TITLE_METHOD = 'app_title'
6
- APP_MAIN_MENU_ENTRIES_METHOD = 'app_main_menu_entries'
7
- ADMIN_ENTRIES = %w[eac_users_support tasks_scheduler aranha br_railties mailer].freeze
8
6
 
9
7
  def base0_app_title
10
8
  if respond_to?(APP_TITLE_METHOD)
@@ -13,60 +11,5 @@ module EacRailsBase0
13
11
  "Implement the helper method \"#{APP_TITLE_METHOD}\""
14
12
  end
15
13
  end
16
-
17
- def base0_app_main_menu_entries
18
- if respond_to?(APP_MAIN_MENU_ENTRIES_METHOD)
19
- send(APP_MAIN_MENU_ENTRIES_METHOD, base0_app_main_menu_default_entries)
20
- else
21
- base0_app_main_menu_default_entries
22
- end
23
- end
24
-
25
- def base0_app_main_menu_default_entries
26
- {
27
- 'Administração' => base0_app_main_menu_admin_entries
28
- }
29
- end
30
-
31
- def base0_app_main_menu_admin_entries
32
- ADMIN_ENTRIES.map do |identifier|
33
- [::I18n.t("eac_rails_base0.main_menu.admin.#{identifier}"),
34
- send("#{identifier}_main_menu_admin_entries")]
35
- end.to_h
36
- end
37
-
38
- def mailer_main_menu_admin_entries
39
- %w[info send_test].map do |action|
40
- [
41
- t("eac_rails_base0.mailer.#{action}"),
42
- main_app.send("#{action}_eac_rails_base0_mailer_index_path")
43
- ]
44
- end.to_h
45
- end
46
-
47
- def eac_users_support_main_menu_admin_entries
48
- {
49
- ::EacUsersSupport::User.model_name.human(count: 2) => [eac_users_support.admin_users_path]
50
- }
51
- end
52
-
53
- def tasks_scheduler_main_menu_admin_entries
54
- {
55
- t('activerecord.models.scheduled_task.other') => [main_app.status_scheduled_tasks_path]
56
- }
57
- end
58
-
59
- def aranha_main_menu_admin_entries
60
- {
61
- ::Aranha::Address.model_name.human(count: 2) => [aranha.addresses_path]
62
- }
63
- end
64
-
65
- def br_railties_main_menu_admin_entries
66
- {
67
- ::BrRailties::FederalUnit.model_name.human(count: 2) => [br_railties.federal_units_path],
68
- ::BrRailties::Municipality.model_name.human(count: 2) => [br_railties.municipalities_path]
69
- }
70
- end
71
14
  end
72
15
  end
@@ -0,0 +1,64 @@
1
+ # frozen_string_literal: true
2
+
3
+ module EacRailsBase0
4
+ module MainMenuHelper
5
+ APP_MAIN_MENU_ENTRIES_METHOD = 'app_main_menu_entries'
6
+ ADMIN_ENTRIES = %w[eac_users_support tasks_scheduler aranha br_railties mailer].freeze
7
+
8
+ def base0_app_main_menu_entries
9
+ if respond_to?(APP_MAIN_MENU_ENTRIES_METHOD)
10
+ send(APP_MAIN_MENU_ENTRIES_METHOD, base0_app_main_menu_default_entries)
11
+ else
12
+ base0_app_main_menu_default_entries
13
+ end
14
+ end
15
+
16
+ def base0_app_main_menu_default_entries
17
+ {
18
+ 'Administração' => base0_app_main_menu_admin_entries
19
+ }
20
+ end
21
+
22
+ def base0_app_main_menu_admin_entries
23
+ ADMIN_ENTRIES.map do |identifier|
24
+ [::I18n.t("eac_rails_base0.main_menu.admin.#{identifier}"),
25
+ send("#{identifier}_main_menu_admin_entries")]
26
+ end.to_h
27
+ end
28
+
29
+ def mailer_main_menu_admin_entries
30
+ %w[info send_test].map do |action|
31
+ [
32
+ t("eac_rails_base0.mailer.#{action}"),
33
+ main_app.send("#{action}_eac_rails_base0_mailer_index_path")
34
+ ]
35
+ end.to_h
36
+ end
37
+
38
+ def eac_users_support_main_menu_admin_entries
39
+ {
40
+ ::EacUsersSupport::User.model_name.human(count: 2) => [eac_users_support.admin_users_path]
41
+ }
42
+ end
43
+
44
+ def tasks_scheduler_main_menu_admin_entries
45
+ {
46
+ t('activerecord.models.scheduled_task.other') => [main_app.status_scheduled_tasks_path]
47
+ }
48
+ end
49
+
50
+ def aranha_main_menu_admin_entries
51
+ {
52
+ ::Aranha::Address.model_name.human(count: 2) => [aranha.addresses_path],
53
+ ::Aranha::StartPoint.model_name.human(count: 2) => [aranha.start_points_path]
54
+ }
55
+ end
56
+
57
+ def br_railties_main_menu_admin_entries
58
+ {
59
+ ::BrRailties::FederalUnit.model_name.human(count: 2) => [br_railties.federal_units_path],
60
+ ::BrRailties::Municipality.model_name.human(count: 2) => [br_railties.municipalities_path]
61
+ }
62
+ end
63
+ end
64
+ end
@@ -0,0 +1,18 @@
1
+ # frozen_string_literal: true
2
+
3
+ module EacRailsBase0
4
+ module UserMenuHelper
5
+ def base0_user_menu_entries
6
+ r = {}
7
+ if current_user
8
+ r[current_user.to_s] = {
9
+ 'Alterar senha' => [eac_users_support.edit_user_registration_path]
10
+ }
11
+ r['Sair'] = [eac_users_support.destroy_user_session_path, link_method: :delete]
12
+ else
13
+ r['Entrar'] = [eac_users_support.new_user_session_path]
14
+ end
15
+ r
16
+ end
17
+ end
18
+ end
@@ -0,0 +1,12 @@
1
+ # frozen_string_literal: true
2
+
3
+ module EacRailsBase0
4
+ class ApplicationMailer < (
5
+ begin
6
+ ::ApplicationMailer
7
+ rescue StandardError
8
+ ::ActionMailer::Base
9
+ end
10
+ )
11
+ end
12
+ end
@@ -1,7 +1,7 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module EacRailsBase0
4
- class SendTestMailer < ::ApplicationMailer
4
+ class SendTestMailer < ::EacRailsBase0::ApplicationMailer
5
5
  def main
6
6
  @subject = "#{t('eac_rails_base0.mailer.send_test')} [#{::Time.zone.now}]"
7
7
  mail(to: params.fetch(:address), subject: @subject)
@@ -1,10 +1 @@
1
- <%
2
- user_menu = {}
3
- if current_user
4
- user_menu[current_user.to_s] = [main_app.root_path]
5
- user_menu['Sair'] = [eac_users_support.destroy_user_session_path, link_method: :delete]
6
- else
7
- user_menu['Entrar'] = [eac_users_support.new_user_session_path]
8
- end
9
- %>
10
- <%= bootstrap_dropdown_menu(user_menu, class: 'navbar-right') %>
1
+ <%= bootstrap_dropdown_menu(base0_user_menu_entries, class: 'navbar-right') %>
@@ -1,11 +1,9 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require 'aranha/engine'
4
-
5
3
  Rails.application.routes.draw do
6
4
  mount ::EacRailsUtils::Engine => '/'
7
5
  mount ::EacUsersSupport::Engine => '/'
8
- mount ::Aranha::Engine => '/aranha'
6
+ mount ::Aranha::Rails::Engine => '/aranha'
9
7
  mount ::BrRailties::Engine => '/br_railties'
10
8
 
11
9
  namespace(:eac_rails_base0) do
@@ -58,6 +58,7 @@ module EacRailsBase0
58
58
 
59
59
  can :manage, ::EacUsersSupport::User
60
60
  can :manage, ::Aranha::Address
61
+ can :manage, ::Aranha::StartPoint
61
62
  can :manage, ::BrRailties::FederalUnit
62
63
  can :manage, ::BrRailties::Municipality
63
64
  can :manage, ::ScheduledTask
@@ -13,6 +13,7 @@ module EacRailsBase0
13
13
  map_devise_invitable
14
14
  map_controller 'EacUsersSupport::Admin::Users', :manage, ::EacUsersSupport::User
15
15
  map_controller 'Aranha::Addresses', :manage, ::Aranha::Address
16
+ map_controller 'Aranha::StartPoints', :manage, ::Aranha::StartPoint
16
17
  map_controller 'BrRailties::FederalUnits', :manage, ::BrRailties::FederalUnit
17
18
  map_controller 'BrRailties::Municipalities', :manage, ::BrRailties::Municipality
18
19
  map_controller 'ScheduledTasks', :manage, ::ScheduledTask
@@ -10,6 +10,12 @@ Bundler.require(*Rails.groups)
10
10
  module EacRailsBase0App
11
11
  class Application < Rails::Application
12
12
  class << self
13
+ def new_stdout_logger
14
+ logger = ActiveSupport::Logger.new(STDOUT)
15
+ logger.formatter = config.log_formatter
16
+ ::ActiveSupport::TaggedLogging.new(logger)
17
+ end
18
+
13
19
  def setup(*args)
14
20
  args.each { |a| send("setup_#{a}") }
15
21
  end
@@ -48,9 +48,7 @@ module EacRailsBase0App
48
48
 
49
49
  def setup_log
50
50
  config.active_support.deprecation = :log
51
- logger = ActiveSupport::Logger.new(STDOUT)
52
- logger.formatter = config.log_formatter
53
- config.logger = ActiveSupport::TaggedLogging.new(logger)
51
+ config.logger = new_stdout_logger
54
52
  end
55
53
  end
56
54
  end
@@ -33,11 +33,7 @@ module EacRailsBase0App
33
33
  config.log_tags = [:request_id]
34
34
  config.active_support.deprecation = :notify
35
35
  config.log_formatter = ::Logger::Formatter.new
36
- return if ENV['RAILS_LOG_TO_STDOUT'].blank?
37
-
38
- logger = ActiveSupport::Logger.new(STDOUT)
39
- logger.formatter = config.log_formatter
40
- config.logger = ActiveSupport::TaggedLogging.new(logger)
36
+ config.logger = new_stdout_logger if ENV['RAILS_LOG_TO_STDOUT'].blank?
41
37
  end
42
38
 
43
39
  def setup_public_file_server
@@ -1,6 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require 'aranha/engine'
3
+ require 'aranha/rails/engine'
4
4
  require 'br_railties/engine'
5
5
  require 'eac_rails_utils/engine'
6
6
  require 'eac_users_support/engine'
@@ -12,15 +12,39 @@ RSpec.configure do |config|
12
12
  end
13
13
 
14
14
  FactoryBot.define do
15
- factory :user, class: ::EacUsersSupport::User do
15
+ factory :admin_user, class: ::EacUsersSupport::User do
16
16
  email { 'admin@example.com' }
17
17
  password { 'mysecret' }
18
18
  confirmed_at { ::Time.zone.now }
19
19
  end
20
+
21
+ factory :non_admin_user, class: ::EacUsersSupport::User do
22
+ email { 'nonadmin@example.com' }
23
+ password { 'mysecret' }
24
+ confirmed_at { ::Time.zone.now }
25
+ end
20
26
  end
21
27
 
22
28
  RSpec.shared_context 'when user is admin', shared_context: :metadata do
23
- let(:user) { ::FactoryBot.create(:user) }
29
+ let(:user) { ::FactoryBot.create(:admin_user) }
30
+
31
+ before do
32
+ visit '/users/sign_in'
33
+ fill_in ::I18n.translate!('activerecord.attributes.eac_users_support/user.email'),
34
+ with: user.email
35
+ fill_in ::I18n.translate!('activerecord.attributes.eac_users_support/user.password'),
36
+ with: user.password
37
+ click_button ::I18n.translate!('devise.log_in')
38
+ end
39
+
40
+ it 'user should be logged' do
41
+ expect(page).to have_content user.email
42
+ expect(::EacUsersSupport::User.current_user).not_to be_nil
43
+ end
44
+ end
45
+
46
+ RSpec.shared_context 'when user is non admin', shared_context: :metadata do
47
+ let(:user) { ::FactoryBot.create(:non_admin_user) }
24
48
 
25
49
  before do
26
50
  visit '/users/sign_in'
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module EacRailsBase0
4
- VERSION = '0.48.0'
4
+ VERSION = '0.52.0'
5
5
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: eac_rails_base0
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.48.0
4
+ version: 0.52.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Esquilo Azul Company
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2020-10-20 00:00:00.000000000 Z
11
+ date: 2020-11-29 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: active_scaffold
@@ -31,25 +31,33 @@ dependencies:
31
31
  - !ruby/object:Gem::Version
32
32
  version: 3.5.5
33
33
  - !ruby/object:Gem::Dependency
34
- name: aranha
34
+ name: aranha-parsers
35
35
  requirement: !ruby/object:Gem::Requirement
36
36
  requirements:
37
37
  - - "~>"
38
38
  - !ruby/object:Gem::Version
39
- version: '0.14'
40
- - - ">="
41
- - !ruby/object:Gem::Version
42
- version: 0.14.2
39
+ version: '0.6'
43
40
  type: :runtime
44
41
  prerelease: false
45
42
  version_requirements: !ruby/object:Gem::Requirement
46
43
  requirements:
47
44
  - - "~>"
48
45
  - !ruby/object:Gem::Version
49
- version: '0.14'
50
- - - ">="
46
+ version: '0.6'
47
+ - !ruby/object:Gem::Dependency
48
+ name: aranha-rails
49
+ requirement: !ruby/object:Gem::Requirement
50
+ requirements:
51
+ - - "~>"
52
+ - !ruby/object:Gem::Version
53
+ version: '0.2'
54
+ type: :runtime
55
+ prerelease: false
56
+ version_requirements: !ruby/object:Gem::Requirement
57
+ requirements:
58
+ - - "~>"
51
59
  - !ruby/object:Gem::Version
52
- version: 0.14.2
60
+ version: '0.2'
53
61
  - !ruby/object:Gem::Dependency
54
62
  name: bootstrap-sass
55
63
  requirement: !ruby/object:Gem::Requirement
@@ -580,7 +588,10 @@ files:
580
588
  - app/controllers/eac_rails_base0/mailer_controller.rb
581
589
  - app/helpers/eac_rails_base0/app_version_helper.rb
582
590
  - app/helpers/eac_rails_base0/layout_helper.rb
591
+ - app/helpers/eac_rails_base0/main_menu_helper.rb
583
592
  - app/helpers/eac_rails_base0/panel_default_helper.rb
593
+ - app/helpers/eac_rails_base0/user_menu_helper.rb
594
+ - app/mailers/eac_rails_base0/application_mailer.rb
584
595
  - app/mailers/eac_rails_base0/send_test_mailer.rb
585
596
  - app/models/eac_rails_base0/application_record.rb
586
597
  - app/tableless_models/eac_rails_base0/email_send_test.rb