gazer 0.3.6 → 0.3.8

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.
@@ -0,0 +1,123 @@
1
+ # The MIT License (MIT)
2
+
3
+ # Copyright (c) 2023 Mike DeAngelo Google, Inc.
4
+
5
+ # Permission is hereby granted, free of charge, to any person obtaining a copy of
6
+ # this software and associated documentation files (the "Software"), to deal in
7
+ # the Software without restriction, including without limitation the rights to
8
+ # use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
9
+ # the Software, and to permit persons to whom the Software is furnished to do so,
10
+ # subject to the following conditions:
11
+
12
+ # The above copyright notice and this permission notice shall be included in all
13
+ # copies or substantial portions of the Software.
14
+
15
+ # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ # IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
17
+ # FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
18
+ # COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
19
+ # IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
20
+ # CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
21
+
22
+ # frozen_string_literal: true
23
+
24
+ module Gzr
25
+ module Permission
26
+ module Set
27
+
28
+ def all_permission_sets(fields=nil)
29
+ req = {}
30
+ req[:fields] = fields if fields
31
+ begin
32
+ return @sdk.all_permission_sets(req)
33
+ rescue LookerSDK::NotFound => e
34
+ return nil
35
+ rescue LookerSDK::Error => e
36
+ say_error "Error querying all_permission_sets(#{JSON.pretty_generate(req)})"
37
+ say_error e
38
+ raise
39
+ end
40
+ end
41
+
42
+ def cat_permission_set(set_id, fields=nil)
43
+ req = {}
44
+ req[:fields] = fields if fields
45
+ begin
46
+ return @sdk.permission_set(set_id,req)&.to_attrs
47
+ rescue LookerSDK::NotFound => e
48
+ return nil
49
+ rescue LookerSDK::Error => e
50
+ say_error "Error querying permission_set(#{set_id},#{JSON.pretty_generate(req)})"
51
+ say_error e
52
+ raise
53
+ end
54
+ end
55
+
56
+ def trim_permission_set(data)
57
+ trimmed = data.select do |k,v|
58
+ (keys_to_keep('update_permission_set') + [:id,:built_in]).include? k
59
+ end
60
+ trimmed
61
+ end
62
+
63
+ def search_permission_sets(fields: nil, sorts: nil, id: nil, name: nil, all_access: nil, built_in: nil, filter_or: nil)
64
+ data = []
65
+ begin
66
+ req = {}
67
+ req[:fields] = fields unless fields.nil?
68
+ req[:sorts] = sorts unless sorts.nil?
69
+ req[:id] = id unless id.nil?
70
+ req[:name] = name unless name.nil?
71
+ req[:all_access] = all_access unless all_access.nil?
72
+ req[:built_in] = built_in unless built_in.nil?
73
+ req[:filter_or] = filter_or unless filter_or.nil?
74
+ req[:limit] = 64
75
+ loop do
76
+ page = @sdk.search_permission_sets(req)
77
+ data+=page
78
+ break unless page.length == req[:limit]
79
+ req[:offset] = (req[:offset] || 0) + req[:limit]
80
+ end
81
+ rescue LookerSDK::NotFound => e
82
+ # do nothing
83
+ rescue LookerSDK::Error => e
84
+ say_error "Error calling search_permission_sets(#{JSON.pretty_generate(req)})"
85
+ say_error e
86
+ raise
87
+ end
88
+ data
89
+ end
90
+
91
+ def update_permission_set(permission_set_id, data)
92
+ begin
93
+ return @sdk.update_permission_set(permission_set_id, data)&.to_attrs
94
+ rescue LookerSDK::Error => e
95
+ say_error "Error calling update_permission_set(#{permission_set_id},#{JSON.pretty_generate(data)})"
96
+ say_error e
97
+ raise
98
+ end
99
+ end
100
+
101
+ def create_permission_set(data)
102
+ begin
103
+ return @sdk.create_permission_set(data)&.to_attrs
104
+ rescue LookerSDK::Error => e
105
+ say_error "Error calling create_permission_set(#{JSON.pretty_generate(data)})"
106
+ say_error e
107
+ raise
108
+ end
109
+ end
110
+
111
+ def delete_permission_set(permission_set_id)
112
+ begin
113
+ return @sdk.delete_permission_set(permission_set_id)
114
+ rescue LookerSDK::Error => e
115
+ say_error "Error calling delete_permission_set(#{permission_set_id}})"
116
+ say_error e
117
+ raise
118
+ end
119
+ end
120
+
121
+ end
122
+ end
123
+ end
@@ -22,7 +22,7 @@
22
22
  # frozen_string_literal: true
23
23
 
24
24
  module Gzr
25
- module Permissions
25
+ module Permission
26
26
 
27
27
  def query_all_permissions()
28
28
  data = nil
@@ -53,6 +53,18 @@ module Gzr
53
53
  end
54
54
  data
55
55
  end
56
+ def trim_role(data)
57
+ trimmed = data.select do |k,v|
58
+ (keys_to_keep('create_role') + [:id]).include? k
59
+ end
60
+ trimmed[:permission_set] = data[:permission_set].select do |k,v|
61
+ (keys_to_keep('create_permission_set') + [:id,:built_in,:all_access]).include? k
62
+ end
63
+ trimmed[:model_set] = data[:model_set].select do |k,v|
64
+ (keys_to_keep('create_model_set') + [:id,:built_in,:all_access]).include? k
65
+ end
66
+ trimmed
67
+ end
56
68
  def delete_role(role_id)
57
69
  data = nil
58
70
  begin
@@ -124,5 +136,16 @@ module Gzr
124
136
  end
125
137
  data
126
138
  end
139
+ def create_role(name,pset,mset)
140
+ req = { name: name, permission_set_id: pset, model_set_id: mset }
141
+ begin
142
+ return @sdk.create_role(req)&.to_attrs
143
+ rescue LookerSDK::Error => e
144
+ say_error "Unable to call create_role(#{JSON.pretty_generate(req)})"
145
+ say_error e
146
+ raise
147
+ end
148
+ end
149
+
127
150
  end
128
151
  end
data/lib/gzr/version.rb CHANGED
@@ -20,5 +20,5 @@
20
20
  # CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
21
21
 
22
22
  module Gzr
23
- VERSION = '0.3.6'.freeze
23
+ VERSION = '0.3.8'.freeze
24
24
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: gazer
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.3.6
4
+ version: 0.3.8
5
5
  platform: ruby
6
6
  authors:
7
7
  - Mike DeAngelo
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2023-05-09 00:00:00.000000000 Z
11
+ date: 2023-05-16 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: tty-reader
@@ -325,8 +325,19 @@ files:
325
325
  - lib/gzr/commands/model/cat.rb
326
326
  - lib/gzr/commands/model/import.rb
327
327
  - lib/gzr/commands/model/ls.rb
328
- - lib/gzr/commands/permissions.rb
329
- - lib/gzr/commands/permissions/ls.rb
328
+ - lib/gzr/commands/model/set.rb
329
+ - lib/gzr/commands/model/set/cat.rb
330
+ - lib/gzr/commands/model/set/import.rb
331
+ - lib/gzr/commands/model/set/ls.rb
332
+ - lib/gzr/commands/model/set/rm.rb
333
+ - lib/gzr/commands/permission.rb
334
+ - lib/gzr/commands/permission/ls.rb
335
+ - lib/gzr/commands/permission/set.rb
336
+ - lib/gzr/commands/permission/set/cat.rb
337
+ - lib/gzr/commands/permission/set/import.rb
338
+ - lib/gzr/commands/permission/set/ls.rb
339
+ - lib/gzr/commands/permission/set/rm.rb
340
+ - lib/gzr/commands/permission/tree.rb
330
341
  - lib/gzr/commands/plan.rb
331
342
  - lib/gzr/commands/plan/cat.rb
332
343
  - lib/gzr/commands/plan/disable.rb
@@ -349,6 +360,7 @@ files:
349
360
  - lib/gzr/commands/query/runquery.rb
350
361
  - lib/gzr/commands/role.rb
351
362
  - lib/gzr/commands/role/cat.rb
363
+ - lib/gzr/commands/role/create.rb
352
364
  - lib/gzr/commands/role/group_add.rb
353
365
  - lib/gzr/commands/role/group_ls.rb
354
366
  - lib/gzr/commands/role/group_rm.rb
@@ -379,7 +391,9 @@ files:
379
391
  - lib/gzr/modules/group.rb
380
392
  - lib/gzr/modules/look.rb
381
393
  - lib/gzr/modules/model.rb
382
- - lib/gzr/modules/permissions.rb
394
+ - lib/gzr/modules/model/set.rb
395
+ - lib/gzr/modules/permission.rb
396
+ - lib/gzr/modules/permission/set.rb
383
397
  - lib/gzr/modules/plan.rb
384
398
  - lib/gzr/modules/project.rb
385
399
  - lib/gzr/modules/role.rb