Skip to content

Commit b4e1fca

Browse files
authored
Add default relation to assign/remove methods (#19)
1 parent 55303bf commit b4e1fca

File tree

7 files changed

+56
-56
lines changed

7 files changed

+56
-56
lines changed

test/test_live.py

Lines changed: 20 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -293,7 +293,7 @@ def test_multitenancy_example(self):
293293
self.assertEqual(len(tenant1_users_list.results), 0)
294294

295295
# Assign user1 -> tenant1
296-
tenant1.assign_user(user1.id, "member")
296+
tenant1.assign_user(user1.id)
297297

298298
user1_tenants_list = warrant.Tenant.list_for_user(user1.id, {"limit": 100}, {"Warrant-Token": "latest"})
299299
self.assertEqual(len(user1_tenants_list.results), 1)
@@ -306,7 +306,7 @@ def test_multitenancy_example(self):
306306
self.assertEqual(tenant1_users_list.results[0].meta, {})
307307

308308
# Remove user1 -> tenant1
309-
tenant1.remove_user(user1.id, "member")
309+
tenant1.remove_user(user1.id)
310310

311311
user1_tenants_list = warrant.Tenant.list_for_user(user1.id, {"limit": 100}, {"Warrant-Token": "latest"})
312312
self.assertEqual(len(user1_tenants_list.results), 0)
@@ -346,8 +346,8 @@ def test_rbac_example(self):
346346
self.assertEqual(admin_user_has_permission, False)
347347

348348
# Assign 'create-report' -> admin role -> admin user
349-
admin_role.assign_permission(create_permission.id, "member")
350-
admin_user.assign_role(admin_role.id, "member")
349+
admin_role.assign_permission(create_permission.id)
350+
admin_user.assign_role(admin_role.id)
351351

352352
admin_user_has_permission = admin_user.has_permission(create_permission.id, {"Warrant-Token": "latest"})
353353
self.assertEqual(admin_user_has_permission, True)
@@ -363,8 +363,8 @@ def test_rbac_example(self):
363363
self.assertEqual(admin_role_permissions_list.results[0].meta, {"name": "Create Report", "description": "Permission to create reports"})
364364

365365
# Remove 'create-report' -> admin role -> admin user
366-
admin_role.remove_permission(create_permission.id, "member")
367-
admin_user.remove_role(admin_role.id, "member")
366+
admin_role.remove_permission(create_permission.id)
367+
admin_user.remove_role(admin_role.id)
368368

369369
admin_user_has_permission = admin_user.has_permission(create_permission.id, {"Warrant-Token": "latest"})
370370
self.assertEqual(admin_user_has_permission, False)
@@ -382,7 +382,7 @@ def test_rbac_example(self):
382382
viewer_user_permissions_list = warrant.Permission.list_for_user(viewer_user.id, {"limit": 100}, {"Warrant-Token": "latest"})
383383
self.assertEqual(len(viewer_user_permissions_list.results), 0)
384384

385-
viewer_user.assign_permission(view_permission.id, "member")
385+
viewer_user.assign_permission(view_permission.id)
386386

387387
viewer_user_has_permission = viewer_user.has_permission(view_permission.id, {"Warrant-Token": "latest"})
388388
self.assertEqual(viewer_user_has_permission, True)
@@ -392,7 +392,7 @@ def test_rbac_example(self):
392392
self.assertEqual(viewer_user_permissions_list.results[0].object_id, view_permission.id)
393393
self.assertEqual(viewer_user_permissions_list.results[0].meta, {"name": "View Report", "description": "Permission to view reports"})
394394

395-
viewer_user.remove_permission(view_permission.id, "member")
395+
viewer_user.remove_permission(view_permission.id)
396396

397397
viewer_user_has_permission = viewer_user.has_permission(view_permission.id, {"Warrant-Token": "latest"})
398398
self.assertEqual(viewer_user_has_permission, False)
@@ -435,7 +435,7 @@ def test_pricing_tiers_features_and_users_example(self):
435435
paid_user_features_list = warrant.Feature.list_for_user(paid_user.id, {"limit": 100}, {"Warrant-Token": "latest"})
436436
self.assertEqual(len(paid_user_features_list.results), 0)
437437

438-
paid_user.assign_feature(custom_feature.id, "member")
438+
paid_user.assign_feature(custom_feature.id)
439439

440440
paid_user_has_feature = paid_user.has_feature(custom_feature.id, {"Warrant-Token": "latest"})
441441
self.assertEqual(paid_user_has_feature, True)
@@ -445,7 +445,7 @@ def test_pricing_tiers_features_and_users_example(self):
445445
self.assertEqual(paid_user_features_list.results[0].object_id, "custom-feature")
446446
self.assertEqual(paid_user_features_list.results[0].meta, {"name": "Custom Feature"})
447447

448-
paid_user.remove_feature(custom_feature.id, "member")
448+
paid_user.remove_feature(custom_feature.id)
449449

450450
paid_user_has_feature = paid_user.has_feature(custom_feature.id, {"Warrant-Token": "latest"})
451451
self.assertEqual(paid_user_has_feature, False)
@@ -463,8 +463,8 @@ def test_pricing_tiers_features_and_users_example(self):
463463
free_user_tiers_list = warrant.PricingTier.list_for_user(free_user.id, {"limit": 100}, {"Warrant-Token": "latest"})
464464
self.assertEqual(len(free_user_tiers_list.results), 0)
465465

466-
free_tier.assign_feature(feature1.id, "member")
467-
free_user.assign_pricing_tier(free_tier.id, "member")
466+
free_tier.assign_feature(feature1.id)
467+
free_user.assign_pricing_tier(free_tier.id)
468468

469469
free_user_has_feature = free_user.has_feature(feature1.id, {"Warrant-Token": "latest"})
470470
self.assertEqual(free_user_has_feature, True)
@@ -479,8 +479,8 @@ def test_pricing_tiers_features_and_users_example(self):
479479
self.assertEqual(free_user_tiers_list.results[0].object_id, "free")
480480
self.assertEqual(free_user_tiers_list.results[0].meta, {"name": "Free Tier"})
481481

482-
free_tier.remove_feature(feature1.id, "member")
483-
free_user.remove_pricing_tier(free_tier.id, "member")
482+
free_tier.remove_feature(feature1.id)
483+
free_user.remove_pricing_tier(free_tier.id)
484484

485485
free_user_has_feature = free_user.has_feature(feature1.id, {"Warrant-Token": "latest"})
486486
self.assertEqual(free_user_has_feature, False)
@@ -528,7 +528,7 @@ def test_pricing_tiers_features_and_tenants_example(self):
528528
paid_tenant_features_list = paid_tenant.list_features({"limit": 100}, {"Warrant-Token": "latest"})
529529
self.assertEqual(len(paid_tenant_features_list.results), 0)
530530

531-
paid_tenant.assign_feature(custom_feature.id, "member")
531+
paid_tenant.assign_feature(custom_feature.id)
532532

533533
paid_tenant_has_feature = paid_tenant.has_feature(custom_feature.id, {"Warrant-Token": "latest"})
534534
self.assertEqual(paid_tenant_has_feature, True)
@@ -538,7 +538,7 @@ def test_pricing_tiers_features_and_tenants_example(self):
538538
self.assertEqual(paid_tenant_features_list.results[0].object_id, "custom-feature")
539539
self.assertEqual(paid_tenant_features_list.results[0].meta, {"name": "Custom Feature"})
540540

541-
paid_tenant.remove_feature(custom_feature.id, "member")
541+
paid_tenant.remove_feature(custom_feature.id)
542542

543543
paid_tenant_has_feature = paid_tenant.has_feature(custom_feature.id, {"Warrant-Token": "latest"})
544544
self.assertEqual(paid_tenant_has_feature, False)
@@ -556,8 +556,8 @@ def test_pricing_tiers_features_and_tenants_example(self):
556556
free_tenant_tiers_list = free_tenant.list_pricing_tiers({"limit": 100}, {"Warrant-Token": "latest"})
557557
self.assertEqual(len(free_tenant_tiers_list.results), 0)
558558

559-
free_tier.assign_feature(feature1.id, "member")
560-
free_tenant.assign_pricing_tier(free_tier.id, "member")
559+
free_tier.assign_feature(feature1.id)
560+
free_tenant.assign_pricing_tier(free_tier.id)
561561

562562
free_tenant_has_feature = free_tenant.has_feature(feature1.id, {"Warrant-Token": "latest"})
563563
self.assertEqual(free_tenant_has_feature, True)
@@ -572,8 +572,8 @@ def test_pricing_tiers_features_and_tenants_example(self):
572572
self.assertEqual(free_tenant_tiers_list.results[0].object_id, "free")
573573
self.assertEqual(free_tenant_tiers_list.results[0].meta, {"name": "Free Tier"})
574574

575-
free_tier.remove_feature(feature1.id, "member")
576-
free_tenant.remove_pricing_tier(free_tier.id, "member")
575+
free_tier.remove_feature(feature1.id)
576+
free_tenant.remove_pricing_tier(free_tier.id)
577577

578578
free_tenant_has_feature = free_tenant.has_feature(feature1.id, {"Warrant-Token": "latest"})
579579
self.assertEqual(free_tenant_has_feature, False)

warrant/feature.py

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -52,12 +52,12 @@ def list_for_pricing_tier(cls, pricing_tier_id: str, list_params: Dict[str, Any]
5252
return ListResult[Feature](list(features))
5353

5454
@classmethod
55-
def assign_to_pricing_tier(cls, pricing_tier_id: str, feature_id: str, relation, opts: Dict[str, Any] = {}):
55+
def assign_to_pricing_tier(cls, pricing_tier_id: str, feature_id: str, relation: str = "member", opts: Dict[str, Any] = {}):
5656
pricing_tier_subject = Subject(constants.PRICING_TIER_OBJECT_TYPE, pricing_tier_id)
5757
return Warrant.create(constants.FEATURE_OBJECT_TYPE, feature_id, relation, pricing_tier_subject, opts=opts)
5858

5959
@classmethod
60-
def remove_from_pricing_tier(cls, pricing_tier_id: str, feature_id: str, relation: str, opts: Dict[str, Any] = {}):
60+
def remove_from_pricing_tier(cls, pricing_tier_id: str, feature_id: str, relation: str = "member", opts: Dict[str, Any] = {}):
6161
pricing_tier_subject = Subject(constants.PRICING_TIER_OBJECT_TYPE, pricing_tier_id)
6262
return Warrant.delete(constants.FEATURE_OBJECT_TYPE, feature_id, relation, pricing_tier_subject, opts=opts)
6363

@@ -78,12 +78,12 @@ def list_for_tenant(cls, tenant_id: str, list_params: Dict[str, Any] = {}, opts:
7878
return ListResult[Feature](list(features))
7979

8080
@classmethod
81-
def assign_to_tenant(cls, tenant_id: str, feature_id: str, relation: str, opts: Dict[str, Any] = {}):
81+
def assign_to_tenant(cls, tenant_id: str, feature_id: str, relation: str = "member", opts: Dict[str, Any] = {}):
8282
tenant_subject = Subject(constants.TENANT_OBJECT_TYPE, tenant_id)
8383
return Warrant.create(constants.FEATURE_OBJECT_TYPE, feature_id, relation, tenant_subject, opts=opts)
8484

8585
@classmethod
86-
def remove_from_tenant(cls, tenant_id: str, feature_id: str, relation: str, opts: Dict[str, Any] = {}):
86+
def remove_from_tenant(cls, tenant_id: str, feature_id: str, relation: str = "member", opts: Dict[str, Any] = {}):
8787
tenant_subject = Subject(constants.TENANT_OBJECT_TYPE, tenant_id)
8888
return Warrant.delete(constants.FEATURE_OBJECT_TYPE, feature_id, relation, tenant_subject, opts=opts)
8989

@@ -104,12 +104,12 @@ def list_for_user(cls, user_id: str, list_params: Dict[str, Any] = {}, opts: Dic
104104
return ListResult[Feature](list(features))
105105

106106
@classmethod
107-
def assign_to_user(cls, user_id: str, feature_id: str, relation: str, opts: Dict[str, Any] = {}):
107+
def assign_to_user(cls, user_id: str, feature_id: str, relation: str = "member", opts: Dict[str, Any] = {}):
108108
user_subject = Subject(constants.USER_OBJECT_TYPE, user_id)
109109
return Warrant.create(constants.FEATURE_OBJECT_TYPE, feature_id, relation, user_subject, opts=opts)
110110

111111
@classmethod
112-
def remove_from_user(cls, user_id: str, feature_id: str, relation: str, opts: Dict[str, Any] = {}):
112+
def remove_from_user(cls, user_id: str, feature_id: str, relation: str = "member", opts: Dict[str, Any] = {}):
113113
user_subject = Subject(constants.USER_OBJECT_TYPE, user_id)
114114
return Warrant.delete(constants.FEATURE_OBJECT_TYPE, feature_id, relation, user_subject, opts=opts)
115115

warrant/permission.py

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -52,12 +52,12 @@ def list_for_user(cls, user_id: str, list_params: Dict[str, Any] = {}, opts: Dic
5252
return ListResult[Permission](list(permissions))
5353

5454
@classmethod
55-
def assign_to_user(cls, user_id: str, permission_id: str, relation: str, opts: Dict[str, Any] = {}):
55+
def assign_to_user(cls, user_id: str, permission_id: str, relation: str = "member", opts: Dict[str, Any] = {}):
5656
user_subject = Subject(constants.USER_OBJECT_TYPE, user_id)
5757
return Warrant.create(constants.PERMISSION_OBJECT_TYPE, permission_id, relation, user_subject, opts=opts)
5858

5959
@classmethod
60-
def remove_from_user(cls, user_id: str, permission_id: str, relation: str, opts: Dict[str, Any] = {}):
60+
def remove_from_user(cls, user_id: str, permission_id: str, relation: str = "member", opts: Dict[str, Any] = {}):
6161
user_subject = Subject(constants.USER_OBJECT_TYPE, user_id)
6262
return Warrant.delete(constants.PERMISSION_OBJECT_TYPE, permission_id, relation, user_subject, opts=opts)
6363

@@ -78,12 +78,12 @@ def list_for_role(cls, role_id: str, list_params: Dict[str, Any] = {}, opts: Dic
7878
return ListResult[Permission](list(permissions))
7979

8080
@classmethod
81-
def assign_to_role(cls, role_id: str, permission_id: str, relation: str, opts: Dict[str, Any] = {}):
81+
def assign_to_role(cls, role_id: str, permission_id: str, relation: str = "member", opts: Dict[str, Any] = {}):
8282
role_subject = Subject(constants.ROLE_OBJECT_TYPE, role_id)
8383
return Warrant.create(constants.PERMISSION_OBJECT_TYPE, permission_id, relation, role_subject, opts=opts)
8484

8585
@classmethod
86-
def remove_from_role(cls, role_id: str, permission_id: str, relation: str, opts: Dict[str, Any] = {}):
86+
def remove_from_role(cls, role_id: str, permission_id: str, relation: str = "member", opts: Dict[str, Any] = {}):
8787
role_subject = Subject(constants.ROLE_OBJECT_TYPE, role_id)
8888
return Warrant.delete(constants.PERMISSION_OBJECT_TYPE, permission_id, relation, role_subject, opts=opts)
8989

warrant/pricing_tier.py

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -41,10 +41,10 @@ def delete(cls, id: str, opts: Dict[str, Any] = {}):
4141
def list_features(self, list_params: Dict[str, Any] = {}, opts: Dict[str, Any] = {}) -> ListResult[Feature]:
4242
return Feature.list_for_pricing_tier(pricing_tier_id=self.id, list_params=list_params, opts=opts)
4343

44-
def assign_feature(self, feature_id: str, relation: str, opts: Dict[str, Any] = {}):
44+
def assign_feature(self, feature_id: str, relation: str = "member", opts: Dict[str, Any] = {}):
4545
Feature.assign_to_pricing_tier(pricing_tier_id=self.id, feature_id=feature_id, relation=relation, opts=opts)
4646

47-
def remove_feature(self, feature_id: str, relation: str, opts: Dict[str, Any] = {}):
47+
def remove_feature(self, feature_id: str, relation: str = "member", opts: Dict[str, Any] = {}):
4848
Feature.remove_from_pricing_tier(pricing_tier_id=self.id, feature_id=feature_id, relation=relation, opts=opts)
4949

5050
"""
@@ -64,12 +64,12 @@ def list_for_tenant(cls, tenant_id: str, list_params: Dict[str, Any] = {}, opts:
6464
return ListResult[PricingTier](list(pricing_tiers))
6565

6666
@classmethod
67-
def assign_to_tenant(cls, tenant_id: str, pricing_tier_id: str, relation: str, opts: Dict[str, Any] = {}):
67+
def assign_to_tenant(cls, tenant_id: str, pricing_tier_id: str, relation: str = "member", opts: Dict[str, Any] = {}):
6868
tenant_subject = Subject(constants.TENANT_OBJECT_TYPE, tenant_id)
6969
return Warrant.create(constants.PRICING_TIER_OBJECT_TYPE, pricing_tier_id, relation, tenant_subject, opts=opts)
7070

7171
@classmethod
72-
def remove_from_tenant(cls, tenant_id: str, pricing_tier_id: str, relation: str, opts: Dict[str, Any] = {}):
72+
def remove_from_tenant(cls, tenant_id: str, pricing_tier_id: str, relation: str = "member", opts: Dict[str, Any] = {}):
7373
tenant_subject = Subject(constants.TENANT_OBJECT_TYPE, tenant_id)
7474
return Warrant.delete(constants.PRICING_TIER_OBJECT_TYPE, pricing_tier_id, relation, tenant_subject, opts=opts)
7575

@@ -90,12 +90,12 @@ def list_for_user(cls, user_id: str, list_params: Dict[str, Any] = {}, opts: Dic
9090
return ListResult[PricingTier](list(pricing_tiers))
9191

9292
@classmethod
93-
def assign_to_user(cls, user_id: str, pricing_tier_id: str, relation: str, opts: Dict[str, Any] = {}):
93+
def assign_to_user(cls, user_id: str, pricing_tier_id: str, relation: str = "member", opts: Dict[str, Any] = {}):
9494
user_subject = Subject(constants.USER_OBJECT_TYPE, user_id)
9595
return Warrant.create(constants.PRICING_TIER_OBJECT_TYPE, pricing_tier_id, relation, user_subject, opts=opts)
9696

9797
@classmethod
98-
def remove_from_user(cls, user_id: str, pricing_tier_id: str, relation: str, opts: Dict[str, Any] = {}):
98+
def remove_from_user(cls, user_id: str, pricing_tier_id: str, relation: str = "member", opts: Dict[str, Any] = {}):
9999
user_subject = Subject(constants.USER_OBJECT_TYPE, user_id)
100100
return Warrant.delete(constants.PRICING_TIER_OBJECT_TYPE, pricing_tier_id, relation, user_subject, opts=opts)
101101

warrant/role.py

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -52,12 +52,12 @@ def list_for_user(cls, user_id: str, list_params: Dict[str, Any] = {}, opts: Dic
5252
return ListResult[Role](list(roles))
5353

5454
@classmethod
55-
def assign_to_user(cls, user_id: str, role_id: str, relation: str, opts: Dict[str, Any] = {}):
55+
def assign_to_user(cls, user_id: str, role_id: str, relation: str = "member", opts: Dict[str, Any] = {}):
5656
user_subject = Subject(constants.USER_OBJECT_TYPE, user_id)
5757
return Warrant.create(constants.ROLE_OBJECT_TYPE, role_id, relation, user_subject, opts=opts)
5858

5959
@classmethod
60-
def remove_from_user(cls, user_id: str, role_id: str, relation: str, opts: Dict[str, Any] = {}):
60+
def remove_from_user(cls, user_id: str, role_id: str, relation: str = "member", opts: Dict[str, Any] = {}):
6161
user_subject = Subject(constants.USER_OBJECT_TYPE, user_id)
6262
return Warrant.delete(constants.ROLE_OBJECT_TYPE, role_id, relation, user_subject, opts=opts)
6363

@@ -67,10 +67,10 @@ def remove_from_user(cls, user_id: str, role_id: str, relation: str, opts: Dict[
6767
def list_permissions(self, list_params: Dict[str, Any] = {}, opts: Dict[str, Any] = {}) -> ListResult["Permission"]:
6868
return Permission.list_for_role(self.id, list_params, opts=opts)
6969

70-
def assign_permission(self, permission_id: str, relation: str, opts: Dict[str, Any] = {}):
70+
def assign_permission(self, permission_id: str, relation: str = "member", opts: Dict[str, Any] = {}):
7171
Permission.assign_to_role(self.id, permission_id, relation, opts=opts)
7272

73-
def remove_permission(self, permission_id: str, relation: str, opts: Dict[str, Any] = {}):
73+
def remove_permission(self, permission_id: str, relation: str = "member", opts: Dict[str, Any] = {}):
7474
Permission.remove_from_role(self.id, permission_id, relation, opts=opts)
7575

7676
"""

0 commit comments

Comments
 (0)