symphonia 3.4.0 → 4.1.1

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 (50) hide show
  1. checksums.yaml +4 -4
  2. data/.rubocop.yml +7 -4
  3. data/CHANGELOG.md +27 -0
  4. data/README.md +16 -0
  5. data/app/assets/stylesheets/symphonia/_font_awesome.scss +29 -0
  6. data/app/assets/stylesheets/symphonia/_layout.scss +40 -0
  7. data/app/assets/stylesheets/symphonia/basic.scss +2 -35
  8. data/app/assets/stylesheets/symphonia/symphonia_bootstrap.scss +1 -46
  9. data/app/controllers/symphonia/accounts_controller.rb +5 -5
  10. data/app/controllers/symphonia/admin_controller.rb +1 -4
  11. data/app/helpers/symphonia/application_helper.rb +2 -2
  12. data/app/views/layouts/symphonia/application.html.erb +2 -2
  13. data/app/views/symphonia/admin/index.html.erb +1 -11
  14. data/db/migrate/20130714140501_create_roles.rb +6 -4
  15. data/db/migrate/20200428180001_add_uuid_to_users.rb +4 -2
  16. data/db/migrate/20210509141420_roles_change_permissions_to_json.rb +18 -0
  17. data/db/migrate/20210509180525_roles_change_permissions_to_native_json.rb +7 -0
  18. data/lib/generators/symphonia/setup/setup_generator.rb +17 -14
  19. data/lib/generators/symphonia/setup/templates/{settings.rb → app/config/initializers/settings.rb.tt} +0 -0
  20. data/lib/generators/symphonia/setup/templates/config/initializers/symphonia.rb.tt +48 -0
  21. data/lib/generators/symphonia/setup/templates/{404.html → public/404.html.tt} +4 -4
  22. data/lib/generators/symphonia/setup/templates/{500.html → public/500.html.tt} +0 -11
  23. data/lib/generators/symphonia/setup/templates/{spec_helper.rb → spec/spec_helper.rb.tt} +3 -2
  24. data/lib/symphonia/action_cable/connection.rb +5 -7
  25. data/lib/symphonia/admin_constraint.rb +3 -1
  26. data/lib/symphonia/model_attributes/attribute.rb +30 -14
  27. data/lib/symphonia/model_filters/base.rb +13 -15
  28. data/lib/symphonia/model_filters/boolean_filter.rb +10 -11
  29. data/lib/symphonia/model_filters/date_filter.rb +32 -31
  30. data/lib/symphonia/model_filters/integer_filter.rb +4 -5
  31. data/lib/symphonia/model_filters/select_filter.rb +19 -17
  32. data/lib/symphonia/model_filters/string_filter.rb +4 -5
  33. data/lib/symphonia/query.rb +10 -34
  34. data/lib/symphonia/query_columns/attribute_column.rb +59 -5
  35. data/lib/symphonia/query_columns.rb +1 -2
  36. data/lib/symphonia/spec_helper.rb +5 -3
  37. data/lib/symphonia/user_management.rb +0 -1
  38. data/lib/symphonia/version.rb +3 -1
  39. data/lib/symphonia.rb +4 -1
  40. data/spec/controllers/account_controller_spec.rb +66 -69
  41. data/spec/controllers/admin_controller_spec.rb +24 -25
  42. data/spec/libs/some_lib_spec.rb +1 -1
  43. data/spec/rails_helper.rb +4 -3
  44. data/spec/spec_helper.rb +3 -8
  45. metadata +69 -167
  46. data/app/models/symphonia/admin_module.rb +0 -18
  47. data/app/views/symphonia/filters/table.html.erb +0 -21
  48. data/db/migrate/20130828175114_create_attachments.rb +0 -20
  49. data/db/migrate/20141213204351_create_admin_modules.rb +0 -20
  50. data/lib/symphonia/query_columns/generic_column.rb +0 -165
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 690d5654253b68fefb5088b8938130e37baf32e2ac3a533af0ded29909f66a01
4
- data.tar.gz: 208b3dac35095799df42c565300f8c7877dad70a52ce966c6c7ad8e75048c710
3
+ metadata.gz: 37c5df664c5d4a4e23242972efcb37a44a97b0000c943aba8ff68ac7ebd4d2ec
4
+ data.tar.gz: 1636c08f1a1aa674319a19172cf0291d5fa910a9930056f8598ac96b7bf65937
5
5
  SHA512:
6
- metadata.gz: c23c2f1972886ac602da1fcd7fc0259b998a53787999bab18b7c320044b64a176a77227d20ec7d896868d74829464812f8a95a6910216e295f5b263dd65c3e65
7
- data.tar.gz: caa04002e0307779c75a0542124e6ca09a76463fb27b23aec0aa079b81d0af0b8c8cfabed6541472bc146ac1c086087910196969b85c83251b7a865eb906e4fe
6
+ metadata.gz: f2716c183798fd2acc14702ac79d44f4f210e4d4b770c6670ff78267c2ada056d3c331229371f02a66ca32d7496618a65972b1405860aace5fd7fc433161b94b
7
+ data.tar.gz: dbeff2e27c22f063183e6eecd395ba895cf8c6986841281d1914f2e3997ee4a833fd3e78c7a38dca24e49041083f3398a876ea8a4bd476b11ec57cf9830c1734
data/.rubocop.yml CHANGED
@@ -1,5 +1,10 @@
1
+ require:
2
+ - rubocop-rails
3
+ - rubocop-rspec
4
+
1
5
  AllCops:
2
6
  TargetRubyVersion: 2.5
7
+ NewCops: enable
3
8
 
4
9
  Layout/EmptyLinesAroundClassBody:
5
10
  EnforcedStyle: empty_lines_special
@@ -12,15 +17,13 @@ Metrics/AbcSize:
12
17
  Enabled: false
13
18
  Metrics/BlockLength:
14
19
  Enabled: false
15
- #Metrics/LineLength:
16
- # Enabled: false
17
20
  Metrics/MethodLength:
18
21
  Enabled: false
19
22
 
20
- #Style/BracesAroundHashParameters:
21
- # EnforcedStyle: context_dependent
22
23
  Style/Documentation:
23
24
  Enabled: false
25
+ Style/FrozenStringLiteralComment:
26
+ Enabled: false
24
27
  Style/MutableConstant:
25
28
  Enabled: false
26
29
  Style/NegatedIf:
data/CHANGELOG.md CHANGED
@@ -5,6 +5,33 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
5
5
  and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
6
6
 
7
7
  ## [Unreleased]
8
+ ## [4.1.1] - 2021-12-26
9
+ ### Fixed
10
+ - user activation
11
+ ## [4.1.0] - 2021-10-23
12
+ ### Fixed
13
+ - missing default settings template in generator:setup
14
+ ### Added
15
+ - rubocop-rails
16
+ - rubocop-rspec
17
+ ### Removed
18
+ - mini_racer
19
+ ### Changed
20
+ - split SASS files
21
+
22
+ ## [4.0.0] - 2021-05-18
23
+ ### Removed
24
+ - development dependency in gemspec replaced by `symphonia_spec` gem
25
+ - GenericColumn in Query
26
+ - AdminModule class/table = its not used, its not working
27
+ ### Changed
28
+ - Rails 6.1 support
29
+ - Query#to_params boolean argument to named
30
+ - update generators
31
+ - use native JSON columns instead of serializations
32
+ ### Added
33
+ - Gemfile.lock
34
+
8
35
  ## [3.4.0] - 2021-03-22
9
36
  ### Changed
10
37
  - upgrade authlogic to 6.4.1 (rails6.1 compatible)
data/README.md CHANGED
@@ -14,3 +14,19 @@ after `bundle install` run post-installation: `rails g symphonia:setup`
14
14
  > Setup prepare `config/initializers/settings.rb`, create `spec/spec_helper.rb`, add stylesheets and javascripts references and copy basic layout.
15
15
 
16
16
 
17
+ ## Upgrade to v4.0
18
+ 1. update Gemfile:
19
+ ```ruby
20
+ gem 'rails', '~> 6.1'
21
+ gem 'symphonia', '~> 4.0'
22
+ source "https://gems.luk4s.cz" do
23
+ gem 'symphonia_spec', group: %i[development test]
24
+ end
25
+ ```
26
+ And `bundle update`
27
+ 2. upgrade rails:
28
+ https://guides.rubyonrails.org/upgrading_ruby_on_rails.html
29
+ ```bash
30
+ export THOR_MERGE=vimdiff
31
+ rails app:update
32
+ ```
@@ -0,0 +1,29 @@
1
+ @import 'font-awesome';
2
+ /* Font awesome aliases */
3
+ .fa-add {
4
+ @extend .fa-plus-circle !optional;
5
+ }
6
+ .fa-delete, .fa-del {
7
+ @extend .fa-trash-o !optional;
8
+ }
9
+ .fa-back {
10
+ @extend .fa-chevron-left !optional;
11
+ }
12
+ .fa-true {
13
+ @extend .fa-check !optional;
14
+ }
15
+ .fa-false {
16
+ @extend .fa-times !optional;
17
+ }
18
+ .fa-notice {
19
+ @extend .fa-check-circle !optional;
20
+ }
21
+ .fa-error {
22
+ @extend .fa-times-circle !optional;
23
+ }
24
+ .alert .fa-info {
25
+ @extend .fa-info-circle !optional;
26
+ }
27
+ [class^="fa-"]:before:hover, a[class*=" fa-"]:before:hover {
28
+ text-decoration: none
29
+ }
@@ -0,0 +1,40 @@
1
+ @import "bootstrap";
2
+
3
+ // fixed navbar
4
+ body > .container {
5
+ padding-top: 80px;
6
+ }
7
+
8
+ @media print {
9
+ body > .container {
10
+ padding-top: 0 !important;
11
+ }
12
+ }
13
+
14
+ footer.footer {
15
+ height: 40px;
16
+ line-height: 40px;
17
+ bottom: 0;
18
+ width: 100%;
19
+ }
20
+
21
+ @keyframes highlight {
22
+ from {
23
+ background-color: map-get($theme-colors, warning);
24
+ }
25
+ to {
26
+ background-color: inherit;
27
+ }
28
+ }
29
+
30
+ @media print {
31
+ .contextual {
32
+ @extend .d-print-none;
33
+ }
34
+ a[href]:after {
35
+ content: none
36
+ }
37
+ .btn {
38
+ @extend .d-print-none;
39
+ }
40
+ }
@@ -1,37 +1,5 @@
1
- @import 'font-awesome';
2
- /* Font awesome aliases */
3
- .fa-add {
4
- //@extend .fa-plus-circle:before;
5
- @extend .fa-plus-circle !optional;
6
- }
7
- .fa-delete, .fa-del {
8
- @extend .fa-trash-o !optional;
9
- }
10
- .fa-back {
11
- @extend .fa-chevron-left !optional;
12
- }
13
- .fa-true {
14
- @extend .fa-check !optional;
15
- }
16
- .fa-false {
17
- @extend .fa-times !optional;
18
- }
1
+ @import "_font_awesome";
19
2
 
20
- .fa-notice {
21
- @extend .fa-check-circle !optional;
22
- }
23
- .fa-error {
24
- @extend .fa-times-circle !optional;
25
- }
26
- .alert .fa-info {
27
- @extend .fa-info-circle !optional;
28
- }
29
- [class^="fa-"]:before, [class*=" fa-"]:before {
30
- //padding-right: 5px;
31
- }
32
- [class^="fa-"]:before:hover, a[class*=" fa-"]:before:hover {
33
- text-decoration: none
34
- }
35
3
  .page-header.title, .page-header.title h1 {
36
4
  margin-top: 0;
37
5
  }
@@ -40,7 +8,6 @@
40
8
  }
41
9
  .reorder, .reorder label {
42
10
  cursor: move;
43
- cursor: -webkit-grabbing;
44
11
  }
45
12
 
46
13
  .flash {
@@ -217,4 +184,4 @@ table.table {
217
184
  .sortable-ghost {
218
185
  //border: 2px solid black;
219
186
  box-shadow: inset 0 0 5px #000000;
220
- }
187
+ }
@@ -1,47 +1,2 @@
1
- // require _bootstrap
2
- // *= require rails_bootstrap_forms
3
- // *= require bootstrap-datepicker3
4
- //@import "bootstrap-sprockets";
5
-
6
- @import "bootstrap";
1
+ @import "layout";
7
2
  @import "bootstrap-datepicker3";
8
-
9
-
10
- // fixed navbar
11
- body > .container {
12
- padding-top: 80px;
13
- }
14
-
15
- @media print {
16
- body > .container {
17
- padding-top: 0 !important;
18
- }
19
- }
20
-
21
- footer.footer {
22
- height: 40px;
23
- line-height: 40px;
24
- bottom: 0;
25
- width: 100%;
26
- }
27
-
28
- @keyframes highlight {
29
- from {
30
- background-color: map-get($theme-colors, warning);
31
- }
32
- to {
33
- background-color: inherit;
34
- }
35
- }
36
-
37
- @media print {
38
- .contextual {
39
- @extend .d-print-none;
40
- }
41
- a[href]:after {
42
- content: none
43
- }
44
- .btn {
45
- @extend .d-print-none;
46
- }
47
- }
@@ -32,7 +32,7 @@ module Symphonia
32
32
  if @user.valid? && verify_registration && @user.save(validate: false)
33
33
  Notifier.activation_user(@user).deliver_later
34
34
  Notifier.user_registered(@user).deliver_later
35
- format.html { redirect_to '/', notice: t(:text_user_registered) }
35
+ format.html { redirect_to login_path, notice: t(:text_user_registered) }
36
36
  format.json { render status: :created }
37
37
  else
38
38
  format.html { render action: 'register' }
@@ -71,14 +71,14 @@ module Symphonia
71
71
  @user = find_account_by_mail(params.require(:email))
72
72
  if @user
73
73
  if @user.active?
74
- redirect_to root_path, flash: { error: t(:text_user_alerady_active) }
74
+ redirect_to login_path, flash: { error: t(:text_user_alerady_active) }
75
75
  else
76
76
  @user.reset_perishable_token!
77
77
  Notifier.activation_user(@user).deliver_later
78
- redirect_to root_path, notice: t(:text_activation_resend)
78
+ redirect_to login_path, notice: t(:text_activation_resend)
79
79
  end
80
80
  else
81
- redirect_to root_path, flash: { error: t(:text_user_not_found) }
81
+ redirect_to login_path, flash: { error: t(:text_user_not_found) }
82
82
  end
83
83
  end
84
84
 
@@ -88,7 +88,7 @@ module Symphonia
88
88
  @user.activate!
89
89
  redirect_to login_path, notice: t(:text_activation_success)
90
90
  else
91
- redirect_to root_path, flash: { error: t(:text_user_not_found_or_token_invalid) }
91
+ redirect_to login_path, flash: { error: t(:text_user_not_found_or_token_invalid) }
92
92
  end
93
93
  end
94
94
 
@@ -3,9 +3,6 @@ module Symphonia
3
3
  before_action :login_require
4
4
 
5
5
  def index
6
- @admin_modules = AdminModule.where(user_id: [nil, current_user.id]).order(:position).all
7
- @modules_count = @admin_modules.count
8
-
9
6
  respond_to do |format|
10
7
  format.html
11
8
  end
@@ -19,4 +16,4 @@ module Symphonia
19
16
 
20
17
  end
21
18
 
22
- end
19
+ end
@@ -28,7 +28,7 @@ module Symphonia
28
28
  end
29
29
  end
30
30
 
31
- return s.html_safe
31
+ s.html_safe
32
32
  end
33
33
 
34
34
  def render_menu(menu, options = {})
@@ -38,7 +38,7 @@ module Symphonia
38
38
  end
39
39
  options[:container_class] ||= 'mr-auto'
40
40
 
41
- return content_tag(:ul, s.html_safe, itemscope: '', itemtype: 'http://schema.org/BreadcrumbList', class: "navbar-nav #{options[:container_class]}", id: menu.to_s)
41
+ content_tag(:ul, s.html_safe, itemscope: '', itemtype: 'http://schema.org/BreadcrumbList', class: "navbar-nav #{options[:container_class]}", id: menu.to_s)
42
42
  end
43
43
 
44
44
  def render_menu_node(menu, item, options = {})
@@ -5,9 +5,9 @@
5
5
  <title><%= html_title %></title>
6
6
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
7
7
  <%= yield :meta_tags %>
8
- <%= stylesheet_link_tag 'application', :media => 'all', 'data-turbolinks-track' => true %>
8
+ <%= stylesheet_link_tag 'application', media: 'all', 'data-turbolinks-track': true %>
9
9
  <%= yield :stylesheet_tags %>
10
- <%= javascript_include_tag 'application', 'data-turbolinks-track' => true %>
10
+ <%= javascript_include_tag 'application', 'data-turbolinks-track': true %>
11
11
  <script type="text/javascript">
12
12
  Symphonia.routes.reorderImagesPath = '<%= symphonia.reorder_attachment_path %>';
13
13
  </script>
@@ -1,15 +1,5 @@
1
1
  <%= title 'Administrace' %>
2
- <% @admin_modules.each_with_index do |admin_module, _index| %>
3
- <div class="col-lg-<%= @modules_count == 1 ? '12' : '6' %>" id="<%= dom_id(admin_module) %>">
4
- <h3><%= t(admin_module.title, scope: [:admin_module, :titles], default: admin_module.title) %></h3>
5
- <% if admin_module.body_path.is_a?(Symbol) %>
6
- <%= render(partial: "admin_modules/#{admin_module.body_path}", locals: { admin_module: admin_module }) -%>
7
- <% else %>
8
- <%= format_text(admin_module.body_path) -%>
9
- <% end -%>
10
- </div>
11
- <% end -%>
12
2
 
13
3
  <%= content_for :meta_tags do %>
14
4
  <meta name="turbolinks-root" content="/admin">
15
- <% end %>
5
+ <% end %>
@@ -1,10 +1,11 @@
1
- class CreateRoles < ActiveRecord::Migration[5.1]
1
+ class CreateRoles < ActiveRecord::Migration[6.1]
2
+
2
3
  def up
3
4
  create_table :roles do |t|
4
- t.string :name, :null => false
5
- t.text :description, :null => true
5
+ t.string :name, null: false
6
+ t.text :description, null: true
6
7
 
7
- t.text :permissions
8
+ t.text :permissions
8
9
 
9
10
  t.timestamps
10
11
  end
@@ -13,4 +14,5 @@ class CreateRoles < ActiveRecord::Migration[5.1]
13
14
  def down
14
15
  drop_table :roles
15
16
  end
17
+
16
18
  end
@@ -1,6 +1,8 @@
1
1
  class AddUuidToUsers < ActiveRecord::Migration[6.0]
2
+
2
3
  def change
3
- uuid_type = connection.adapter_name =~ /PostgreSQL/i ? :uuid : :string
4
- add_column :users, :uuid, uuid_type
4
+ # uuid_type = connection.adapter_name =~ /PostgreSQL/i ? :uuid : :string
5
+ add_column :users, :uuid, :uuid
5
6
  end
7
+
6
8
  end
@@ -0,0 +1,18 @@
1
+ class RolesChangePermissionsToJson < ActiveRecord::Migration[6.1]
2
+
3
+ def up
4
+ say_with_time "Convert 'roles.permissions' YAML to JSON" do
5
+ i = 0
6
+ Symphonia::Role.where.not(permissions: nil).each do |role|
7
+ yaml = product.read_attribute_before_type_cast :permissions
8
+ next unless yaml.start_with? "---"
9
+
10
+ role.update_columns permissions: YAML.safe_load(yaml)
11
+ i += 1
12
+ end
13
+
14
+ i
15
+ end
16
+ end
17
+
18
+ end
@@ -0,0 +1,7 @@
1
+ class RolesChangePermissionsToNativeJson < ActiveRecord::Migration[6.1]
2
+
3
+ def up
4
+ change_column :roles, :permissions, :jsonb, using: 'permissions::jsonb'
5
+ end
6
+
7
+ end
@@ -2,17 +2,16 @@ require 'rails/generators'
2
2
 
3
3
  module Symphonia
4
4
  class SetupGenerator < Rails::Generators::Base
5
- # include Rails::Generators::Migration
6
5
 
7
6
  source_root File.expand_path('templates', __dir__)
8
7
 
9
8
  def create_settings
10
- copy_file 'settings.rb', 'config/initializers/settings.rb'
9
+ template 'config/initializers/symphonia.rb'
11
10
  end
12
11
 
13
12
  def copy_static
14
- copy_file '404.html', 'public/404.html'
15
- copy_file '500.html', 'public/500.html'
13
+ template 'public/404.html'
14
+ template 'public/500.html'
16
15
  end
17
16
 
18
17
  def copy_assets
@@ -22,16 +21,14 @@ module Symphonia
22
21
  end
23
22
 
24
23
  def copy_rspec
25
- copy_file 'spec_helper.rb', 'spec/spec_helper.rb'
24
+ template 'spec/spec_helper.rb'
26
25
 
27
26
  create_file '.rspec' do
28
- '--require spec_helper'
29
- '--format documentation'
27
+ "--require spec_helper"
30
28
  end
31
29
  end
32
30
 
33
31
  def copy_setup_file
34
-
35
32
  copy_file 'base_layout.html.erb', 'app/views/layouts/application.html.erb'
36
33
 
37
34
  append_to_file 'db/seeds.rb', 'Symphonia::Engine.load_seed'
@@ -40,14 +37,20 @@ module Symphonia
40
37
  inject_into_file 'config/routes.rb', after: "Rails.application.routes.draw do\n" do
41
38
  " mount Symphonia::Engine => '/'"
42
39
  end
40
+ end
41
+
42
+ def rubocop
43
+ create_file '.rubocop.yml' do
44
+ "inherit_gem:\n symphonia: .rubocop.yml"
45
+ end
46
+ end
47
+
48
+ def setup_gemfile
49
+ append_to_file 'Gemfile' do
50
+ "gem 'symphonia_spec', source: 'https://gems.luk4s.cz', group: %w[development test]"
51
+ end
43
52
 
44
53
  end
45
54
 
46
- # def setup_gemfile
47
- # append_to_file 'Gemfile' do
48
- # File.read(File.join(File.dirname(__FILE__), 'templates/Gemfile'))
49
- # end
50
- #
51
- # end
52
55
  end
53
56
  end
@@ -0,0 +1,48 @@
1
+ Symphonia.configure do |config|
2
+ config.after_login_path = ->(h) { h.symphonia.user_current_path }
3
+ config.allow_registrations = false
4
+ config.default_locale = :cs
5
+ end
6
+
7
+ # Symphonia::MenuManager.map :top_menu do |m|
8
+ # m[:home] = {
9
+ # label: :label_home,
10
+ # icon: 'fa fa-home',
11
+ # url: '/'
12
+ # }
13
+ # m[:users] = {
14
+ # label: :label_users,
15
+ # icon: 'fa fa-user',
16
+ # url: ->(h) { h.symphonia.users_path },
17
+ # if: proc { Symphonia::User.current.admin? }
18
+ # }
19
+ # m[:roles] = {
20
+ # label: :label_roles,
21
+ # icon: 'fa fa-key',
22
+ # url: ->(h) { h.symphonia.roles_path },
23
+ # if: proc { Symphonia::User.current.admin? }
24
+ # }
25
+ #
26
+ # end
27
+ # Symphonia::MenuManager.map :top_menu_account do |m|
28
+ # # -----
29
+ # m[:my_account] = {
30
+ # label: :label_my_account,
31
+ # icon: 'fa fa-wrench',
32
+ # url: ->(h) { h.symphonia.account_path },
33
+ # if: proc { Symphonia::User.current.logged_in? }
34
+ # }
35
+ # m[:logout] = {
36
+ # label: :button_logout,
37
+ # icon: 'fa fa-sign-out',
38
+ # url: ->(h) { h.symphonia.logout_path },
39
+ # method: 'delete',
40
+ # if: proc { Symphonia::User.current.logged_in? }
41
+ # }
42
+ # m[:login] = {
43
+ # label: :button_login,
44
+ # icon: 'fa fa-signin',
45
+ # url: ->(h) { h.symphonia.login_path },
46
+ # if: proc { !Symphonia::User.current.logged_in? }
47
+ # }
48
+ # end
@@ -3,13 +3,13 @@
3
3
  <head>
4
4
  <meta charset="UTF-8">
5
5
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
6
- <title>404 STránka nenalezena</title>
7
- <link rel="stylesheet" href="//maxcdn.bootstrapcdn.com/font-awesome/4.3.0/css/font-awesome.min.css" />
8
- <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.4/css/bootstrap.min.css" />
6
+ <title>404 Stránka nenalezena</title>
7
+ <link rel="stylesheet" href="//stackpath.bootstrapcdn.com/font-awesome/4.7.0/css/font-awesome.min.css" />
8
+ <link rel="stylesheet" href="//stackpath.bootstrapcdn.com/bootstrap/4.4.1/css/bootstrap.min.css" integrity="sha384-Vkoo8x4CGsO3+Hhxv8T/Q5PaXtkKtu6ug5TOeNV6gBiFeWPGFN9MuhOf23Q9Ifjh" crossorigin="anonymous">
9
9
  </head>
10
10
 
11
11
  <body>
12
- <!-- This file lives in public/500.html -->
12
+ <!-- This file lives in public/404.html -->
13
13
  <br />
14
14
  <div class="rows">
15
15
  <p class="col-sm-6 col-md-3">
@@ -21,17 +21,6 @@
21
21
  <p>
22
22
  Při zpracování požadavku došlo k vnitřní chybě serveru. Kontaktujte prosím administrátora.
23
23
  </p>
24
- <ul class="fa-ul">
25
- <li>
26
- <h3>Lukáš Pokorný</h3>
27
- </li>
28
- <li>
29
- <i class="fa fa-li fa fa-envelope"></i>e-mail: <a href="mailto:admin@lagrace.cz">admin@lagrace.cz</a>
30
- </li>
31
- <li>
32
- <i class="fa fa-li fa fa-mobile-phone"></i>tel: 604484983
33
- </li>
34
- </ul>
35
24
  </div>
36
25
  </div>
37
26
  </div>
@@ -1,11 +1,11 @@
1
1
  ENV['RAILS_ENV'] ||= 'test'
2
- require File.expand_path('../../config/environment', __FILE__)
2
+ require_relative '../../config/environment'
3
3
  # Prevent database truncation if the environment is production
4
4
  abort('The Rails environment is running in production mode!') if Rails.env.production?
5
5
 
6
6
  # require 'symphonia'
7
7
  RSpec.configure do |config|
8
- Dir.glob(File.join(__dir__, 'support', '*.rb')).each { |f| require f }
8
+ Dir.glob(File.join(__dir__, 'support', '*.rb')).sort.each { |f| require f }
9
9
 
10
10
  require 'symphonia/spec_helper'
11
11
 
@@ -15,4 +15,5 @@ RSpec.configure do |config|
15
15
 
16
16
  config.infer_spec_type_from_file_location!
17
17
  config.filter_rails_from_backtrace!
18
+ config.profile_examples = true
18
19
  end
@@ -9,17 +9,15 @@ module Symphonia
9
9
 
10
10
  def connect
11
11
  self.current_user = find_verified_user_or_guest
12
- logger.add_tags 'ActionCable', self.current_user.login unless self.current_user.nil?
12
+ logger.add_tags 'ActionCable', current_user.login unless current_user.nil?
13
13
  end
14
14
 
15
15
  protected
16
16
 
17
17
  def find_verified_user_or_guest
18
- if (credentials = request.session["symphonia/user_credentials"]).present?
19
- ::Symphonia::User.find_by_persistence_token(credentials.split(':')[0])
20
- else
21
- nil
22
- end
18
+ return if (credentials = request.session["symphonia/user_credentials"]).blank?
19
+
20
+ ::Symphonia::User.find_by(persistence_token: credentials.split(':')[0])
23
21
  end
24
22
  end
25
23
 
@@ -28,4 +26,4 @@ module Symphonia
28
26
 
29
27
  end
30
28
  end
31
- end
29
+ end
@@ -1,10 +1,12 @@
1
1
  module Symphonia
2
2
  class AdminConstraint
3
+
3
4
  def matches?(request)
4
5
  return false if (credentials = request.session["symphonia/user_credentials"]).blank?
5
6
 
6
7
  user = User.find_by_persistence_token(credentials.split(':')[0])
7
8
  user&.admin?
8
9
  end
10
+
9
11
  end
10
- end
12
+ end