posgra 0.1.2 → 0.1.3

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: 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