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 +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
|
+
[![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
|
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
|