📝 Add model-level permissions example
This commit is contained in:
parent
3d61ecd216
commit
73785faebf
1 changed files with 21 additions and 1 deletions
22
README.md
22
README.md
|
|
@ -225,7 +225,7 @@ ohmyapi createsuperuser
|
|||
|
||||
## Permissions
|
||||
|
||||
### API-Level
|
||||
### API-Level Permissions
|
||||
|
||||
Use FastAPI's `Depends` pattern to implement API-level access-control.
|
||||
|
||||
|
|
@ -255,3 +255,23 @@ async def list(user: auth.User = Depends(permissions.require_authenticated)):
|
|||
...
|
||||
```
|
||||
|
||||
### Model-Level Permissions
|
||||
|
||||
Use Tortoise's `Manager` to implement model-layer permissions.
|
||||
|
||||
```python
|
||||
from ohmyapi.db import Manager
|
||||
from typing import Callable
|
||||
|
||||
|
||||
class TeamManager(Manager):
|
||||
async def for_user(self, user):
|
||||
return await self.filter(members=user).all()
|
||||
|
||||
|
||||
class Team(Model):
|
||||
[...]
|
||||
|
||||
class Meta:
|
||||
manager = TeamManager()
|
||||
```
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue