glib-web 0.11.9 → 0.11.12

Sign up to get free protection for your applications and to get access to all the features.
Files changed (102) hide show
  1. checksums.yaml +4 -4
  2. data/app/controllers/concerns/glib/auth/policy.rb +15 -9
  3. data/app/controllers/concerns/glib/json/new_dynamic_text.rb +0 -0
  4. data/app/controllers/concerns/glib/json/ui.rb +7 -1
  5. data/app/helpers/glib/app_feature_support_helper.rb +0 -0
  6. data/app/helpers/glib/dynamic_texts_helper.rb +0 -0
  7. data/app/helpers/glib/forms_helper.rb +0 -0
  8. data/app/helpers/glib/json_ui/action_builder/dialogs.rb +1 -0
  9. data/app/helpers/glib/json_ui/action_builder/http.rb +0 -0
  10. data/app/helpers/glib/json_ui/action_builder/sheets.rb +0 -0
  11. data/app/helpers/glib/json_ui/action_builder/snackbars.rb +0 -0
  12. data/app/helpers/glib/json_ui/analytics_helper.rb +0 -0
  13. data/app/helpers/glib/json_ui/generic_builders.rb +0 -0
  14. data/app/helpers/glib/json_ui/table_builders.rb +0 -0
  15. data/app/helpers/glib/urls_helper.rb +0 -0
  16. data/app/models/glib/active_storage/attachment.rb +0 -0
  17. data/app/models/glib/active_storage/blob.rb +0 -0
  18. data/app/models/glib/dynamic_text_record.rb +0 -0
  19. data/app/models/glib/text.rb +0 -0
  20. data/app/policies/glib/application_policy.rb +2 -25
  21. data/app/validators/email_typo_validator.rb +0 -0
  22. data/app/validators/email_validator.rb +0 -0
  23. data/app/validators/url_validator.rb +0 -0
  24. data/app/views/json_ui/garage/actions/_dialogs.json.jbuilder +1 -27
  25. data/app/views/json_ui/garage/actions/_dialogs_show.json.jbuilder +28 -0
  26. data/app/views/json_ui/garage/actions/_http.json.jbuilder +0 -0
  27. data/app/views/json_ui/garage/actions/_panels.json.jbuilder +0 -0
  28. data/app/views/json_ui/garage/actions/_reload.json.jbuilder +0 -0
  29. data/app/views/json_ui/garage/actions/_sheets.json.jbuilder +0 -0
  30. data/app/views/json_ui/garage/actions/_snackbars.json.jbuilder +0 -0
  31. data/app/views/json_ui/garage/actions/dialogs_oauth_post.json.jbuilder +0 -0
  32. data/app/views/json_ui/garage/forms/basic.json.jbuilder +6 -1
  33. data/app/views/json_ui/garage/forms/basic_post.json.jbuilder +0 -0
  34. data/app/views/json_ui/garage/forms/dynamic_group.json.jbuilder +0 -0
  35. data/app/views/json_ui/garage/forms/dynamic_select_data.json.jbuilder +0 -0
  36. data/app/views/json_ui/garage/forms/floating_submit.json.jbuilder +0 -0
  37. data/app/views/json_ui/garage/forms/generic_post.json.jbuilder +0 -0
  38. data/app/views/json_ui/garage/forms/submission_flow.json.jbuilder +0 -0
  39. data/app/views/json_ui/garage/forms/submission_flow_post.json.jbuilder +0 -0
  40. data/app/views/json_ui/garage/forms/submission_indicator.json.jbuilder +0 -0
  41. data/app/views/json_ui/garage/forms/submission_indicator_post.json.jbuilder +0 -0
  42. data/app/views/json_ui/garage/home/blank.json.jbuilder +0 -0
  43. data/app/views/json_ui/garage/home/slow.json.jbuilder +0 -0
  44. data/app/views/json_ui/garage/lists/autoload_all.json.jbuilder +0 -0
  45. data/app/views/json_ui/garage/lists/autoload_as_needed.json.jbuilder +0 -0
  46. data/app/views/json_ui/garage/lists/chat_ui.json.jbuilder +0 -0
  47. data/app/views/json_ui/garage/lists/fab.json.jbuilder +0 -0
  48. data/app/views/json_ui/garage/notifications/web_socket.json.jbuilder +0 -0
  49. data/app/views/json_ui/garage/pages/flat_centered.json.jbuilder +0 -0
  50. data/app/views/json_ui/garage/pages/full_width.json.jbuilder +0 -0
  51. data/app/views/json_ui/garage/pages/full_width_height.json.jbuilder +0 -0
  52. data/app/views/json_ui/garage/pages/index.json.jbuilder +0 -0
  53. data/app/views/json_ui/garage/pages/layout.json.jbuilder +0 -0
  54. data/app/views/json_ui/garage/pages/lifecycle_hooks.json.jbuilder +0 -0
  55. data/app/views/json_ui/garage/pages/loading_indicator.json.jbuilder +0 -0
  56. data/app/views/json_ui/garage/pages/nested_scroll.json.jbuilder +0 -0
  57. data/app/views/json_ui/garage/panels/_styled.json.jbuilder +0 -0
  58. data/app/views/json_ui/garage/panels/card.json.jbuilder +0 -0
  59. data/app/views/json_ui/garage/panels/custom.json.jbuilder +0 -0
  60. data/app/views/json_ui/garage/panels/outlined.json.jbuilder +0 -0
  61. data/app/views/json_ui/garage/panels/responsive.json.jbuilder +0 -0
  62. data/app/views/json_ui/garage/services/dynamic_text.json.jbuilder +0 -0
  63. data/app/views/json_ui/garage/services/image.json.jbuilder +0 -0
  64. data/app/views/json_ui/garage/services/index.json.jbuilder +0 -0
  65. data/app/views/json_ui/garage/tables/_autoload_section.json.jbuilder +0 -0
  66. data/app/views/json_ui/garage/tables/autoload_all.json.jbuilder +0 -0
  67. data/app/views/json_ui/garage/tables/autoload_as_needed.json.jbuilder +0 -0
  68. data/app/views/json_ui/garage/tables/export_import.json.jbuilder +0 -0
  69. data/app/views/json_ui/garage/tables/index.json.jbuilder +0 -0
  70. data/app/views/json_ui/garage/views/calendar_data.json.jbuilder +0 -0
  71. data/app/views/json_ui/garage/views/links.json.jbuilder +0 -0
  72. data/app/views/json_ui/garage/views/map_cluster_data.json.jbuilder +0 -0
  73. data/app/views/json_ui/garage/views/map_data.json.jbuilder +0 -0
  74. data/app/views/json_ui/garage/views/multimedia.json.jbuilder +0 -0
  75. data/config/routes.rb +0 -0
  76. data/lib/generators/glib/install_generator.rb +0 -0
  77. data/lib/generators/templates/20191017062519_create_texts.rb +0 -0
  78. data/lib/generators/templates/20191024063257_add_scope_to_texts.rb +0 -0
  79. data/lib/generators/templates/20191112095018_add_lang_to_texts.rb +0 -0
  80. data/lib/generators/templates/20191126071051_create_active_storage_tables.active_storage.rb +0 -0
  81. data/lib/generators/templates/database.yml +0 -0
  82. data/lib/generators/templates/dynamic_text.rb +0 -0
  83. data/lib/glib/crypt/utils.rb +0 -0
  84. data/lib/glib/crypt.rb +0 -0
  85. data/lib/glib/dynamic_text/config.rb +0 -0
  86. data/lib/glib/dynamic_text.rb +0 -0
  87. data/lib/glib/engine.rb +0 -0
  88. data/lib/glib/json_crawler/action_crawler.rb +0 -0
  89. data/lib/glib/json_crawler/action_crawlers/action_http.rb +0 -0
  90. data/lib/glib/json_crawler/action_crawlers/forms_submit.rb +0 -0
  91. data/lib/glib/json_crawler/action_crawlers/menu.rb +0 -0
  92. data/lib/glib/json_crawler/action_crawlers/nav_initiate.rb +0 -0
  93. data/lib/glib/json_crawler/action_crawlers/run_multiple.rb +0 -0
  94. data/lib/glib/json_crawler/action_crawlers/windows_open.rb +0 -0
  95. data/lib/glib/json_crawler/coverage.rb +0 -0
  96. data/lib/glib/json_crawler.rb +0 -0
  97. data/lib/glib/mailer_tester.rb +0 -0
  98. data/lib/glib/value.rb +0 -0
  99. data/lib/glib/version.rb +0 -0
  100. data/lib/glib-web.rb +0 -0
  101. data/lib/tasks/db.rake +0 -0
  102. metadata +3 -3
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 9b101f8560396e7f8f7eb2bed21767dabca54753d886f4ddeb285e5d5c5a2650
4
- data.tar.gz: eb691036c279090986d67035e7e71e49b014d7ec8042acfe8e3816cb0011736c
3
+ metadata.gz: a875d9c1ed1a30eb71d3550f7dd18c51f99958daea36369c5c09b8a10416e039
4
+ data.tar.gz: 220264def4842e22b6cddbcfb23017db1c4718bfbe45001998de60bf04011de9
5
5
  SHA512:
6
- metadata.gz: a3a007875e8305e326bd288c3883c26c64930084684b8020218893640abb3094bbcc4d0a5e85e471d607f63a81810bb0eeff45e69163c3e047bec5f3afc6918c
7
- data.tar.gz: a987e2bb2b60798edd4c1485f290a29552457fb6f81f2e9175c739c5fe0fb0364251ff27093c811368d99f969984b6d93de3d30317d7a0596d9b1c9ef68d7f90
6
+ metadata.gz: 589f9889c0a50a2deab52f8800404c34705d1dd98f15dddd52b9e8c4269e446b6a33fd5af7523c236c79dd8a5f9e361cd4f2927749baf20844a1ebb421262f04
7
+ data.tar.gz: b7affe18ed96cecda9f9f3d9a8c82b245c80b1eea0962a8241a82b3d84e845490c2438ef220ba482dd3231c781f9d7a293668f69613dd857295547d4f98cc5ce
@@ -5,7 +5,7 @@ module Glib::Auth
5
5
  extend ActiveSupport::Concern
6
6
 
7
7
  included do
8
- include Pundit
8
+ include Pundit::Authorization
9
9
  include Overrides
10
10
  extend ClassMethods
11
11
 
@@ -20,11 +20,14 @@ module Glib::Auth
20
20
  module Overrides
21
21
 
22
22
  public # Override
23
- def policy(record, policy_name = nil, attributes = {})
23
+ def policy(record, policy_name = nil, context = nil)
24
24
  policy_name ||= record
25
25
 
26
26
  @__pundit_policies ||= {}
27
- return @__pundit_policies[policy_name] if @__pundit_policies[policy_name]
27
+ if @__pundit_policies[policy_name]
28
+ @__pundit_policies[policy_name].context = context
29
+ return @__pundit_policies[policy_name]
30
+ end
28
31
 
29
32
  if policy_name.is_a?(Symbol) && policy_name.to_s.ends_with?('_admin')
30
33
  policy_class = CommonAdminPolicy
@@ -34,7 +37,10 @@ module Glib::Auth
34
37
 
35
38
  raise "Policy not found for #{policy_name.is_a?(Symbol) || policy_name.is_a?(Class) ? policy_name : policy_name.class}" unless policy_class
36
39
 
37
- @__pundit_policies[policy_name] = policy_class.new(current_user, record, policy_name, self, request, params, attributes: attributes)
40
+ policy_instance = policy_class.new(current_user, record, policy_name, self, request, params)
41
+ policy_instance.context = context
42
+
43
+ @__pundit_policies[policy_name] = policy_instance
38
44
  end
39
45
 
40
46
  # Expose protected method
@@ -51,13 +57,13 @@ module Glib::Auth
51
57
  end
52
58
 
53
59
  public
54
- def can?(action, record, attributes = {})
55
- policy(record, nil, attributes).send("#{action}?")
60
+ def can?(action, record, context = nil)
61
+ policy(record, nil, context).send("#{action}?")
56
62
  end
57
63
 
58
64
  public
59
- def cannot?(action, record)
60
- !policy(record).send("#{action}?")
65
+ def cannot?(action, record, context = nil)
66
+ !policy(record, nil, context).send("#{action}?")
61
67
  end
62
68
 
63
69
  # Inspired from https://github.com/ryanb/cancan/wiki/Non-RESTful-Controllers
@@ -84,7 +90,7 @@ module Glib::Auth
84
90
  resource_instance = instance_variable_get("@#{resource_name}") || policy_name
85
91
 
86
92
  query = "#{action_name}?"
87
- policy_instance = policy(resource_instance, policy_name, options.except(:class))
93
+ policy_instance = policy(resource_instance, policy_name, options.fetch(:context, nil))
88
94
  raise_access_denied(resource_instance, policy_instance) unless policy_instance.public_send(query)
89
95
  end
90
96
 
@@ -83,6 +83,12 @@ module Glib::Json::Ui
83
83
  def __json_ui_vue(hash, options)
84
84
  renderer_path = options[:renderer_path]
85
85
  @__json_ui_orig_page = response.body
86
- response.body = render_to_string(template: renderer_path, layout: 'json_ui/renderer', content_type: 'text/html', locals: { page: hash, options: options })
86
+ response.body = render_to_string(
87
+ template: renderer_path,
88
+ layout: 'json_ui/renderer',
89
+ content_type: 'text/html',
90
+ formats: [:html],
91
+ locals: { page: hash, options: options }
92
+ )
87
93
  end
88
94
  end
File without changes
File without changes
File without changes
@@ -37,6 +37,7 @@ class Glib::JsonUi::ActionBuilder
37
37
  end
38
38
 
39
39
  class Reload < Action
40
+ panels_builder :content, :body
40
41
  string :url, cache: true
41
42
  bool :showClose
42
43
  end
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
@@ -2,11 +2,11 @@
2
2
  # it's better to perform an explicit check (e.g. as a validation in the model or using a before_action).
3
3
  module Glib
4
4
  class ApplicationPolicy
5
+ attr_accessor :context
5
6
  attr_reader :user, :record, :policy_name, :controller, :request, :params
6
- class_attribute :should_exist_attributes, instance_writer: false, default: []
7
7
 
8
8
  private
9
- def initialize(user, record, policy_name, controller, request, params, attributes: {})
9
+ def initialize(user, record, policy_name, controller, request, params)
10
10
  @user = user
11
11
  @record = record
12
12
  @controller = controller
@@ -15,31 +15,11 @@ module Glib
15
15
  # See Presenter::Model::inside_mock_controller()
16
16
  @params = params
17
17
  @policy_name = policy_name
18
-
19
- if attributes.present? && controller.action_name != 'index'
20
- self.class.module_eval { attr_accessor(*attributes.keys) }
21
- attributes.each do |key, value|
22
- send("#{key}=", value)
23
- end
24
- end
25
-
26
- if controller.user_signed_in?
27
- should_exist_attributes.each do |attribute|
28
- if try(attribute).blank? && !['index'].include?(controller.action_name)
29
- raise "Attribute #{attribute} is blank, policy will not working properly"
30
- end
31
- end
32
- end
33
18
  end
34
19
 
35
20
  class << self
36
21
  attr_reader :catch_all
37
22
 
38
- def inherited(base)
39
- base.should_exist_attributes = should_exist_attributes.dup
40
- super
41
- end
42
-
43
23
  # This is to define the authorization logic for an action (or a group of actions). It's different from controller's
44
24
  # authorize().
45
25
  private # Used by child
@@ -58,9 +38,6 @@ module Glib
58
38
  end
59
39
  end
60
40
 
61
- def should_exist(*attributes)
62
- should_exist_attributes.push(*attributes)
63
- end
64
41
  end
65
42
 
66
43
  private
File without changes
File without changes
File without changes
@@ -54,34 +54,8 @@ section.rows builder: ->(template) do
54
54
  end
55
55
  end
56
56
 
57
- markdown = '## Emphasis' + "\n" +
58
- '**This is bold text**' + "\n" +
59
- "\n" +
60
- '*This is italic text*' + "\n" +
61
- "\n" +
62
- '~~Strikethrough~~' + "\n"
63
57
  template.thumbnail title: 'dialogs/show', onClick: ->(action) do
64
- action.dialogs_show showClose: true, content: ->(dialog) do
65
- dialog.body padding: glib_json_padding_body, childViews: ->(body) do
66
- body.markdown text: markdown
67
-
68
- body.panels_split width: 'matchParent', content: ->(split) do
69
- split.left childViews: ->(left) do
70
- left.panels_horizontal height: 'matchParent', align: 'middle', childViews: ->(horizontal) do
71
- horizontal.label text: 'Open current', onClick: ->(subaction) do
72
- subaction.dialogs_reload url: json_ui_garage_url(path: 'forms/basic', mode: 'dialog')
73
- end
74
- end
75
- end
76
-
77
- split.right childViews: ->(right) do
78
- right.button text: 'Open New', onClick: ->(subaction) do
79
- subaction.dialogs_open url: json_ui_garage_url(path: 'forms/basic', mode: 'dialog')
80
- end
81
- end
82
- end
83
- end
84
- end
58
+ render 'json_ui/garage/actions/dialogs_show', json: json, action: action, dialog_mode: :show
85
59
  end
86
60
 
87
61
  template.thumbnail title: 'dialogs/open', onClick: ->(action) do
@@ -0,0 +1,28 @@
1
+ markdown = '## Emphasis' + "\n" +
2
+ '**This is bold text**' + "\n" +
3
+ "\n" +
4
+ '*This is italic text*' + "\n" +
5
+ "\n" +
6
+ '~~Strikethrough~~' + "\n"
7
+
8
+ action.send "dialogs_#{dialog_mode}", showClose: true, content: ->(dialog) do
9
+ dialog.body padding: glib_json_padding_body, childViews: ->(body) do
10
+ body.markdown text: markdown
11
+
12
+ body.panels_split width: 'matchParent', content: ->(split) do
13
+ split.left childViews: ->(left) do
14
+ left.panels_horizontal height: 'matchParent', align: 'middle', childViews: ->(horizontal) do
15
+ horizontal.label text: 'Open current', onClick: ->(subaction) do
16
+ subaction.dialogs_reload url: json_ui_garage_url(path: 'forms/basic', mode: 'dialog_reload')
17
+ end
18
+ end
19
+ end
20
+
21
+ split.right childViews: ->(right) do
22
+ right.button text: 'Open New', onClick: ->(subaction) do
23
+ subaction.dialogs_open url: json_ui_garage_url(path: 'forms/basic', mode: 'dialog')
24
+ end
25
+ end
26
+ end
27
+ end
28
+ end
File without changes
@@ -10,8 +10,13 @@ page.form url: json_ui_garage_url(path: 'forms/basic_post'), method: 'post', pad
10
10
  form.panels_split width: 'matchParent', content: ->(split) do
11
11
  split.left childViews: ->(left) do
12
12
  left.panels_horizontal height: 'matchParent', align: 'middle', childViews: ->(horizontal) do
13
- if params[:mode] == 'dialog'
13
+ case params[:mode]
14
+ when 'dialog'
14
15
  horizontal.button styleClass: 'link', text: 'cancel', onClick: ->(action) { action.dialogs_close }
16
+ when 'dialog_reload'
17
+ horizontal.button styleClass: 'link', text: 'back', onClick: ->(action) do
18
+ render 'json_ui/garage/actions/dialogs_show', json: json, action: action, dialog_mode: :reload
19
+ end
15
20
  end
16
21
  end
17
22
  end
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
data/config/routes.rb CHANGED
File without changes
File without changes
File without changes
File without changes
File without changes
data/lib/glib/crypt.rb CHANGED
File without changes
File without changes
File without changes
data/lib/glib/engine.rb CHANGED
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
data/lib/glib/value.rb CHANGED
File without changes
data/lib/glib/version.rb CHANGED
File without changes
data/lib/glib-web.rb CHANGED
File without changes
data/lib/tasks/db.rake CHANGED
File without changes
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: glib-web
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.11.9
4
+ version: 0.11.12
5
5
  platform: ruby
6
6
  authors:
7
7
  - ''
@@ -129,6 +129,7 @@ files:
129
129
  - app/views/json_ui/garage/_nav_menu.json.jbuilder
130
130
  - app/views/json_ui/garage/actions/_commands.json.jbuilder
131
131
  - app/views/json_ui/garage/actions/_dialogs.json.jbuilder
132
+ - app/views/json_ui/garage/actions/_dialogs_show.json.jbuilder
132
133
  - app/views/json_ui/garage/actions/_http.json.jbuilder
133
134
  - app/views/json_ui/garage/actions/_panels.json.jbuilder
134
135
  - app/views/json_ui/garage/actions/_reload.json.jbuilder
@@ -296,8 +297,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
296
297
  - !ruby/object:Gem::Version
297
298
  version: '0'
298
299
  requirements: []
299
- rubyforge_project:
300
- rubygems_version: 2.7.6
300
+ rubygems_version: 3.1.4
301
301
  signing_key:
302
302
  specification_version: 4
303
303
  summary: ''