rails_admin_authorized_fields 0.1.0 → 1.0.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
  SHA1:
3
- metadata.gz: 630ecc8455721679635659fe7beb2014b82324af
4
- data.tar.gz: c8e3ee562266ddf7b558e9f07af04bb4fe3b7fed
3
+ metadata.gz: cfc10142f5dda9f9ea86cf24a2e53ce73ffbcb8a
4
+ data.tar.gz: c76f3e89d0a435f250d48d97d92d82c9767c34e6
5
5
  SHA512:
6
- metadata.gz: 113fe183f863aed56520fbb77d1cfe8b9ae7b03f9dc3bc0a3ffe44bdd30c396410d614f7a730e261529d8e6e4297bef8b94d996ea127782fbcc07ddefdbaa42a
7
- data.tar.gz: e6f5cc1f0ba54387189ffc2077bf91e6bc0229934755e8965d61bbbf63cc826bcb77db148943503fc4bf7316efeb6de1b98509be9c173bc181e61a1209bcdbb6
6
+ metadata.gz: ccab6dc93d869fd9f355aa21da604c2799e75568211992cef35cb9180cf1f4d0aae24311b9a5438857796a68143b659f07804221dcb657ae6fa4c42d32c79ab4
7
+ data.tar.gz: 3d260de5a2ab2a616480fa20675d49a3f3382b56ab9572d1588079d00caba4e1f75f73de91c4e2537c49b7e1f41973c969685ef4988dfb45dda9f565a7305845
@@ -0,0 +1,25 @@
1
+ root = true
2
+
3
+ [*]
4
+ end_of_line = lf
5
+ insert_final_newline = true
6
+ trim_trailing_whitespace = true
7
+ tab_width = 2
8
+ indent_style = space
9
+ indent_size = 2
10
+
11
+ [**.bat]
12
+ end_of_line = crlf
13
+
14
+ [**.min.*]
15
+ indent_style = ignore
16
+ trim_trailing_whitespace = false
17
+ insert_final_newline = ignore
18
+
19
+ [*.slim]
20
+ insert_final_newline = false
21
+ trim_trailing_whitespace = false
22
+
23
+ [*.txt]
24
+ insert_final_newline = false
25
+ trim_trailing_whitespace = false
@@ -1 +1 @@
1
- 2.1.2
1
+ 2.2.2
data/README.md CHANGED
@@ -47,10 +47,14 @@ You can also use ```unauthorized_fields``` section in opposite of ```authorized_
47
47
  field :text_slug
48
48
  end
49
49
 
50
- Note: all fields are ```authorized``` by default.
50
+ Note: all fields are not ```authorized``` by default if any rules present.
51
51
 
52
52
  TODO: just a small changes needed to make ```authorized_fields``` section overridable in subsection (list, edit)
53
53
 
54
+ ## Changelog
55
+
56
+ 0.1.0 - changed default authorized logic. In 0.0.3 all fields were authorized by default. In 0.1.0 fields unauthorized when authorized_fields or unauthorized_fields sections are present.
57
+
54
58
  ## Contributing
55
59
 
56
60
  1. Fork it
@@ -1,5 +1,5 @@
1
1
  module RailsAdminAuthorizedFields
2
- module AuthorazedFieldsSection
2
+ module AuthorizedFieldsSection
3
3
  def initialize(parent)
4
4
  @allow_rules, @deny_rules = {}, {}
5
5
 
@@ -32,18 +32,23 @@ module RailsAdminAuthorizedFields
32
32
 
33
33
  def visible_fields
34
34
  return super if bindings.nil?
35
-
36
- super.select do |field|
37
- authorized = true
38
35
 
36
+ super.select do |field|
39
37
  rules = field.section.field_authorization_rules(field.name)
40
38
 
41
- rules[:allow].each do |rule|
42
- authorized &= instance_eval(&rule)
43
- end
39
+ if field.section.plugin_included?
40
+ authorized = rules[:allow].any? || rules[:deny].any?
41
+
42
+ rules[:allow].each do |rule|
43
+ authorized &= instance_eval(&rule)
44
+ end
45
+
46
+ rules[:deny].each do |rule|
47
+ authorized &= !instance_eval(&rule)
48
+ end
44
49
 
45
- rules[:deny].each do |rule|
46
- authorized &= !instance_eval(&rule)
50
+ else
51
+ authorized = true
47
52
  end
48
53
 
49
54
  authorized
@@ -51,9 +56,19 @@ module RailsAdminAuthorizedFields
51
56
  end
52
57
 
53
58
  protected
54
-
59
+
60
+ def plugin_included?( descendant = nil )
61
+ result = @allow_rules.any? || @deny_rules.any?
62
+
63
+ return result if result
64
+ return false if @parent.nil?
65
+ return false if self == descendant
66
+
67
+ @parent.plugin_included?( self )
68
+ end
69
+
55
70
  def field_authorization_rules(name)
56
- {
71
+ {
57
72
  allow: extract_rules(name, :allow_rules),
58
73
  deny: extract_rules(name, :deny_rules),
59
74
  }
@@ -64,7 +79,7 @@ module RailsAdminAuthorizedFields
64
79
 
65
80
  return rules[name] || [] if rules.any?
66
81
  return [] if @parent.nil?
67
- return [] if self == descendant
82
+ return [] if self == descendant
68
83
 
69
84
  @parent.extract_rules(name, kind, self)
70
85
  end
@@ -77,7 +92,7 @@ module RailsAdmin
77
92
  module Sections
78
93
  # Configuration of the show view for a new object
79
94
  class Base
80
- prepend RailsAdminAuthorizedFields::AuthorazedFieldsSection
95
+ prepend RailsAdminAuthorizedFields::AuthorizedFieldsSection
81
96
  end
82
97
  end
83
98
  end
@@ -1,3 +1,3 @@
1
1
  module RailsAdminAuthorizedFields
2
- VERSION = "0.1.0"
2
+ VERSION = "1.0.0"
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rails_admin_authorized_fields
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.0
4
+ version: 1.0.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Sergey Malykh
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-06-03 00:00:00.000000000 Z
11
+ date: 2015-05-26 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rails_admin
@@ -59,6 +59,7 @@ executables: []
59
59
  extensions: []
60
60
  extra_rdoc_files: []
61
61
  files:
62
+ - ".editorconfig"
62
63
  - ".gitignore"
63
64
  - ".ruby-gemset"
64
65
  - ".ruby-version"
@@ -90,7 +91,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
90
91
  version: '0'
91
92
  requirements: []
92
93
  rubyforge_project:
93
- rubygems_version: 2.2.2
94
+ rubygems_version: 2.4.6
94
95
  signing_key:
95
96
  specification_version: 4
96
97
  summary: Simplified authorization rules for rails_admin fields