warrant 1.0.0 → 1.1.0
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/lib/warrant/models/tenant.rb +66 -0
- data/lib/warrant/models/user.rb +84 -2
- data/lib/warrant/version.rb +1 -1
- metadata +6 -6
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 6fc7f30432a9ab516978da52e77811011ee0625a819124ad8dcb5b20d8610a34
|
4
|
+
data.tar.gz: 54dc068a58982fc5f8fdcc2d781ce5b6b5ec320c3f7a5dfdbd8338eaa20fac93
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 4e892e951b8107a9d6bdeb621a1ee2fb1674c8a9195eb7271e127f77961d5cfa8fe673e93cfd6bb2784452630ade845b65aa3455379c169580ea8b32fb9dad2f
|
7
|
+
data.tar.gz: b7e7c396ff14cbc500b9bf1e1882db09b84002e78fc2ffa11a019de0cc3da25d60766f78b6650075baa648125c87ed9ed48e8cf250cc2a41818fef5b3d2b9209
|
@@ -164,5 +164,71 @@ module Warrant
|
|
164
164
|
def update(params = {})
|
165
165
|
return Tenant.update(tenant_id, params)
|
166
166
|
end
|
167
|
+
|
168
|
+
# Add a user to a tenant
|
169
|
+
#
|
170
|
+
# @param user_id [String] The user_id of the user you want to add to the tenant.
|
171
|
+
#
|
172
|
+
# @return [Warrant] warrant assigning user to the tenant
|
173
|
+
#
|
174
|
+
# @raise [Warrant::InternalError]
|
175
|
+
# @raise [Warrant::InvalidParameterError]
|
176
|
+
# @raise [Warrant::InvalidRequestError]
|
177
|
+
# @raise [Warrant::NotFoundError]
|
178
|
+
# @raise [Warrant::UnauthorizedError]
|
179
|
+
# @raise [Warrant::WarrantError]
|
180
|
+
def add_user(user_id)
|
181
|
+
return User.add_to_tenant(tenant_id, user_id)
|
182
|
+
end
|
183
|
+
|
184
|
+
# Remove a user from a tenant
|
185
|
+
#
|
186
|
+
# @param user_id [String] The user_id of the user you want to remove from the tenant.
|
187
|
+
#
|
188
|
+
# @return [nil] if remove was successful
|
189
|
+
#
|
190
|
+
# @raise [Warrant::InternalError]
|
191
|
+
# @raise [Warrant::InvalidParameterError]
|
192
|
+
# @raise [Warrant::InvalidRequestError]
|
193
|
+
# @raise [Warrant::NotFoundError]
|
194
|
+
# @raise [Warrant::UnauthorizedError]
|
195
|
+
# @raise [Warrant::WarrantError]
|
196
|
+
def remove_user(user_id)
|
197
|
+
return User.remove_from_tenant(tenant_id, user_id)
|
198
|
+
end
|
199
|
+
|
200
|
+
# List all tenants for a user
|
201
|
+
#
|
202
|
+
# @param user_id [String] The user_id of the user from which to fetch tenants
|
203
|
+
#
|
204
|
+
# @return [Array<Tenant>] all tenants for the user
|
205
|
+
#
|
206
|
+
# @raise [Warrant::InternalError]
|
207
|
+
# @raise [Warrant::InvalidRequestError]
|
208
|
+
# @raise [Warrant::UnauthorizedError]
|
209
|
+
# @raise [Warrant::WarrantError]
|
210
|
+
def self.list_for_user(user_id)
|
211
|
+
res = APIOperations.get(URI.parse("#{::Warrant.config.api_base}/v1/users/#{user_id}/tenants"))
|
212
|
+
|
213
|
+
case res
|
214
|
+
when Net::HTTPSuccess
|
215
|
+
tenants = JSON.parse(res.body)
|
216
|
+
tenants.map{ |tenant| Tenant.new(tenant['tenantId'], tenant['name'], tenant['createdAt']) }
|
217
|
+
else
|
218
|
+
APIOperations.raise_error(res)
|
219
|
+
end
|
220
|
+
end
|
221
|
+
|
222
|
+
# List all users for a tenant
|
223
|
+
#
|
224
|
+
# @return [Array<User>] all users for the tenant
|
225
|
+
#
|
226
|
+
# @raise [Warrant::InternalError]
|
227
|
+
# @raise [Warrant::InvalidRequestError]
|
228
|
+
# @raise [Warrant::UnauthorizedError]
|
229
|
+
# @raise [Warrant::WarrantError]
|
230
|
+
def list_users
|
231
|
+
return User.list_for_tenant(tenant_id)
|
232
|
+
end
|
167
233
|
end
|
168
234
|
end
|
data/lib/warrant/models/user.rb
CHANGED
@@ -249,7 +249,6 @@ module Warrant
|
|
249
249
|
|
250
250
|
# Assign a permission to a user
|
251
251
|
#
|
252
|
-
# @param user_id [String] The user_id of the user you want to assign a permission to.
|
253
252
|
# @param permission_id [String] The permission_id of the permission you want to assign to a user.
|
254
253
|
#
|
255
254
|
# @return [Permission] assigned permission
|
@@ -270,7 +269,6 @@ module Warrant
|
|
270
269
|
|
271
270
|
# Remove a permission from a user
|
272
271
|
#
|
273
|
-
# @param user_id [String] The user_id of the user you want to assign a permission to.
|
274
272
|
# @param permission_id [String] The permission_id of the permission you want to assign to a user.
|
275
273
|
#
|
276
274
|
# @return [nil] if remove was successful
|
@@ -319,5 +317,89 @@ module Warrant
|
|
319
317
|
}]
|
320
318
|
)
|
321
319
|
end
|
320
|
+
|
321
|
+
# Add a user to a tenant
|
322
|
+
#
|
323
|
+
# @param tenant_id [String] The tenant_id of the tenant you want to assign a user to.
|
324
|
+
# @param user_id [String] The user_id of the user you want to add to the tenant.
|
325
|
+
#
|
326
|
+
# @return [Warrant] warrant assigning user to the tenant
|
327
|
+
#
|
328
|
+
# @raise [Warrant::InternalError]
|
329
|
+
# @raise [Warrant::InvalidParameterError]
|
330
|
+
# @raise [Warrant::InvalidRequestError]
|
331
|
+
# @raise [Warrant::NotFoundError]
|
332
|
+
# @raise [Warrant::UnauthorizedError]
|
333
|
+
# @raise [Warrant::WarrantError]
|
334
|
+
def self.add_to_tenant(tenant_id, user_id)
|
335
|
+
res = APIOperations.post(URI.parse("#{::Warrant.config.api_base}/v1/tenants/#{tenant_id}/users/#{user_id}"))
|
336
|
+
|
337
|
+
case res
|
338
|
+
when Net::HTTPSuccess
|
339
|
+
res_json = JSON.parse(res.body)
|
340
|
+
subject = Subject.new(res_json['subject']['objectType'], res_json['subject']['objectId'])
|
341
|
+
Warrant.new(res_json['objectType'], res_json['objectId'], res_json['relation'], subject)
|
342
|
+
else
|
343
|
+
APIOperations.raise_error(res)
|
344
|
+
end
|
345
|
+
end
|
346
|
+
|
347
|
+
# Remove a user from a tenant
|
348
|
+
#
|
349
|
+
# @param tenant_id [String] The tenant_id of the tenant you want to remove the user from.
|
350
|
+
# @param user_id [String] The user_id of the user you want to remove from the tenant.
|
351
|
+
#
|
352
|
+
# @return [nil] if remove was successful
|
353
|
+
#
|
354
|
+
# @raise [Warrant::InternalError]
|
355
|
+
# @raise [Warrant::InvalidParameterError]
|
356
|
+
# @raise [Warrant::InvalidRequestError]
|
357
|
+
# @raise [Warrant::NotFoundError]
|
358
|
+
# @raise [Warrant::UnauthorizedError]
|
359
|
+
# @raise [Warrant::WarrantError]
|
360
|
+
def self.remove_from_tenant(tenant_id, user_id)
|
361
|
+
res = APIOperations.delete(URI.parse("#{::Warrant.config.api_base}/v1/tenants/#{tenant_id}/users/#{user_id}"))
|
362
|
+
|
363
|
+
case res
|
364
|
+
when Net::HTTPSuccess
|
365
|
+
return
|
366
|
+
else
|
367
|
+
APIOperations.raise_error(res)
|
368
|
+
end
|
369
|
+
end
|
370
|
+
|
371
|
+
# List all users for a tenant
|
372
|
+
#
|
373
|
+
# @param tenant_id [String] The tenant_id of the tenant from which to fetch users
|
374
|
+
#
|
375
|
+
# @return [Array<User>] all users for the tenant
|
376
|
+
#
|
377
|
+
# @raise [Warrant::InternalError]
|
378
|
+
# @raise [Warrant::InvalidRequestError]
|
379
|
+
# @raise [Warrant::UnauthorizedError]
|
380
|
+
# @raise [Warrant::WarrantError]
|
381
|
+
def self.list_for_tenant(tenant_id)
|
382
|
+
res = APIOperations.get(URI.parse("#{::Warrant.config.api_base}/v1/tenants/#{tenant_id}/users"))
|
383
|
+
|
384
|
+
case res
|
385
|
+
when Net::HTTPSuccess
|
386
|
+
users = JSON.parse(res.body)
|
387
|
+
users.map{ |user| User.new(user['userId'], user['email'], user['createdAt']) }
|
388
|
+
else
|
389
|
+
APIOperations.raise_error(res)
|
390
|
+
end
|
391
|
+
end
|
392
|
+
|
393
|
+
# List all tenants for a user
|
394
|
+
#
|
395
|
+
# @return [Array<Tenant>] all tenants for the user
|
396
|
+
#
|
397
|
+
# @raise [Warrant::InternalError]
|
398
|
+
# @raise [Warrant::InvalidRequestError]
|
399
|
+
# @raise [Warrant::UnauthorizedError]
|
400
|
+
# @raise [Warrant::WarrantError]
|
401
|
+
def list_tenants
|
402
|
+
return Tenant.list_for_user(user_id)
|
403
|
+
end
|
322
404
|
end
|
323
405
|
end
|
data/lib/warrant/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: warrant
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.
|
4
|
+
version: 1.1.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Warrant
|
8
|
-
autorequire:
|
8
|
+
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2022-07-
|
11
|
+
date: 2022-07-15 00:00:00.000000000 Z
|
12
12
|
dependencies: []
|
13
13
|
description: Ruby library for the Warrant API at https://warrant.dev.
|
14
14
|
email: hello@warrant.dev
|
@@ -46,7 +46,7 @@ metadata:
|
|
46
46
|
source_code_uri: https://github.com/warrant-dev/warrant-ruby
|
47
47
|
changelog_uri: https://github.com/warrant-dev/warrant-ruby/CHANGELOG.md
|
48
48
|
documentation_uri: https://docs.warrant.dev/
|
49
|
-
post_install_message:
|
49
|
+
post_install_message:
|
50
50
|
rdoc_options: []
|
51
51
|
require_paths:
|
52
52
|
- lib
|
@@ -61,8 +61,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
61
61
|
- !ruby/object:Gem::Version
|
62
62
|
version: '0'
|
63
63
|
requirements: []
|
64
|
-
rubygems_version: 3.
|
65
|
-
signing_key:
|
64
|
+
rubygems_version: 3.3.11
|
65
|
+
signing_key:
|
66
66
|
specification_version: 4
|
67
67
|
summary: Warrant Ruby Library
|
68
68
|
test_files: []
|