Skip to content

Commit

Permalink
style: black
Browse files Browse the repository at this point in the history
  • Loading branch information
jorwoods committed May 30, 2024
1 parent 4029583 commit e8b01dd
Show file tree
Hide file tree
Showing 2 changed files with 43 additions and 26 deletions.
10 changes: 8 additions & 2 deletions tableauserverclient/models/permissions_item.py
Original file line number Diff line number Diff line change
Expand Up @@ -59,7 +59,10 @@ def __and__(self, other: "PermissionsRule") -> "PermissionsRule":
capabilities = set((*self.capabilities.keys(), *other.capabilities.keys()))
new_capabilities = {}
for capability in capabilities:
if (self.capabilities.get(capability), other.capabilities.get(capability)) == (Permission.Mode.Allow, Permission.Mode.Allow):
if (self.capabilities.get(capability), other.capabilities.get(capability)) == (
Permission.Mode.Allow,
Permission.Mode.Allow,
):
new_capabilities[capability] = Permission.Mode.Allow
elif Permission.Mode.Deny in (self.capabilities.get(capability), other.capabilities.get(capability)):
new_capabilities[capability] = Permission.Mode.Deny
Expand All @@ -74,7 +77,10 @@ def __or__(self, other: "PermissionsRule") -> "PermissionsRule":
for capability in capabilities:
if Permission.Mode.Allow in (self.capabilities.get(capability), other.capabilities.get(capability)):
new_capabilities[capability] = Permission.Mode.Allow
elif (self.capabilities.get(capability), other.capabilities.get(capability)) == (Permission.Mode.Deny, Permission.Mode.Deny):
elif (self.capabilities.get(capability), other.capabilities.get(capability)) == (
Permission.Mode.Deny,
Permission.Mode.Deny,
):
new_capabilities[capability] = Permission.Mode.Deny

return PermissionsRule(self.grantee, new_capabilities)
Expand Down
59 changes: 35 additions & 24 deletions test/test_permissionsrule.py
Original file line number Diff line number Diff line change
Expand Up @@ -3,20 +3,27 @@
import tableauserverclient as TSC
from tableauserverclient.models.reference_item import ResourceReference


class TestPermissionsRules(unittest.TestCase):
def test_and(self):
grantee = ResourceReference("a", "user")
rule1 = TSC.PermissionsRule(grantee, {
TSC.Permission.Capability.ExportData: TSC.Permission.Mode.Allow,
TSC.Permission.Capability.Delete: TSC.Permission.Mode.Deny,
TSC.Permission.Capability.ViewComments: TSC.Permission.Mode.Allow,
TSC.Permission.Capability.ExportXml: TSC.Permission.Mode.Deny,
})
rule2 = TSC.PermissionsRule(grantee, {
TSC.Permission.Capability.ExportData: TSC.Permission.Mode.Allow,
TSC.Permission.Capability.Delete: TSC.Permission.Mode.Allow,
TSC.Permission.Capability.ExportXml: TSC.Permission.Mode.Deny,
})
rule1 = TSC.PermissionsRule(
grantee,
{
TSC.Permission.Capability.ExportData: TSC.Permission.Mode.Allow,
TSC.Permission.Capability.Delete: TSC.Permission.Mode.Deny,
TSC.Permission.Capability.ViewComments: TSC.Permission.Mode.Allow,
TSC.Permission.Capability.ExportXml: TSC.Permission.Mode.Deny,
},
)
rule2 = TSC.PermissionsRule(
grantee,
{
TSC.Permission.Capability.ExportData: TSC.Permission.Mode.Allow,
TSC.Permission.Capability.Delete: TSC.Permission.Mode.Allow,
TSC.Permission.Capability.ExportXml: TSC.Permission.Mode.Deny,
},
)

composite = rule1 & rule2

Expand All @@ -25,25 +32,29 @@ def test_and(self):
self.assertEqual(composite.capabilities.get(TSC.Permission.Capability.ViewComments), None)
self.assertEqual(composite.capabilities.get(TSC.Permission.Capability.ExportXml), TSC.Permission.Mode.Deny)


def test_or(self):
grantee = ResourceReference("a", "user")
rule1 = TSC.PermissionsRule(grantee, {
TSC.Permission.Capability.ExportData: TSC.Permission.Mode.Allow,
TSC.Permission.Capability.Delete: TSC.Permission.Mode.Deny,
TSC.Permission.Capability.ViewComments: TSC.Permission.Mode.Allow,
TSC.Permission.Capability.ExportXml: TSC.Permission.Mode.Deny,
})
rule2 = TSC.PermissionsRule(grantee, {
TSC.Permission.Capability.ExportData: TSC.Permission.Mode.Allow,
TSC.Permission.Capability.Delete: TSC.Permission.Mode.Allow,
TSC.Permission.Capability.ExportXml: TSC.Permission.Mode.Deny,
})
rule1 = TSC.PermissionsRule(
grantee,
{
TSC.Permission.Capability.ExportData: TSC.Permission.Mode.Allow,
TSC.Permission.Capability.Delete: TSC.Permission.Mode.Deny,
TSC.Permission.Capability.ViewComments: TSC.Permission.Mode.Allow,
TSC.Permission.Capability.ExportXml: TSC.Permission.Mode.Deny,
},
)
rule2 = TSC.PermissionsRule(
grantee,
{
TSC.Permission.Capability.ExportData: TSC.Permission.Mode.Allow,
TSC.Permission.Capability.Delete: TSC.Permission.Mode.Allow,
TSC.Permission.Capability.ExportXml: TSC.Permission.Mode.Deny,
},
)

composite = rule1 | rule2

self.assertEqual(composite.capabilities.get(TSC.Permission.Capability.ExportData), TSC.Permission.Mode.Allow)
self.assertEqual(composite.capabilities.get(TSC.Permission.Capability.Delete), TSC.Permission.Mode.Allow)
self.assertEqual(composite.capabilities.get(TSC.Permission.Capability.ViewComments), TSC.Permission.Mode.Allow)
self.assertEqual(composite.capabilities.get(TSC.Permission.Capability.ExportXml), TSC.Permission.Mode.Deny)

0 comments on commit e8b01dd

Please sign in to comment.