mikras_utils 0.6.0 → 0.7.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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 3ec0c38f1246b0c0f580adc107c6251c70e9600bd08424d05e612c01ae9bd2de
4
- data.tar.gz: 2a9c833e5475ef646072f4a642309e33616202db3f18d1acc25b46fbb4d10fe2
3
+ metadata.gz: 1d9cab6de392fd41ef156d05bbdb1f586a02c7e569b25810f13ca64840dfd0ca
4
+ data.tar.gz: 0ecaf1ac1f7757d2680e4f2bd0ea85fbe1d14344aaa509040685dc796cba174d
5
5
  SHA512:
6
- metadata.gz: 264615a11fb958dc628e43e712e069d165640fc87865dd379678aefea9a0d8a16ca4bf0e55b373c53140cf9f53d06ff6c141427d858cb37c5b7300533c525b8d
7
- data.tar.gz: 87c06e2aa94737f4cababcb7b6154978b974a53b72a79e65a915827a34216179a86665da978a010dac65cfc22106a9d711d6d4ea1349fb07cc4a43a68af2c4d1
6
+ metadata.gz: 52fa9e2d857aad6dd3a437a1224157df5990ce164a28de50d7dad867be623c30bed7cb7d903a6331089977af0df8968fd3cc538b6fc219d65d314dd1a111efe5
7
+ data.tar.gz: fed5100c66ba9a843364f32fb21e7ee39cd83866794eaad63a54676c6d4c870d2ca77b0422537baf47289d3005cb0146f250f0d8ef5ea713e7d476e104fafb5c
@@ -44,6 +44,7 @@ module MkAcl
44
44
 
45
45
  def parse_tables(spec, tables)
46
46
  for table_name, actions in tables
47
+ actions.is_a?(Hash) or error "Syntax error around '#{actions}'"
47
48
  parent = actions.delete(:parent)
48
49
  domain = actions.delete(:domain)
49
50
  triggers = actions.key?(:triggers) ? actions.delete(:triggers) : true
@@ -55,21 +56,24 @@ module MkAcl
55
56
 
56
57
  def parse_actions(table, actions)
57
58
  for action_name, rules in actions
58
- constrain?(action_name, :insert, :select, :update, :delete, :attach) or
59
+ constrain?(action_name, :insert, :select, :update, :delete, :attach, :detach) or
59
60
  error "Illegal action '#{action_name}'"
60
- constrain?(rules, String, Array, Hash) or
61
- error "Illegal value for #{action} action '#{rules}'"
62
- action = Action.new(table, action_name)
63
-
64
- # Normalize rules
65
- case rules
66
- when Hash
67
- rules = [rules]
68
- when String
69
- rules = [{ roles: rules }]
70
- end
71
61
 
72
- parse_rules(action, rules)
62
+ for real_action_name in (action_name == :attach ? [:attach, :detach] : [action_name])
63
+ constrain?(rules, String, Array, Hash) or
64
+ error "Illegal value for #{action_name} action '#{rules}'"
65
+ action = Action.new(table, real_action_name)
66
+
67
+ # Normalize rules
68
+ case rules
69
+ when Hash
70
+ rules = [rules]
71
+ when String
72
+ rules = [{ roles: rules }]
73
+ end
74
+
75
+ parse_rules(action, rules)
76
+ end
73
77
  end
74
78
  end
75
79
 
@@ -176,7 +176,7 @@ module MkAcl
176
176
  attr_accessor :filter # Goes into the postgres policy, may be nil
177
177
  attr_accessor :assert # Goes into the postgres trigger, may be nil
178
178
  attr_accessor :fields # Only used for insert and update, nil otherwise
179
- attr_accessor :tables # Only used for attach, nil otherwise
179
+ attr_accessor :tables # Only used for attach and detach, nil otherwise
180
180
  attr_reader :ordinal
181
181
 
182
182
  # admin, internal, etc.
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module MikrasUtils
4
- VERSION = "0.6.0"
4
+ VERSION = "0.7.1"
5
5
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: mikras_utils
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.6.0
4
+ version: 0.7.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Claus Rasmussen
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2025-01-21 00:00:00.000000000 Z
11
+ date: 2025-02-11 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: pg_conn