rails_admin_authorized_fields 0.1.0 → 1.0.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
  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