grantinee 0.3.3 → 0.4.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
  SHA256:
3
- metadata.gz: bd59012e89ac1bad99cc95da8f1915b2c026fad022ab0e00740320cbcc26ce50
4
- data.tar.gz: f1f48a160ecc3745bf508f1615565b1a6996e8403294da7681c63fb1bcee766f
3
+ metadata.gz: 18bcce1973995afd674f4a71ac00e99faf7dfcfee9919bd7fdde72daa2e90adf
4
+ data.tar.gz: 43fea39c39305f2f413b36f15eb3e6ed23efc6f19eda2d39c23fe445e8d0cb5d
5
5
  SHA512:
6
- metadata.gz: a4a527b5f2cf5992a3bed8f290f20675e12c2f1f15913ea0f0abc3b2daf73211fa1887bf42743a6de3fd5747dddfce47dafb2bf229c11c2f86f6f3f554d64425
7
- data.tar.gz: c6c3af0d7e868aaf07f438901009cc1b7e5379d67e1719aeeb49aa07d6dff307a5457138d3d8a60c9dd14e17ac8b8fcc42dcd4aaf16a23ed27898681ee61f5b0
6
+ metadata.gz: 195731cbacfda40abc4e1b7aeb7b9f77c2ad51cca4b9718d93d8cc443b34628694ef2ab1f395dcab9a9778c8dbd1b9f8f00003d88e00e88e247e52bda0f1f40b
7
+ data.tar.gz: 4c562d81ad86fbb16ae5968c94c07bc50b48399a171b04e2fe58d5ba26d8e405b30d52ecd519f4e0f6dff118b2d41f9ba72cb8064eda4e029ee19e25486aba9f
@@ -10,9 +10,9 @@ Layout/EndAlignment:
10
10
 
11
11
  Lint/HandleExceptions:
12
12
  Enabled: false
13
-
13
+
14
14
  Metrics/AbcSize:
15
- Max: 20
15
+ Enabled: false
16
16
 
17
17
  Metrics/BlockLength:
18
18
  Exclude:
data/README.md CHANGED
@@ -126,4 +126,4 @@ The gem is available as open source under the terms of the [MIT License](https:/
126
126
 
127
127
  ## Code of Conduct
128
128
 
129
- Everyone interacting in the Grantinee project’s codebases, issue trackers, chat rooms and mailing lists is expected to follow the [code of conduct](https://github.com/[USERNAME]/grantinee/blob/master/CODE_OF_CONDUCT.md).
129
+ Everyone interacting in the Grantinee project’s codebases, issue trackers, chat rooms and mailing lists is expected to follow the [code of conduct](https://github.com/blinkist/grantinee/blob/master/CODE_OF_CONDUCT.md).
@@ -4,7 +4,7 @@ module Grantinee
4
4
  module Engine
5
5
  SUPPORTED_ENGINES = %w[mysql postgresql].freeze
6
6
 
7
- WHITELISTED_KINDS = %w[all usage select update insert].freeze
7
+ WHITELISTED_KINDS = %w[all usage select update insert delete execute].freeze
8
8
 
9
9
  class << self
10
10
  # Get appropriate engine class for the engine name
@@ -3,7 +3,7 @@
3
3
  module Grantinee
4
4
  module Engine
5
5
  class AbstractEngine
6
- NOT_IMPLEMENTED = "Not implemented".freeze
6
+ NOT_IMPLEMENTED = "Not implemented"
7
7
 
8
8
  def logger
9
9
  Grantinee.logger
@@ -33,7 +33,7 @@ module Grantinee
33
33
  run! query, data
34
34
  end
35
35
 
36
- def grant_permission!(data) # rubocop:disable Metrics/AbcSize
36
+ def grant_permission!(data)
37
37
  raise "Invalid permission kind" unless WHITELISTED_KINDS.include?(data[:kind]&.downcase)
38
38
 
39
39
  database = sanitize_column_name(data[:database])
@@ -42,9 +42,10 @@ module Grantinee
42
42
  user = sanitize_value(data[:user])
43
43
  host = sanitize_value(data[:host])
44
44
  fields = data[:fields].map { |v| sanitize_column_name(v.to_s) }.join(', ')
45
+ helper = (kind == "EXECUTE" ? " PROCEDURE " : "")
45
46
 
46
47
  query = if data[:fields].empty?
47
- "GRANT #{kind} ON #{database}.#{table} TO '#{user}'@'#{host}';"
48
+ "GRANT #{kind} ON #{helper}#{database}.#{table} TO '#{user}'@'#{host}';"
48
49
  else
49
50
  "GRANT #{kind}(#{fields}) ON #{database}.#{table} TO '#{user}'@'#{host}';"
50
51
  end
@@ -37,9 +37,10 @@ module Grantinee
37
37
  table = sanitize_table_name(data[:table])
38
38
  user = sanitize_column_name(data[:user])
39
39
  fields = data[:fields].map { |v| sanitize_column_name(v.to_s) }.join(', ')
40
+ helper = (kind == "EXECUTE" ? " FUNCTION " : "")
40
41
 
41
42
  query = if data[:fields].empty?
42
- "GRANT #{kind} ON #{table} TO #{user};"
43
+ "GRANT #{kind} ON #{helper}#{table} TO #{user};"
43
44
  else
44
45
  "GRANT #{kind}(#{fields}) ON TABLE #{table} TO #{user};"
45
46
  end
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Grantinee
4
- VERSION = '0.3.3'.freeze
4
+ VERSION = '0.4.0'
5
5
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: grantinee
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.3.3
4
+ version: 0.4.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Paweł Komarnicki
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: exe
11
11
  cert_chain: []
12
- date: 2018-06-25 00:00:00.000000000 Z
12
+ date: 2018-06-27 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: bundler