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 +4 -4
- data/README.md +1 -0
- data/lib/posgra/cli/grant.rb +2 -0
- data/lib/posgra/cli/helper.rb +2 -0
- data/lib/posgra/driver.rb +10 -16
- data/lib/posgra/dsl/grants/role/schema.rb +2 -0
- data/lib/posgra/version.rb +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 5f3f1ccfe695905dd0801589a51ed3f6036b66a6
|
4
|
+
data.tar.gz: b6925f966f8eab343359307709fa42a498fa7629
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
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
|
+
[](https://badge.fury.io/rb/posgra)
|
7
8
|
[](https://travis-ci.org/winebarrel/posgra)
|
8
9
|
|
9
10
|
## Installation
|
data/lib/posgra/cli/grant.rb
CHANGED
@@ -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
|
data/lib/posgra/cli/helper.rb
CHANGED
data/lib/posgra/driver.rb
CHANGED
@@ -229,9 +229,15 @@ class Posgra::Driver
|
|
229
229
|
AND pg_class.relkind NOT IN ('i')
|
230
230
|
SQL
|
231
231
|
|
232
|
-
|
233
|
-
|
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
|
-
|
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]
|
data/lib/posgra/version.rb
CHANGED
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.
|
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-
|
11
|
+
date: 2016-02-04 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: pg
|