Skip to content

Commit 7dbb872

Browse files
authoredApr 24, 2024··
feat: add usage instructions, example code to README (#6)
1 parent ff4ebcb commit 7dbb872

File tree

1 file changed

+54
-0
lines changed

1 file changed

+54
-0
lines changed
 

‎README.md

+54
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,60 @@ This is an Adapter for [PyCasbin](https://github.com/casbin/pycasbin) that imple
1616
pip install casbin_databases_adapter
1717
```
1818

19+
## Simple Example
20+
21+
```python
22+
import casbin_databases_adapter
23+
import casbin
24+
from databases import Database
25+
import sqlalchemy
26+
from sqlalchemy import Table, Column, String, Integer
27+
from sqlalchemy.sql.ddl import CreateTable
28+
import asyncio
29+
30+
DATABASE_URL = "sqlite+aiosqlite:///example.db"
31+
32+
async def create_casbin_rule_table(db: Database):
33+
metadata = sqlalchemy.MetaData()
34+
table = Table(
35+
"casbin_rules",
36+
metadata,
37+
Column("id", Integer, primary_key=True),
38+
Column("ptype", String(255)),
39+
Column("v0", String(255)),
40+
Column("v1", String(255)),
41+
Column("v2", String(255)),
42+
Column("v3", String(255)),
43+
Column("v4", String(255)),
44+
Column("v5", String(255)),
45+
)
46+
q = CreateTable(table)
47+
await db.execute(query=str(q))
48+
return table
49+
50+
async def main():
51+
database = Database(DATABASE_URL)
52+
await database.connect()
53+
casbin_rule_table = await create_casbin_rule_table(database)
54+
adapter = casbin_databases_adapter.DatabasesAdapter(db=database, table=casbin_rule_table)
55+
56+
e = casbin.Enforcer('path/to/model.conf', adapter)
57+
58+
sub = "alice" # the user that wants to access a resource.
59+
obj = "data1" # the resource that is going to be accessed.
60+
act = "read" # the operation that the user performs on the resource.
61+
62+
if e.enforce(sub, obj, act):
63+
# permit alice to read data1
64+
pass
65+
else:
66+
# deny the request, show an error
67+
pass
68+
69+
# run the main function
70+
asyncio.run(main())
71+
```
72+
1973
### Getting Help
2074

2175
- [PyCasbin](https://github.com/casbin/pycasbin)

0 commit comments

Comments
 (0)
Please sign in to comment.