posgra 0.1.2 → 0.1.3

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: 45bd0c913db79c0e2a8dfceec4ef29a7e50d1091
4
- data.tar.gz: 608f5d5835f1ef67ed1eec25d13e929115b83819
3
+ metadata.gz: 5f3f1ccfe695905dd0801589a51ed3f6036b66a6
4
+ data.tar.gz: b6925f966f8eab343359307709fa42a498fa7629
5
5
  SHA512:
6
- metadata.gz: 0dee75ac4f30b22324282b739a9c5c9d1da5780f3ac8ae6a6459dfb6928e54d4fd880ea02e5874058f8d66f5404bdf0ee1acd5a86a62f529393017a58bcd1d75
7
- data.tar.gz: 7ea2c5b16447487660a6373cba514e385bee0f2b42c0abefb44091e98c975412dd0f4e8f6d3e93e23ba54c114c67f4fb8374e87dd71ee8ab3d89de27216fa7a8
6
+ metadata.gz: 509de56b2794b4461ef03c9b73680bf4c486c85c5ac1c58e26bd8f75abd1faeb0999a2244e19b6ad2b04938a59acc6dea92ffec0d9930aadfd30679f3c75649c
7
+ data.tar.gz: cb9f0f79f6d323a14cbe60d46e6d401dd39824a8f48a8ed67befe5b35642e3f1d191c396e4e28bfb8ef53bf80aae50f346548f394549ab3a64224c3480874319
data/README.md CHANGED
@@ -4,6 +4,7 @@ Posgra is a tool to manage PostgreSQL roles/permissions.
4
4
 
5
5
  It defines the state of PostgreSQL roles/permissions using Ruby DSL, and updates roles/permissions according to DSL.
6
6
 
7
+ [![Gem Version](https://badge.fury.io/rb/posgra.svg)](https://badge.fury.io/rb/posgra)
7
8
  [![Build Status](https://travis-ci.org/winebarrel/posgra.svg?branch=master)](https://travis-ci.org/winebarrel/posgra)
8
9
 
9
10
  ## Installation
@@ -8,6 +8,8 @@ class Posgra::CLI::Grant < Thor
8
8
  class_option :'exclude-schema'
9
9
  class_option :'include-role'
10
10
  class_option :'exclude-role'
11
+ class_option :'include-object'
12
+ class_option :'exclude-object'
11
13
 
12
14
  desc 'apply FILE', 'Apply grants'
13
15
  option :'dry-run', :type => :boolean, :default => false
@@ -4,6 +4,8 @@ module Posgra::CLI::Helper
4
4
  :exclude_schema,
5
5
  :include_role,
6
6
  :exclude_role,
7
+ :include_object,
8
+ :exclude_object,
7
9
  ]
8
10
 
9
11
  def check_fileanem(file)
@@ -229,9 +229,15 @@ class Posgra::Driver
229
229
  AND pg_class.relkind NOT IN ('i')
230
230
  SQL
231
231
 
232
- rs.map do |row|
233
- row.fetch('relname')
232
+ objects = []
233
+
234
+ rs.each do |row|
235
+ relname = row.fetch('relname')
236
+ next unless matched?(relname, @options[:include_object], @options[:exclude_object])
237
+ objects << relname
234
238
  end
239
+
240
+ objects
235
241
  end
236
242
 
237
243
  def describe_users
@@ -293,6 +299,7 @@ class Posgra::Driver
293
299
  relacl = row.fetch('relacl')
294
300
  usename = row.fetch('usename')
295
301
 
302
+ next unless matched?(relname, @options[:include_object], @options[:exclude_object])
296
303
  next unless matched?(nspname, @options[:include_schema], @options[:exclude_schema])
297
304
 
298
305
  parse_aclitems(relacl, usename).each do |aclitem|
@@ -308,19 +315,6 @@ class Posgra::Driver
308
315
  grants_by_role
309
316
  end
310
317
 
311
- def describe_schemas
312
- rs = @client.exec <<-SQL
313
- SELECT
314
- nspname
315
- FROM
316
- pg_namespace
317
- SQL
318
-
319
- rs.map do |row|
320
- row.fetch('nspname')
321
- end
322
- end
323
-
324
318
  private
325
319
 
326
320
  def parse_aclitems(aclitems, owner)
@@ -341,7 +335,7 @@ class Posgra::Driver
341
335
 
342
336
  def expand_privileges(privileges)
343
337
  options_by_privilege = {}
344
- p
338
+
345
339
  privileges.scan(/([a-z])(\*)?/i).each do |privilege_type_char,is_grantable|
346
340
  privilege_type = PRIVILEGE_TYPES[privilege_type_char]
347
341
 
@@ -1,6 +1,7 @@
1
1
  class Posgra::DSL::Grants::Role::Schema
2
2
  include Posgra::Logger::Helper
3
3
  include Posgra::TemplateHelper
4
+ include Posgra::Utils::Helper
4
5
 
5
6
  attr_reader :result
6
7
 
@@ -15,6 +16,7 @@ class Posgra::DSL::Grants::Role::Schema
15
16
  def on(name, options = {}, &block)
16
17
  unless name.is_a?(Regexp)
17
18
  name = name.to_s
19
+ return unless matched?(name, @options[:include_object], @options[:exclude_object])
18
20
  end
19
21
 
20
22
  if options[:expired]
@@ -1,3 +1,3 @@
1
1
  module Posgra
2
- VERSION = "0.1.2"
2
+ VERSION = "0.1.3"
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: posgra
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.2
4
+ version: 0.1.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - winebarrel
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2016-01-31 00:00:00.000000000 Z
11
+ date: 2016-02-04 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: pg