Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit d66a598

Browse files
formatted code
1 parent b4b8d54 commit d66a598

File tree

2 files changed

+29
-45
lines changed

2 files changed

+29
-45
lines changed

‎casbin_sqlobject_adapter/adapter.py

Lines changed: 8 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,12 @@
11
from casbin import persist
2-
from sqlobject import *
2+
from sqlobject import SQLObject, StringCol, sqlhub, connectionForURI
33

44

55
class CasbinRule(SQLObject):
6-
76
class sqlmeta:
87

9-
table = 'casbin_rule'
10-
8+
table = "casbin_rule"
9+
1110
ptype = StringCol(length=255)
1211
v0 = StringCol(length=255, default=None)
1312
v1 = StringCol(length=255, default=None)
@@ -22,13 +21,10 @@ def __str__(self):
2221
if v is None:
2322
break
2423
arr.append(v)
25-
return ', '.join(arr)
26-
24+
return ", ".join(arr)
25+
2726
def __repr__(self):
2827
return '<CasbinRule {}: "{}">'.format(self.id, str(self))
29-
30-
31-
3228

3329

3430
class Adapter(persist.Adapter):
@@ -37,20 +33,18 @@ class Adapter(persist.Adapter):
3733
def __init__(self, connection_string):
3834
self._conhandler = connectionForURI(connection_string)
3935
sqlhub.processConnection = self._conhandler
40-
4136

4237
def load_policy(self, model):
4338
"""loads all policy rules from the storage."""
4439
count = CasbinRule.select().count()
45-
for i in range(1,1+count):
40+
for i in range(1,1+count):
4641
line = CasbinRule.get(i)
4742
persist.load_policy_line(str(line), model)
4843

4944
def _save_policy_line(self, ptype, rule):
5045
line = CasbinRule.selectBy(ptype=ptype)
5146
for i, v in enumerate(rule):
52-
setattr(line, 'v{}'.format(i), v)
53-
47+
setattr(line, "v{}".format(i), v)
5448

5549
def save_policy(self, model):
5650
"""saves all policy rules to the storage."""
@@ -60,13 +54,12 @@ def save_policy(self, model):
6054
for ptype, ast in model.model[sec].items():
6155
for rule in ast.policy:
6256
self._save_policy_line(ptype, rule)
63-
57+
6458
return True
6559

6660
def add_policy(self, sec, ptype, rule):
6761
"""adds a policy rule to the storage."""
6862
self._save_policy_line(ptype, rule)
69-
7063

7164
def remove_policy(self, sec, ptype, rule):
7265
"""removes a policy rule from the storage."""
@@ -77,6 +70,3 @@ def remove_filtered_policy(self, sec, ptype, field_index, *field_values):
7770
This is part of the Auto-Save feature.
7871
"""
7972
pass
80-
81-
82-

‎tests/test_adapter.py

Lines changed: 21 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -13,60 +13,54 @@ def get_fixture(path):
1313

1414

1515
def get_enforcer():
16-
con_string = 'sqlite:/:memory:'
16+
con_string = "sqlite:/:memory:"
1717
adapter = Adapter(con_string)
1818

1919
CasbinRule.createTable(ifNotExists=True)
20-
CasbinRule(ptype='p', v0='alice', v1='data1', v2='read')
21-
CasbinRule(ptype='p', v0='bob', v1='data2', v2='write')
22-
CasbinRule(ptype='p', v0='data2_admin', v1='data2', v2='read')
23-
CasbinRule(ptype='p', v0='data2_admin', v1='data2', v2='write')
24-
CasbinRule(ptype='g', v0='alice', v1='data2_admin')
20+
CasbinRule(ptype="p", v0="alice", v1="data1", v2="read")
21+
CasbinRule(ptype="p", v0="bob", v1="data2", v2="write")
22+
CasbinRule(ptype="p", v0="data2_admin", v1="data2", v2="read")
23+
CasbinRule(ptype="p", v0="data2_admin", v1="data2", v2="write")
24+
CasbinRule(ptype="g", v0="alice", v1="data2_admin")
2525

26-
return casbin.Enforcer(get_fixture('rbac_model.conf'), adapter)
26+
return casbin.Enforcer(get_fixture("rbac_model.conf"), adapter)
2727

2828

2929
class TestConfig(unittest.TestCase):
30-
3130
def test_enforcer_basic(self):
3231
e = get_enforcer()
3332

34-
self.assertTrue(e.enforce('alice', 'data1', 'read'))
35-
self.assertFalse(e.enforce('bob', 'data1', 'read'))
36-
self.assertTrue(e.enforce('bob', 'data2', 'write'))
37-
self.assertTrue(e.enforce('alice', 'data2', 'read'))
38-
self.assertTrue(e.enforce('alice', 'data2', 'write'))
33+
self.assertTrue(e.enforce("alice", "data1", "read"))
34+
self.assertFalse(e.enforce("bob", "data1", "read"))
35+
self.assertTrue(e.enforce("bob", "data2", "write"))
36+
self.assertTrue(e.enforce("alice", "data2", "read"))
37+
self.assertTrue(e.enforce("alice", "data2", "write"))
3938

4039
def test_add_policy(self):
4140
e = get_enforcer()
4241

43-
self.assertFalse(e.enforce('eve', 'data3', 'read'))
44-
res = e.add_permission_for_user('eve', 'data3', 'read')
42+
self.assertFalse(e.enforce("eve", "data3", "read"))
43+
res = e.add_permission_for_user("eve", "data3", "read")
4544
self.assertTrue(res)
46-
self.assertTrue(e.enforce('eve', 'data3', 'read'))
45+
self.assertTrue(e.enforce("eve", "data3", "read"))
4746

4847
def test_save_policy(self):
4948
e = get_enforcer()
50-
self.assertFalse(e.enforce('alice', 'data4', 'read'))
49+
self.assertFalse(e.enforce("alice", "data4", "read"))
5150

5251
model = e.get_model()
5352
model.clear_policy()
5453

55-
model.add_policy('p', 'p', ['alice', 'data4', 'read'])
54+
model.add_policy("p", "p", ["alice", "data4", "read"])
5655

5756
adapter = e.get_adapter()
5857
adapter.save_policy(model)
59-
self.assertTrue(e.enforce('alice', 'data4', 'read'))
58+
self.assertTrue(e.enforce("alice", "data4", "read"))
6059

6160
def test_str(self):
62-
rule = CasbinRule(ptype='p', v0='alice', v1='data1', v2='read')
63-
self.assertEqual(str(rule), 'p, alice, data1, read')
64-
61+
rule = CasbinRule(ptype="p", v0="alice", v1="data1", v2="read")
62+
self.assertEqual(str(rule), "p, alice, data1, read")
6563

6664
def test_repr(self):
67-
rule = CasbinRule(ptype='p', v0='alice', v1='data1', v2='read')
65+
rule = CasbinRule(ptype="p", v0="alice", v1="data1", v2="read")
6866
self.assertRegex(repr(rule), r'<CasbinRule \d+: "p, alice, data1, read">')
69-
70-
if(__name__=='__main__'):
71-
unittest.main()
72-

0 commit comments

Comments
(0)

AltStyle によって変換されたページ (->オリジナル) /